Mister Download Manager
  1. Головна
  2. Теми

Те саме вікно, ваш стиль

Вигляд → Тема миттєво змінює вигляд MDM, зберігаючи все на своїх місцях. Виберіть один із вбудованих стилів, кожен зі світлою та темною стороною, або створіть власний у текстовому файлі.

9 вбудованих тем · світлі та темні

Створіть власну тему

Тема — це один невеликий текстовий файл у форматі TOML (або JSON). Він називає лише те, що змінює; все інше походить від теми, на якій він базується. Вам не потрібно збирати MDM або знати, як програмувати.

  1. Створіть її

    Почніть з кількох кольорів, потім додавайте більше:

    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це тема, з якої починається ваша: classic (за замовчуванням), high-contrast, metro, adwaita, breeze, luna, aero, aqua або інший файл теми в тій самій папці.
    • [seeds]це кілька кольорів (background, surface, header, text, accent, selection, error, warning, success), які MDM поширює на кожен елемент керування. [seeds.light] та [seeds.dark] надають кожній стороні свій власний.
    • [colors]встановлює ролі одного кольору з обох сторін, [light] та [dark] лише з однієї сторони: #rrggbb або #rrggbbaa з прозорістю.
    • [sizes]це радіуси кутів, ширина меж, розміри шрифтів та висота рядків у пікселях. [controls] вибирає форму текстових полів, прапорців, кнопок, смуг прогресу, смуг прокрутки, позначки фокусу та панелі заголовка.
    • iconsце color, mono або accent. Тема у власній папці (my-theme/theme.toml) може містити свої іконки в icons/16 та icons/24, кожна з яких названа відповідно до того, що вона показує (tb-add-url.svg, cat-music.png); -symbolic використовують колір тексту теми.
    • contrast = "high"підсилює кожен край і колір тексту зверху.

    Невідомий MDM ключ або значення, яке він не може прочитати, пропускається та записується до журналу MDM (папка logs поруч із папкою тем), тому файл, створений для новішої версії MDM, все одно завантажується. Вбудовані теми написані таким же чином: прочитайте їх на GitHub.

    Кожна роль кольору (156)
    КлючЩо він забарвлює
    windowWindows' and dialogs' background
    textТекст і гліфи
    text.disabledВимкнений текст, єдиний сірий колір кожного неактивного елемента керування та мітки
    text.mutedДодатковий текст: примітки, розміри, версії
    linkТекст, що відкриває щось
    errorТекст помилки
    error.strongПовідомлення про невдалу перевірку в Параметрах (тести з'єднання, браузера та помічника)
    warningТекст попередження
    successТекст успіху (відповідна контрольна сума)
    reach.nearСервер завантаження поблизу за часом відгуку (менше 60 мс), у Властивостях
    reach.mediumСервер із середнім часом відгуку (від 60 до 150 мс)
    reach.farВіддалений сервер за часом відгуку (понад 150 мс)
    flag.edgeТонкий край навколо прапора країни
    accentАкцент: лінії фокусу, відкриті та стандартні елементи керування, фільтри, фокус посилань
    focus.ringПунктирний прямокутник фокусу клавіатури
    selectionЗаповнення виділення: рядки, обраний день, виділений текст
    selection.textТекст на виділенні
    selection.mutedДодатковий текст на виділенні
    selection.inactiveВиділений рядок у списку без фокусу
    selection.focusПунктирний контур сфокусованого рядка на виділеному рядку
    group.lineРамка групового поля
    etch.shadowЛінія тіні витравленого роздільника
    etch.lightЛінія підсвічування витравленого роздільника
    tab.pageТіло вкладки
    tabНевибрана вкладка та тінь сторінки
    tab.hotВкладка під вказівником
    chevronСтрілка спадного списку або лічильника
    chevron.disabledЗатінена стрілка
    subtle.hotЧастина без власного вигляду (стрілка, заголовок стовпця) під вказівником
    subtle.pressedТака частина натиснута або відкрита
    highlight.hotДень або стрілка календаря під вказівником, цільова область перетягування
    highlight.pressedДень або стрілка календаря натиснута
    fieldВнутрішня частина текстового поля або списку
    field.borderМежа текстового поля
    field.bottomНижня лінія текстового поля, коли в нього можна вводити текст
    field.disabledВнутрішня частина затіненого текстового поля
    field.disabled.borderМежа затіненого текстового поля
    field.readonlyВнутрішня частина текстового поля лише для читання
    field.readonly.borderМежа текстового поля лише для читання
    combo.chevronШеврон спадного списку
    combo.arrow.hotЗона стрілки редагованого спадного списку під вказівником
    combo.arrow.pressedЗона стрілки редагованого спадного списку натиснута або відкрита
    buttonЛицьова сторона кнопки
    button.hotЛицьова сторона кнопки під вказівником
    button.pressedЛицьова сторона кнопки натиснута
    button.borderМежа кнопки
    button.bottomНижній край кнопки
    button.textТекст кнопки
    button.text.pressedТекст кнопки натиснутий
    button.default.borderМежа кнопки за замовчуванням
    button.default.bottomНижній край кнопки за замовчуванням
    button.disabledЛицьова сторона затіненої кнопки
    button.disabled.borderМежа затіненої кнопки
    button.accentЛицьова сторона акцентної кнопки
    button.accent.hotЛицьова сторона акцентної кнопки під вказівником
    button.accent.pressedЛицьова сторона акцентної кнопки, натиснута
    button.accent.bottomНижній край акцентної кнопки
    button.accent.textТекст акцентної кнопки
    button.accent.text.pressedТекст акцентної кнопки, натиснутий
    button.glowСвітіння всередині кнопки під вказівником, якщо стиль його малює (Luna; прозорий: немає)
    glossБлиск глянцевих частин, до якого вони переходять зверху: кнопки, поля, смуги та заголовки (Luna, Aero, Aqua)
    checkВнутрішня частина невідміченого прапорця або радіокнопки
    check.hotЇї внутрішня частина під вказівником
    check.pressedЇї внутрішня частина, натиснута
    check.borderМежа невідміченого прапорця або радіокнопки
    check.border.hotЇї межа під вказівником
    check.border.pressedЇї межа, натиснута
    check.border.disabledМежа неактивного невідміченого прапорця
    check.onАкцент відміченого прапорця або радіокнопки
    check.on.hotВідмічений акцент під вказівником
    check.on.pressedВідмічений акцент, натиснутий
    check.on.disabledЗаповнення неактивного відміченого прапорця
    check.markГалочка або крапка на відміченому акценті
    progress.trackДоріжка індикатора виконання
    progress.barЗаповнення індикатора виконання
    meter.trackДоріжка вимірювача (виконана частина завантаження)
    meter.edgeКрай вимірювача
    meter.fillЗаповнення вимірювача
    listФон списку завантажень
    list.frameКонтур списку, таблиці або поля
    gridЛінії сітки між рядками списку в діалогових вікнах
    list.gridЛінії сітки списку завантажень
    headerЗаголовки стовпців кожного списку та таблиці
    header.lineНижня лінія заголовка в списках діалогових вікон
    header.sepРоздільники між заголовками стовпців
    table.lineРоздільники в таблицях перехоплювача посилань та вікна «Додати торрент»
    header.sortedЗаголовок відсортованого стовпця
    header.sort-arrowШеврон сортування
    row.pressedНатиснутий рядок списку
    chip.webВеб-чип у списку завантажень
    chip.torrentТоррент-чип у списку завантажень
    chip.textТекст на чипі
    list.drag-ghostЗаголовок стовпця, що перетягується
    list.marqueeГумова стрічка, що виділяє рядки
    list.marquee.borderКрай гумової стрічки
    scroll.trackДоріжка смуги прокручування
    scroll.cornerМісце зустрічі двох смуг прокручування
    scroll.thumbПовзунок та стрілки смуги прокручування
    scroll.thumb.hotПовзунок або стрілка під вказівником
    scroll.thumb.pressedНатиснутий або перетягнутий повзунок чи стрілка
    menubarРядок меню
    menubar.bottomОстанній рядок рядка меню
    menubar.lineЛінія під рядком меню
    menubar.hotНазва меню під вказівником
    menubar.openНазва відкритого меню
    menuФон меню
    menu.itemПункт меню
    menu.hotПункт меню під вказівником
    menu.borderРамка меню та спливаючого вікна
    menu.sepРоздільники меню
    menu.textТекст меню
    menu.glyphМаркери, позначки та стрілки підменю
    menu.text.disabledНеактивний пункт меню
    toolbar.lineВерхня лінія панелі інструментів
    toolbar.line.lightПідсвічування під ним
    toolbar.hotКнопка панелі інструментів під вказівником
    toolbar.hot.faintІнша частина розділеної кнопки, коли одна з них під вказівником
    toolbar.pressedНатиснута кнопка панелі інструментів
    toolbar.hot.edgeКрай активної кнопки панелі інструментів
    toolbar.hot.borderМежа активної кнопки панелі інструментів (прозора: немає)
    toolbar.split.shadowРоздільник розділеної кнопки в спокої: її тінь
    toolbar.split.lightПідсвічування роздільника
    toolbar.text.disabledНеактивна мітка панелі інструментів
    toolbar.arrowСтрілка кнопки, що випадає
    icon.disabledКолір неактивної іконки (її початок)
    icon.disabled.endКолір неактивної іконки (її кінець)
    treeФон дерева категорій
    tree.linesПунктирні з'єднувачі дерева
    tree.expanderШеврони дерева, де їх малює варіант
    tree.frameРамка панелі категорій
    progress.statusЗначення «Стан» у вікні прогресу
    progress.label.disabledНеактивна мітка у вікні прогресу
    segments.borderРамка панелі сегментів
    segments.cornerКутові пікселі панелі сегментів
    pieces.haveЧастина торрента, яка тут
    pieces.partialКвадрат, що позначає частково наявні частини
    pieces.missingЧастина, якої ще немає
    captionРядок заголовка, який MDM малює сам
    caption.textЙого заголовок та гліфи
    caption.text.inactiveЙого заголовок та гліфи, коли вікно неактивне, та неактивної кнопки
    caption.hotКнопка заголовка під вказівником (відтінок над панеллю)
    caption.pressedНатиснута кнопка заголовка (відтінок над панеллю)
    caption.buttonКнопка заголовка в спокої, де стиль показує її (відтінок над панеллю; прозора: немає)
    caption.closeКнопка «Закрити» під вказівником
    caption.close.textГліф кнопки «Закрити» під вказівником
    caption.inactiveРядок заголовка, намальований MDM, коли його вікно неактивне (прозорий: як при активному)
    drop-target.edgeКрай цілі перетягування в стані спокою
    egui.panelФон панелі egui
    egui.windowФон підказок
    egui.window.borderМежа підказок
    egui.textТекст підказок
    egui.selection.textКолір виділеного тексту в полях egui
    egui.extremeНайтемніший (або найсвітліший) фон egui
    egui.faintТьмяний фон egui
    egui.widgetВіджети egui в стані спокою
    egui.widget.borderЇхня межа (прозора: відсутня)
    Усі розміри (26)
    КлючЩо він встановлює
    radiusРадіус кутів кнопок, текстових полів і спадних списків
    radius.buttonРадіус кутів глянцевої кнопки (Luna, Aero; у Aqua вони заокруглені на кінцях)
    radius.partРадіус кутів тонованої частини (зона стрілки, кнопка зі стрілками)
    radius.checkРадіус кутів прапорця
    radius.flyoutРадіус кутів спливаючого вікна (календар, поле фільтра)
    radius.menu-itemРадіус кутів пункту меню під вказівником
    radius.eguiРадіус кутів власних віджетів egui
    radius.popupРадіус кутів підказок
    borderШирина межі елемента керування
    focus-lineВисота акцентної лінії сфокусованого текстового поля
    chevron.widthТовщина штриха шеврона спадного списку
    font.dialogТекст діалогу (Tahoma у діалогах IDM)
    font.dialog.boldЗаголовки сторінок «Параметри»
    font.titleЗаголовок вікна (Tahoma Bold): розширення браузера, помічників
    font.codeКод для входу, який потрібно ввести на сторінці сервісу
    font.uiМеню та текст головного вікна (Segoe UI)
    font.ui.boldЖирні заголовки в головному вікні
    font.smallМалий текст egui
    font.bodyОсновний текст egui: підказки, багаторядкові поля
    font.headingЗаголовки egui
    list.rowВисота рядка у списку завантажень
    list.headerВисота заголовків стовпців списку завантажень
    tooltip.widthМісце перенесення тексту підказки
    tooltip.margin-xЛівий та правий відступ підказки
    tooltip.margin-topВерхній відступ підказки
    tooltip.margin-bottomНижній відступ підказки
    Стиль кожного елемента керування (7)
    КлючЙого стилі
    field-focusлінія, рамка, кільце
    checkfluent, square, adwaita, breeze, luna, aero, aqua
    buttonfluent, breeze, luna, aero, aqua
    progressлінія, смуга, блоки, глянець
    scrollнакладання, класичний
    captionsystem, metro, adwaita, breeze, luna, aero, aqua
    focusпунктир, кільце, рамка

    Або дозвольте помічнику ШІ написати його

    Скопіюйте цей запит у свого помічника ШІ та опишіть бажаний вигляд наприкінці. Це надасть помічнику формат, ключі та правила: читабельний текст і видимий фокус з обох сторін, і нічого не скопійованого з чужих робіт. Перегляньте обидві сторони самостійно, перш ніж ділитися результатом.

    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. Спробуйте, не збираючи MDM

    Помістіть файл у папку тем MDM. Вигляд → Тема → Відкрити папку тем відкриває її та створює вперше. Вона знаходиться в папці даних MDM:

    Windows
    %APPDATA%\misterdownloadmanager\themes
    Linux
    ~/.local/share/misterdownloadmanager/themes
    macOS
    ~/Library/Application Support/misterdownloadmanager/themes
    Портативна копія
    data\themesпоруч із програмою

    Протягом двох секунд вона з'явиться в Вигляд → Тема, під вбудованими темами, за name, яку вона надає собі. Виберіть її, і все вікно зміниться одразу. Після редагування файлу, виберіть його знову в Вигляд → Тема, щоб побачити зміни. Вигляд → Підтримка темного режиму та Завжди темна тема перемикають між світлою та темною сторонами.

    Вигляд → Тема → Додати файл теми… зробить це за вас: виберіть файл будь-де, і MDM скопіює його до папки з темами та одразу застосує.

    Вже маєте схему Base16 або pywal?

    Це вже тема. Схема Base16 або Base24 (.yaml) або colors.json від pywal, додана таким же чином, змінює лише кольори MDM: фони схеми за списком і вікнами, текст залишається читабельним (4.5:1 або більше), синій колір для фокусу, виділення та індикатора прогресу. Після запуску wal, Вигляд → Тема відображає pywal, прочитаний з ~/.cache/wal/colors.json (%USERPROFILE%\.cache\wal\colors.jsonу Windows), і MDM слідує кольорам кожних нових шпалер протягом двох секунд. Посібник показує, який колір куди йде.

  3. Поділіться цим

    Створили щось, що сподобається іншим? Відкрийте pull request на GitHub, який додає його до crates/app/assets/themes, з:

    • файл .toml та його папку з іконками, якщо вона є;
    • знімки головного вікна у світлому та темному режимах;
    • значок SOURCES.txt поруч із будь-якими іншими значками, із зазначенням автора та ліцензії. Значки мають бути вашими власними або під ліцензією, що дозволяє MDM ділитися ними (GPL-3.0), ніколи не копіюватися з іншої програми.

    Ще не впевнені? Спочатку покажіть це в обговореннях. Посібник для учасників пояснює, як тут працюють запити на злиття.

Безкоштовно, з відкритим кодом, без реклами, без пробного періоду.

Завантажити Mister Download Manager