Mister Download Manager
  1. Strona główna
  2. Motywy

To samo okno, Twój styl

Opcja Widok → Motyw natychmiast zmienia wygląd MDM, zachowując układ elementów. Wybierz jeden z wbudowanych motywów, każdy z jasną i ciemną wersją, lub stwórz własny w pliku tekstowym.

9 wbudowanych motywów · jasne i ciemne

Stwórz własny motyw

Motyw to mały plik tekstowy w formacie TOML (lub JSON). Nazywa tylko to, co zmienia; wszystko inne pochodzi z motywu bazowego. Nie musisz kompilować MDM ani umieć programować.

  1. Stwórz go

    Zacznij od kilku kolorów, a następnie dodawaj kolejne:

    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"
    • inheritsto motyw, od którego zaczyna się Twój: classic (domyślny), high-contrast, metro, adwaita, breeze, luna, aero, aqua lub inny plik motywu w tym samym folderze.
    • [seeds]to kilka kolorów (background, surface, header, text, accent, selection, error, warning, success), które MDM rozprowadza po wszystkich elementach sterujących. [seeds.light] i [seeds.dark] nadają każdej stronie własne.
    • [colors]ustawia pojedyncze role kolorów po obu stronach, [light] i [dark] tylko po jednej stronie: #rrggbb lub #rrggbbaa z przezroczystością.
    • [sizes]to promienie narożników, szerokości obramowań, rozmiary czcionek i wysokości wierszy, w pikselach. [controls] wybiera kształt pól tekstowych, pól wyboru, przycisków, pasków postępu, pasków przewijania, znacznika fokusu i paska tytułu.
    • iconsjest color, mono lub accent. Motyw we własnym folderze (my-theme/theme.toml) może zawierać ikony w icons/16 i icons/24, każda nazwana zgodnie z tym, co przedstawia (tb-add-url.svg, cat-music.png); ikony -symbolic przyjmują kolor tekstu motywu.
    • contrast = "high"wzmacnia każdą krawędź i kolor tekstu na wierzchu.

    Klucz, którego MDM nie zna, lub wartość, której nie może odczytać, jest pomijana i zapisywana w dzienniku MDM (folder logs obok folderu motywów), dzięki czemu plik stworzony dla nowszej wersji MDM nadal się wczytuje. Wbudowane motywy są zapisywane w ten sam sposób: przeczytaj o nich na GitHubie.

    Każda rola koloru (156)
    KluczCo koloruje
    windowWindows' and dialogs' background
    textTekst i glify
    text.disabledWyłączony tekst, jedyna szarość każdego wyszarzonego elementu sterującego i etykiety
    text.mutedTekst pomocniczy: notatki, rozmiary, wersje
    linkTekst, który coś otwiera
    errorTekst błędu
    error.strongKomunikat o niepowodzeniu sprawdzania w Opcjach (testy połączenia, przeglądarki i pomocnika)
    warningTekst ostrzeżenia
    successTekst sukcesu (pasująca suma kontrolna)
    reach.nearSerwer pobierania w pobliżu (czas podróży w obie strony poniżej 60 ms), we Właściwościach
    reach.mediumSerwer ze średnim czasem podróży w obie strony (60 do 150 ms)
    reach.farSerwer daleko (czas podróży w obie strony powyżej 150 ms)
    flag.edgeCienka krawędź wokół flagi kraju
    accentAkcent: linie fokusu, otwarte i domyślne elementy sterujące, filtry, fokus linków
    focus.ringKropkowany prostokąt fokusu klawiatury
    selectionWypełnienie zaznaczenia: wiersze, wybrany dzień, zaznaczony tekst
    selection.textTekst na zaznaczeniu
    selection.mutedTekst pomocniczy na zaznaczeniu
    selection.inactiveZaznaczony wiersz na liście bez fokusu
    selection.focusKropkowany obrys zaznaczonego wiersza z fokusem
    group.lineRamka pola grupy
    etch.shadowLinia cienia wytrawionego separatora
    etch.lightLinia podświetlenia wytrawionego separatora
    tab.pageTreść strony zakładki
    tabNiewybrana karta i cień strony
    tab.hotKarta pod wskaźnikiem
    chevronStrzałka listy rozwijanej lub pola wyboru
    chevron.disabledWyszarała strzałka
    subtle.hotElement bez własnego wyglądu (strzałka, nagłówek kolumny) pod wskaźnikiem
    subtle.pressedTaki element naciśnięty lub otwarty
    highlight.hotDzień lub strzałka kalendarza pod wskaźnikiem, cel upuszczenia
    highlight.pressedDzień lub strzałka kalendarza naciśnięta
    fieldWnętrze pola tekstowego lub listy
    field.borderRamka pola tekstowego
    field.bottomDolna linia pola tekstowego, gdy można w nim pisać
    field.disabledWnętrze wyszarzałego pola tekstowego
    field.disabled.borderRamka wyszarzałego pola tekstowego
    field.readonlyWnętrze pola tekstowego tylko do odczytu
    field.readonly.borderRamka pola tekstowego tylko do odczytu
    combo.chevronStrzałka listy rozwijanej
    combo.arrow.hotObszar strzałki edytowalnej listy rozwijanej pod wskaźnikiem
    combo.arrow.pressedObszar strzałki edytowalnej listy rozwijanej naciśnięty lub otwarty
    buttonTło przycisku
    button.hotTło przycisku pod wskaźnikiem
    button.pressedTło przycisku naciśnięte
    button.borderRamka przycisku
    button.bottomDolna krawędź przycisku
    button.textTekst przycisku
    button.text.pressedTekst przycisku naciśnięty
    button.default.borderRamka domyślnego przycisku
    button.default.bottomDolna krawędź domyślnego przycisku
    button.disabledTło wyszarzałego przycisku
    button.disabled.borderRamka wyszarzałego przycisku
    button.accentTło przycisku akcentującego
    button.accent.hotTło przycisku akcentującego pod wskaźnikiem
    button.accent.pressedTło przycisku akcentującego po naciśnięciu
    button.accent.bottomDolna krawędź przycisku akcentującego
    button.accent.textTekst przycisku akcentującego
    button.accent.text.pressedTekst przycisku akcentującego po naciśnięciu
    button.glowPoświata wewnątrz przycisku pod wskaźnikiem, jeśli styl ją rysuje (Luna; przezroczysty: brak)
    glossPołysk, w który wtapiają się błyszczące części u góry: przyciski, pola, paski i paski tytułowe (Luna, Aero, Aqua)
    checkWnętrze niezaznaczonego pola wyboru lub przycisku radiowego
    check.hotWnętrze pod wskaźnikiem
    check.pressedWnętrze po naciśnięciu
    check.borderRamka niezaznaczonego pola wyboru lub przycisku radiowego
    check.border.hotRamka pod wskaźnikiem
    check.border.pressedRamka po naciśnięciu
    check.border.disabledRamka wyszarzonego niezaznaczonego pola wyboru
    check.onAkcent zaznaczonego pola wyboru lub przycisku radiowego
    check.on.hotZaznaczony akcent pod wskaźnikiem
    check.on.pressedZaznaczony akcent po naciśnięciu
    check.on.disabledWypełnienie wyszarzonego zaznaczonego pola wyboru
    check.markZnak zaznaczenia lub kropka na zaznaczonym akcencie
    progress.trackŚcieżka paska postępu
    progress.barWypełnienie paska postępu
    meter.trackŚcieżka miernika (ukończona część pobierania)
    meter.edgeKrawędź miernika
    meter.fillWypełnienie miernika
    listTło listy pobierania
    list.frameObramowanie listy, tabeli lub pola
    gridLinie siatki między wierszami listy w oknach dialogowych
    list.gridLinie siatki listy pobierania
    headerNagłówki kolumn każdej listy i tabeli
    header.lineDolna linia nagłówka na listach w oknach dialogowych
    header.sepSeparatory nagłówków kolumn
    table.lineSeparatory w tabelach przechwytywacza linków i okna „Dodaj torrent”
    header.sortedNagłówek posortowanej kolumny
    header.sort-arrowStrzałka sortowania
    row.pressedNaciśnięty wiersz listy
    chip.webPrzycisk „Sieć” na liście pobierania
    chip.torrentPrzycisk „Torrent” na liście pobierania
    chip.textTekst na przycisku
    list.drag-ghostPrzeciągany nagłówek kolumny
    list.marqueeGumka do zaznaczania wierszy
    list.marquee.borderKrawędź gumki
    scroll.trackŚcieżka paska przewijania
    scroll.cornerMiejsce styku dwóch pasków przewijania
    scroll.thumbUchwyt i strzałki paska przewijania
    scroll.thumb.hotUchwyt lub strzałka pod wskaźnikiem
    scroll.thumb.pressedNaciśnięty lub przeciągany uchwyt lub strzałka
    menubarPasek menu
    menubar.bottomOstatni wiersz paska menu
    menubar.lineLinia pod paskiem menu
    menubar.hotTytuł menu pod wskaźnikiem
    menubar.openTytuł otwartego menu
    menuTło menu
    menu.itemElement menu
    menu.hotElement menu pod wskaźnikiem
    menu.borderRamka menu i wyskakującego okna
    menu.sepSeparatory menu
    menu.textTekst menu
    menu.glyphPunktory, znaczniki wyboru i strzałki podmenu
    menu.text.disabledWyszarzony element menu
    toolbar.lineGórna linia paska narzędzi
    toolbar.line.lightPodświetlenie pod nim
    toolbar.hotPrzycisk paska narzędzi pod wskaźnikiem
    toolbar.hot.faintDruga część przycisku dzielonego, gdy jedna jest pod wskaźnikiem
    toolbar.pressedNaciśnięty przycisk paska narzędzi
    toolbar.hot.edgeKrawędź aktywnego przycisku paska narzędzi
    toolbar.hot.borderRamka aktywnego przycisku paska narzędzi (przezroczysta: brak)
    toolbar.split.shadowCień dzielnika przycisku dzielonego w spoczynku
    toolbar.split.lightPodświetlenie dzielnika
    toolbar.text.disabledWyszarała etykieta paska narzędzi
    toolbar.arrowStrzałka przycisku rozwijanego
    icon.disabledKolor wyszarzałej ikony (początek)
    icon.disabled.endKolor wyszarzałej ikony (koniec)
    treeTło drzewa kategorii
    tree.linesKropkowane łączniki drzewa
    tree.expanderZnaczniki drzewa, jeśli wariant je rysuje
    tree.frameRamka panelu kategorii
    progress.statusWartość „Stan” w oknie postępu
    progress.label.disabledWyszarała etykieta w oknie postępu
    segments.borderRamka paska segmentów
    segments.cornerPiksele narożne paska segmentów
    pieces.haveFragment torrenta, który jest obecny
    pieces.partialKwadrat oznaczający częściowo obecne fragmenty
    pieces.missingFragment, którego jeszcze nie ma
    captionPasek tytułu rysowany przez MDM
    caption.textJego tytuł i glify
    caption.text.inactiveJego tytuł i glify, gdy okno nie jest aktywne, oraz wyszarzałego przycisku
    caption.hotPrzycisk paska tytułu pod wskaźnikiem (odcień na pasku)
    caption.pressedNaciśnięty przycisk paska tytułu (odcień na pasku)
    caption.buttonPrzycisk paska tytułu w spoczynku, jeśli styl go pokazuje (odcień na pasku; przezroczysty: brak)
    caption.close„Zamknij” pod wskaźnikiem
    caption.close.textGlif przycisku Zamknij pod wskaźnikiem
    caption.inactivePasek tytułu rysowany przez MDM, gdy okno jest nieaktywne (przezroczysty: jak przy aktywnym)
    drop-target.edgeKrawędź obszaru docelowego w spoczynku
    egui.panelTło panelu egui
    egui.windowTło etykiet narzędzi
    egui.window.borderRamka etykiet narzędzi
    egui.textTekst etykiet narzędzi
    egui.selection.textKolor zaznaczonego tekstu w polach egui
    egui.extremeNajciemniejsze (lub najjaśniejsze) tło egui
    egui.faintDelikatne tło egui
    egui.widgetWidżety egui w spoczynku
    egui.widget.borderIch ramka (przezroczysta: brak)
    Wszystkie rozmiary (26)
    KluczCo ustawia
    radiusPromień narożników przycisków, pól tekstowych i list rozwijanych
    radius.buttonPromień narożników błyszczącego przycisku (Luna, Aero; Aqua ma zaokrąglone końce)
    radius.partPromień narożników przyciemnionej części (strefa strzałki, przycisk obrotowy)
    radius.checkPromień narożników pola wyboru
    radius.flyoutPromień narożników wyskakującego okna (kalendarz, pole filtra)
    radius.menu-itemPromień narożników elementu menu pod wskaźnikiem
    radius.eguiPromień narożników widżetów egui
    radius.popupPromień narożników etykiet narzędzi
    borderSzerokość ramki kontrolki
    focus-lineWysokość linii akcentu w aktywnym polu tekstowym
    chevron.widthGrubość kreski szewronu listy rozwijanej
    font.dialogTekst okna dialogowego (Tahoma w oknach dialogowych IDM)
    font.dialog.boldTytuły stron Opcji
    font.titleNagłówek okna (Tahoma Bold): rozszerzenia przeglądarki, pomocników
    font.codeKod logowania do wpisania na stronie usługi
    font.uiTekst menu i głównego okna (Segoe UI)
    font.ui.boldPogrubione nagłówki w głównym oknie
    font.smallmały tekst egui
    font.bodytekst główny egui: dymki, pola wielowierszowe
    font.headingnagłówki egui
    list.rowwysokość wiersza na liście pobierania
    list.headerwysokość nagłówków kolumn listy pobierania
    tooltip.widthgdzie zawija się tekst dymka
    tooltip.margin-xlewe i prawe dopełnienie dymka
    tooltip.margin-topgórne dopełnienie dymka
    tooltip.margin-bottomdolne dopełnienie dymka
    Każdy styl kontrolki (7)
    KluczJego style
    field-focuslinia, obramowanie, pierścień
    checkfluent, square, adwaita, breeze, luna, aero, aqua
    buttonfluent, breeze, luna, aero, aqua
    progresslinia, pasek, bloki, połysk
    scrollnakładka, klasyczny
    captionsystem, metro, adwaita, breeze, luna, aero, aqua
    focuskropkowany, pierścień, ramka

    Lub pozwól asystentowi AI go napisać

    Skopiuj ten prompt do swojego asystenta AI i opisz na końcu wygląd, jaki chcesz uzyskać. Prompt podaje asystentowi format, klucze i zasady: czytelny tekst i widoczny fokus po obu stronach, bez kopiowania z czyjejkolwiek grafiki. Sprawdź obie strony samodzielnie, zanim udostępnisz wynik.

    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. Wypróbuj, bez kompilowania MDM

    Umieść plik w folderze motywów MDM. Widok → Motyw → Otwórz folder motywów otwiera go i tworzy, jeśli to pierwszy raz. Znajduje się w folderze danych MDM:

    Windows
    %APPDATA%\misterdownloadmanager\themes
    Linux
    ~/.local/share/misterdownloadmanager/themes
    macOS
    ~/Library/Application Support/misterdownloadmanager/themes
    Kopia przenośna
    data\themesobok programu

    W ciągu dwóch sekund pojawi się w Widok → Motyw, pod wbudowanymi motywami, z name, które sam sobie nadaje. Wybierz go, a całe okno zmieni się natychmiast. Po edycji pliku wybierz go ponownie w Widok → Motyw, aby zobaczyć zmianę. Widok → Obsługa trybu ciemnego i Zawsze ciemny przełączają między jego jasną a ciemną stroną.

    Zrób to, używając Widok → Motyw → Dodaj plik motywu…: wybierz plik z dowolnego miejsca, a MDM skopiuje go do folderu motywów i od razu go zastosuje.

    Masz już schemat Base16 lub pywal?

    To już jest motyw. Schemat Base16 lub Base24 (.yaml) lub colors.json z pywal, dodany w ten sam sposób, zmienia tylko kolory MDM: tła schematu za listą i oknami, tekst pozostaje czytelny (4.5:1 lub więcej), jego niebieski kolor na fokusie, zaznaczeniu i pasku postępu. Po uruchomieniu wal, Widok → Motyw wyświetla pywal, odczytany z ~/.cache/wal/colors.json (%USERPROFILE%\.cache\wal\colors.jsonw systemie Windows), a MDM dostosowuje się do kolorów każdej nowej tapety w ciągu dwóch sekund. Przewodnik pokazuje, który kolor gdzie pasuje.

  3. Udostępnij

    Stworzyłeś coś, co spodobałoby się innym? Otwórz pull request na GitHubie, który doda to do crates/app/assets/themes, z:

    • plik .toml i jego folder ikon, jeśli go posiada;
    • zrzuty ekranu głównego okna w jego jasnej i ciemnej wersji;
    • obok każdej ikony SOURCES.txt, z informacją, kto ją narysował i na jakiej licencji. Ikony muszą być Twoje lub na licencji umożliwiającej MDM ich udostępnianie (GPL-3.0), nigdy skopiowane z innego programu.

    Nie masz pewności? Najpierw pokaż to w dyskusjach. Przewodnik dla współtwórców wyjaśnia, jak działają tutaj żądania ściągnięcia.

Darmowy, open source, bez reklam, bez wersji próbnej.

Pobierz Mister Download Manager