Mister Download Manager
  1. Início
  2. Temas

A mesma janela, à sua maneira

Ver → Tema muda o aspeto do MDM de imediato e mantém tudo no mesmo sítio. Escolha um dos visuais incorporados, cada um com um lado claro e um escuro, ou crie o seu próprio num ficheiro de texto.

9 temas incorporados · claro e escuro

Crie o seu próprio tema

Um tema é um pequeno ficheiro de texto, em TOML (ou JSON). Nomeia apenas o que muda; tudo o resto vem do tema em que se baseia. Não precisa de compilar o MDM nem de saber programar.

  1. Crie-o

    Comece com algumas cores e adicione mais à medida que avança:

    name = "Harbour"
    inherits = "classic"
    icons = "color"
    
    [seeds.light]
    background = "#eef3f6"
    surface = "#ffffff"
    text = "#11202b"
    accent = "#0f6c8c"
    
    [seeds.dark]
    background = "#14212a"
    surface = "#0e171d"
    text = "#e8f0f4"
    accent = "#5cc3e6"
    
    [sizes]
    radius = 6
    
    [controls]
    focus = "ring"
    • inheritsé o tema a partir do qual o seu começa: classic (o predefinido), high-contrast, metro, adwaita, breeze, luna, aero, aqua, ou outro ficheiro de tema na mesma pasta.
    • [seeds]são algumas cores (background, surface, header, text, accent, selection, error, warning, success) que o MDM espalha por todos os controlos. [seeds.light] e [seeds.dark] dão a cada lado o seu próprio.
    • [colors]define funções de cor única em ambos os lados, [light] e [dark] apenas num lado: #rrggbb, ou #rrggbbaa com transparência.
    • [sizes]são raios de canto, larguras de borda, tamanhos de letra e alturas de linha, em píxeis. [controls] escolhe a forma de caixas de texto, caixas de verificação, botões, barras de progresso, barras de deslocamento, a marca de foco e a barra de título.
    • iconsé color, mono ou accent. Um tema numa pasta própria (my-theme/theme.toml) pode ter os seus ícones em icons/16 e icons/24, cada um com o nome do que mostra (tb-add-url.svg, cat-music.png); os -symbolic assumem a cor do texto do tema.
    • contrast = "high"reforça cada contorno e a cor do texto por cima.

    Uma chave que o MDM não reconhece, ou um valor que não consegue ler, é ignorada e registada no ficheiro de registo do MDM (a pasta logs ao lado da pasta dos temas), para que um ficheiro feito para um MDM mais recente continue a carregar. Os temas incorporados são escritos da mesma forma: leia-os no GitHub.

    Cada função de cor (156)
    ChaveO que colore
    windowFundo das janelas e caixas de diálogo do Windows
    textTexto e glifos
    text.disabledTexto desativado, o único cinzento de cada controlo e etiqueta acinzentados
    text.mutedTexto secundário: notas, tamanhos, versões
    linkTexto que abre algo
    errorTexto de erro
    error.strongMensagem de uma verificação falhada em Opções (testes de ligação, navegador e ajudas)
    warningTexto de aviso
    successTexto de sucesso (uma soma de verificação correspondente)
    reach.nearServidor de uma transferência próximo pelo seu tempo de ida e volta (menos de 60 ms), em Propriedades
    reach.mediumUm servidor com um tempo de ida e volta médio (60 a 150 ms)
    reach.farUm servidor distante pelo seu tempo de ida e volta (mais de 150 ms)
    flag.edgeO contorno fino à volta da bandeira de um país
    accentO destaque: linhas de foco, controlos abertos e predefinidos, filtros, foco de ligações
    focus.ringO retângulo de foco do teclado pontilhado
    selectionPreenchimento de uma seleção: linhas, um dia escolhido, texto selecionado
    selection.textTexto na seleção
    selection.mutedTexto secundário na seleção
    selection.inactiveUma linha selecionada numa lista sem o foco
    selection.focusO contorno pontilhado da linha focada numa linha selecionada
    group.lineA moldura de uma caixa de grupo
    etch.shadowA linha de sombra de um separador gravado
    etch.lightA linha de destaque de um separador gravado
    tab.pageO corpo de uma página de separador
    tabUm separador não selecionado e a sombra da página
    tab.hotUm separador sob o ponteiro
    chevronUma seta de lista pendente ou de caixa de seleção
    chevron.disabledUma seta esbatida
    subtle.hotUma parte sem face própria (uma seta, um cabeçalho de coluna) sob o ponteiro
    subtle.pressedEssa parte premida ou aberta
    highlight.hotUm dia ou seta de calendário sob o ponteiro, um alvo de arrastar
    highlight.pressedUm dia ou seta de calendário premida
    fieldO interior de uma caixa de texto ou de uma lista
    field.borderO limite de uma caixa de texto
    field.bottomA linha inferior de uma caixa de texto enquanto pode ser editada
    field.disabledO interior de uma caixa de texto esbatida
    field.disabled.borderO limite de uma caixa de texto esbatida
    field.readonlyO interior de uma caixa de texto só de leitura
    field.readonly.borderO limite de uma caixa de texto só de leitura
    combo.chevronUm chevron de lista pendente
    combo.arrow.hotA zona da seta de uma lista pendente editável sob o ponteiro
    combo.arrow.pressedA zona da seta de uma lista pendente editável premida ou aberta
    buttonA face de um botão
    button.hotA face de um botão sob o ponteiro
    button.pressedA face de um botão premida
    button.borderO limite de um botão
    button.bottomO limite inferior de um botão
    button.textO texto de um botão
    button.text.pressedO texto de um botão premido
    button.default.borderO limite do botão predefinido
    button.default.bottomO limite inferior do botão predefinido
    button.disabledA face de um botão esbatido
    button.disabled.borderO limite de um botão esbatido
    button.accentA face de um botão de destaque
    button.accent.hotA face de um botão de destaque sob o ponteiro
    button.accent.pressedA face de um botão de destaque premido
    button.accent.bottomO bordo inferior de um botão de destaque
    button.accent.textO texto de um botão de destaque
    button.accent.text.pressedO texto de um botão de destaque premido
    button.glowO brilho dentro de um botão sob o ponteiro, onde o estilo o desenha (Luna; transparente: nenhum)
    glossO brilho para o qual as partes lustrosas se misturam no topo: botões, caixas, barras e barras de título (Luna, Aero, Aqua)
    checkO interior de uma caixa de verificação ou de rádio não selecionada
    check.hotO seu interior sob o ponteiro
    check.pressedO seu interior premido
    check.borderO bordo de uma caixa de verificação ou de rádio não selecionada
    check.border.hotO seu bordo sob o ponteiro
    check.border.pressedO seu bordo premido
    check.border.disabledO bordo de uma caixa de verificação não selecionada a cinzento
    check.onO destaque de uma caixa de verificação ou de rádio selecionada
    check.on.hotO destaque selecionado sob o ponteiro
    check.on.pressedO destaque selecionado premido
    check.on.disabledO preenchimento de uma caixa de verificação selecionada a cinzento
    check.markA marca ou ponto no destaque selecionado
    progress.trackA faixa de uma barra de progresso
    progress.barO preenchimento de uma barra de progresso
    meter.trackA faixa de um medidor (parte de uma transferência concluída)
    meter.edgeO bordo de um medidor
    meter.fillO preenchimento de um medidor
    listO fundo da lista de transferências
    list.frameO contorno de uma lista, tabela ou caixa
    gridAs linhas de grelha entre as linhas de uma lista em diálogos
    list.gridAs linhas de grelha da lista de transferências
    headerOs cabeçalhos de coluna de todas as listas e tabelas
    header.lineA linha inferior de um cabeçalho nas listas de diálogos
    header.sepOs divisores entre os cabeçalhos das colunas
    table.lineOs divisores nas tabelas do extrator de ligações e de Adicionar torrent
    header.sortedO cabeçalho da coluna ordenada
    header.sort-arrowO chevron de ordenação
    row.pressedUma linha de lista premida
    chip.webO chip Web da lista de transferências
    chip.torrentO chip Torrent da lista de transferências
    chip.textTexto num chip
    list.drag-ghostUm cabeçalho de coluna a ser arrastado
    list.marqueeA banda de borracha que seleciona as linhas
    list.marquee.borderA extremidade da banda de borracha
    scroll.trackA pista de uma barra de deslocamento
    scroll.cornerOnde duas barras de deslocamento se encontram
    scroll.thumbO cursor e as setas de uma barra de deslocamento
    scroll.thumb.hotO cursor ou uma seta sob o ponteiro
    scroll.thumb.pressedO cursor ou uma seta premida ou arrastada
    menubarA barra de menus
    menubar.bottomA última linha da barra de menus
    menubar.lineA linha sob a barra de menus
    menubar.hotUm título de menu sob o ponteiro
    menubar.openO título do menu aberto
    menuO fundo de um menu
    menu.itemUm item de menu
    menu.hotUm item de menu sob o ponteiro
    menu.borderA moldura de um menu e de um pop-up
    menu.sepOs separadores de um menu
    menu.textO texto de um menu
    menu.glyphMarcadores, vistos e setas de submenu
    menu.text.disabledUm item de menu esbatido
    toolbar.lineA linha superior da barra de ferramentas
    toolbar.line.lightO destaque por baixo
    toolbar.hotUm botão da barra de ferramentas sob o ponteiro
    toolbar.hot.faintA outra parte de um botão dividido, enquanto uma está sob o ponteiro
    toolbar.pressedUm botão da barra de ferramentas premido
    toolbar.hot.edgeA extremidade de um botão da barra de ferramentas ativo
    toolbar.hot.borderO contorno de um botão da barra de ferramentas ativo (transparente: nenhum)
    toolbar.split.shadowA sombra do divisor de um botão dividido em repouso
    toolbar.split.lightO destaque do divisor
    toolbar.text.disabledUm rótulo acinzentado da barra de ferramentas
    toolbar.arrowA seta de um botão de lista pendente
    icon.disabledA tinta de um ícone acinzentado (o seu início)
    icon.disabled.endA tinta de um ícone acinzentado (o seu fim)
    treeO fundo da árvore de categorias
    tree.linesOs conectores pontilhados da árvore
    tree.expanderOs chevrons da árvore, onde a variante os desenha
    tree.frameA moldura do painel de categorias
    progress.statusO valor do Estado da janela de progresso
    progress.label.disabledUm rótulo acinzentado na janela de progresso
    segments.borderA moldura da barra de segmentos
    segments.cornerOs pixéis de canto da barra de segmentos
    pieces.haveUma parte de torrent que está aqui
    pieces.partialUm quadrado que representa partes parcialmente aqui
    pieces.missingUma parte ainda não aqui
    captionUma barra de título que o MDM desenha
    caption.textO seu título e glifos
    caption.text.inactiveO seu título e glifos quando a janela não está ativa, e os de um botão acinzentado
    caption.hotUm botão de legenda sob o ponteiro (uma tonalidade sobre a barra)
    caption.pressedUm botão de legenda premido (uma tonalidade sobre a barra)
    caption.buttonUm botão de legenda em repouso, onde o estilo mostra um (uma tonalidade sobre a barra; transparente: nenhum)
    caption.closeFechar sob o ponteiro
    caption.close.textGlifo de «Fechar» sob o ponteiro
    caption.inactiveBarra de título desenhada pelo MDM, quando a janela não está ativa (transparente: como quando está ativa)
    drop-target.edgeContorno da área de destino em repouso
    egui.panelFundo do painel do egui
    egui.windowFundo das descrições
    egui.window.borderContorno das descrições
    egui.textTexto das descrições
    egui.selection.textCor do texto selecionado nas caixas do egui
    egui.extremeFundo mais escuro (ou mais claro) do egui
    egui.faintFundo esbatido do egui
    egui.widgetElementos gráficos do egui em repouso
    egui.widget.borderContorno (transparente: nenhum)
    Todos os tamanhos (26)
    ChaveO que define
    radiusRaio de canto de botões, caixas de texto e listas pendentes
    radius.buttonRaio de canto de um botão de pressão brilhante (Luna, Aero; os do Aqua são redondos nas extremidades)
    radius.partRaio de canto de uma parte colorida (uma zona de seta, um botão de rotação)
    radius.checkRaio de canto de uma caixa de verificação
    radius.flyoutRaio de canto de um pop-up numa janela (um calendário, uma caixa de filtro)
    radius.menu-itemRaio de canto de um item de menu sob o ponteiro
    radius.eguiRaio de canto dos elementos gráficos do egui
    radius.popupRaio de canto das descrições
    borderLargura do contorno de um controlo
    focus-lineAltura da linha de destaque de uma caixa de texto com foco
    chevron.widthEspessura do traço do "chevron" de uma lista pendente
    font.dialogTexto de diálogo (Tahoma nos diálogos do IDM)
    font.dialog.boldTítulos das páginas de opções
    font.titleTítulo de uma janela (Tahoma Negrito): da extensão do navegador, dos assistentes
    font.codeUm código de início de sessão para digitar na página de um serviço
    font.uiMenus e texto da janela principal (Segoe UI)
    font.ui.boldTítulos em negrito na janela principal
    font.smallTexto pequeno do egui
    font.bodyTexto principal do egui: descrições, caixas de várias linhas
    font.headingTítulos do egui
    list.rowAltura de uma linha na lista de transferências
    list.headerAltura dos cabeçalhos das colunas da lista de transferências
    tooltip.widthOnde o texto de uma descrição quebra
    tooltip.margin-xPreenchimento esquerdo e direito de uma descrição
    tooltip.margin-topPreenchimento superior de uma descrição
    tooltip.margin-bottomPreenchimento inferior de uma descrição
    Estilo de cada controlo (7)
    ChaveOs seus estilos
    field-focuslinha, contorno, anel
    checkFluent, Square, Adwaita, Breeze, Luna, Aero, Aqua
    buttonFluent, Breeze, Luna, Aero, Aqua
    progresslinha, barra, blocos, brilho
    scrollsobreposição, clássico
    captionsistema, metro, adwaita, breeze, luna, aero, aqua
    focuspontilhado, anel, moldura

    Ou deixe um assistente de IA escrevê-lo

    Copie este pedido para o seu assistente de IA e descreva o aspeto que pretende no final. Ele fornece ao assistente o formato, as chaves e as regras: texto legível e um foco visível em ambos os lados, e nada copiado de trabalhos de outras pessoas. Veja ambos os lados antes de partilhar o resultado.

    You are making a theme file for Mister Download Manager (MDM), a free, open-source download manager. Write one TOML file, named after the theme in lower case with dashes (for example harbour.toml). Reply with the file only, in one code block, then one line on how to install it.
    
    THE FORMAT
    A theme names only what it changes; everything else comes from the theme it inherits.
    - name = "Display name"
    - inherits = "classic" (the default), "high-contrast", "metro", "adwaita", "breeze", "luna", "aero" or "aqua"
    - icons = "color" | "mono" | "accent"
    - contrast = "high" (optional: strengthens every edge and text colour)
    - [seeds] a few colours MDM spreads over every control: background, surface, header, text, accent, selection, error, warning, success. Use [seeds.light] and [seeds.dark] to give each side its own.
    - [colors] single colour roles for both sides; [light] and [dark] for one side only. Role names are dotted and must be quoted when they contain a dot, e.g. "button.hot" = "#e5f1fb". Useful roles: window, text, text.muted, link, accent, focus.ring, selection, selection.text, field, field.border, button, button.hot, button.pressed, button.border, button.text, check.on, check.mark, progress.bar, list, header, menubar, menu, menu.hot, menu.text, toolbar.hot, tree, caption, caption.text, scroll.thumb, gloss (the shine glossy parts blend toward), button.glow. "segments.done" takes one colour or a list of 13 (top to bottom).
    - [sizes] in pixels, 0 to 400: radius, radius.button, radius.check, radius.menu-item, radius.popup, border, focus-line, list.row, list.header, font.ui, font.dialog.
    - [controls] shapes: field-focus = line | border | ring; check = fluent | square | adwaita | breeze | luna | aero | aqua; button = fluent | breeze | luna | aero | aqua; progress = line | bar | blocks | gloss; scroll = overlay | classic; focus = dotted | ring | frame; caption = system | metro | adwaita | breeze | luna | aero | aqua.
    - Colours are "#rrggbb" or "#rrggbbaa". Unknown keys are skipped, so only use the names above.
    
    THE RULES
    1. Make both a light and a dark side: give [seeds.light] and [seeds.dark] (or [light] and [dark]) their own colours, and check each side on its own.
    2. Text must be easy to read: at least 4.5:1 contrast for text against its background (text on window and field, button.text on button, menu.text on menu, selection.text on selection, caption.text on caption), in both sides.
    3. The keyboard focus must be easy to see: accent and focus.ring at least 3:1 against what they sit on.
    4. Disabled text stays readable but clearly dimmer than normal text.
    5. Clean room: no artwork, icons, logos, fonts or text copied from any other program or company. If the theme needs icons, describe original ones to draw, never copy existing ones, and note their source and licence in a SOURCES.txt.
    6. Keep the layout: a theme changes colours, sizes and control shapes only.
    
    After the file, list each text and background pair you checked with its contrast ratio, for both sides.
    
    THE LOOK I WANT:
  2. Experimente, sem compilar o MDM

    Coloque o ficheiro na pasta de temas do MDM. Ver → Tema → Abrir pasta de temas abre-a e cria-a se for a primeira vez. Está na pasta de dados do MDM:

    Windows
    %APPDATA%\misterdownloadmanager\themes
    Linux
    ~/.local/share/misterdownloadmanager/themes
    macOS
    ~/Library/Application Support/misterdownloadmanager/themes
    Cópia portátil
    data\themesao lado do programa

    Em dois segundos, aparece em Ver → Tema, sob os temas incorporados, pelo name que se atribui. Escolha-o e a janela inteira muda de imediato. Depois de editar o ficheiro, escolha-o novamente em Ver → Tema para ver a alteração. Ver → Suporte para Modo Escuro e Sempre escuro alternam entre o seu lado claro e escuro.

    Em Ver → Tema → Adicionar um ficheiro de tema…, escolha o ficheiro em qualquer pasta e o MDM copia-o para a pasta de temas e aplica-o de imediato.

    Já tem um esquema Base16 ou pywal?

    Já é um tema. Um esquema Base16 ou Base24 (.yaml) ou colors.json do pywal, adicionado da mesma forma, altera as cores do MDM e nada mais: os fundos do esquema por trás da lista e das janelas, o texto mantido legível (4,5:1 ou mais), o azul no foco, a seleção e a barra de progresso. Depois de wal ter sido executado, Ver → Tema lista pywal, lido de ~/.cache/wal/colors.json (%USERPROFILE%\.cache\wal\colors.jsonno Windows), e o MDM segue as cores de cada novo papel de parede em dois segundos. O guia mostra qual a cor que vai para onde.

  3. Partilhe-o

    Criou algo que outros gostariam? Abra um pedido de pull no GitHub que o adicione a crates/app/assets/themes, com:

    • o ficheiro .toml e a sua pasta de ícones, se tiver uma;
    • capturas de ecrã da janela principal nos seus lados claro e escuro;
    • uma SOURCES.txt junto a quaisquer ícones, indicando quem os desenhou e sob que licença. Os ícones devem ser seus ou estar sob uma licença que permita ao MDM partilhá-los (GPL-3.0), nunca copiados de outro programa.

    Ainda não tem a certeza? Mostre-o primeiro nas discussões. O guia de contribuição explica como funcionam os pedidos de pull aqui.

Gratuito, de código aberto, sem anúncios, sem período de avaliação.

Transferir Mister Download Manager