GolinksPRO Download Manager
  1. Accueil
  2. Thèmes

La même fenêtre, à votre façon

View → Theme changes how GDM looks at once and keeps everything where it was. Pick one of the built-in looks, each with a light and a dark side, or make your own in a text file.

9 thèmes intégrés · clair et sombre

Créer votre propre thème

A theme is one small text file, in TOML (or JSON). It names only what it changes; everything else comes from the theme it builds on. You don't need to build GDM or know how to program.

  1. Le créer

    Commencez avec quelques couleurs, puis ajoutez-en d’autres au fur et à mesure :

    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"
    • inheritsest le thème de départ du vôtre : classic (par défaut), high-contrast, metro, adwaita, breeze, luna, aero, aqua, ou un autre fichier de thème dans le même dossier.
    • [seeds] are a handful of colours (background, surface, header, text, accent, selection, error, warning, success) that GDM spreads over every control. [seeds.light] and [seeds.dark] give each side its own.
    • [colors]définit des rôles de couleur unique des deux côtés, [light] et [dark] d’un seul côté : #rrggbb, ou #rrggbbaa avec transparence.
    • [sizes]sont les rayons des coins, les largeurs des bordures, les tailles de police et les hauteurs de ligne, en pixels. [controls] choisit la forme des zones de texte, des cases à cocher, des boutons, des barres de progression, des barres de défilement, du marqueur de focus et de la barre de titre.
    • iconsest color, mono ou accent. Un thème dans son propre dossier (my-theme/theme.toml) peut apporter ses icônes dans icons/16 et icons/24, chacune nommée pour ce qu'elle représente (tb-add-url.svg, cat-music.png) ; les icônes -symbolic prennent la couleur du texte du thème.
    • contrast = "high"renforce chaque bordure et la couleur du texte par-dessus.

    A key GDM doesn't know, or a value it can't read, is skipped and written to GDM's log (the logs folder beside the themes folder), so a file made for a newer GDM still loads. The built-in themes are written the same way: read them on GitHub.

    Chaque rôle de couleur (156)
    CléCe qu'elle colore
    windowWindows' and dialogs' background
    textTexte et glyphes
    text.disabledTexte désactivé, le gris unique de chaque contrôle et libellé grisé
    text.mutedTexte secondaire : notes, tailles, versions
    linkTexte qui ouvre quelque chose
    errorTexte d'erreur
    error.strongMessage d'un échec de vérification dans les Options (tests de connexion, de navigateur et d'aide)
    warningTexte d'avertissement
    successTexte de succès (une somme de contrôle correspondante)
    reach.nearLe serveur d'un téléchargement proche par son temps d'aller-retour (moins de 60 ms), dans les Propriétés
    reach.mediumUn serveur avec un temps d'aller-retour moyen (60 à 150 ms)
    reach.farUn serveur éloigné par son temps d'aller-retour (plus de 150 ms)
    flag.edgeLe mince bord autour du drapeau d'un pays
    accentL'accent : lignes de focus, contrôles ouverts et par défaut, filtres, focus des liens
    focus.ringLe rectangle de focus clavier en pointillés
    selectionLe remplissage d'une sélection : lignes, un jour choisi, texte sélectionné
    selection.textTexte sur la sélection
    selection.mutedTexte secondaire sur la sélection
    selection.inactiveUne ligne sélectionnée dans une liste sans le focus
    selection.focusLe contour en pointillés de la ligne focalisée sur une ligne sélectionnée
    group.lineLe cadre d'un groupe de contrôles
    etch.shadowLa ligne d'ombre d'un séparateur gravé
    etch.lightLa ligne de surbrillance d'un séparateur gravé
    tab.pageLe corps d'une page à onglets
    tabUn onglet non sélectionné et l'ombre de la page
    tab.hotUn onglet sous le pointeur
    chevronUne flèche de liste déroulante ou de zone de saisie numérique
    chevron.disabledUne flèche grisée
    subtle.hotUne partie sans apparence propre (une flèche, un en-tête de colonne) sous le pointeur
    subtle.pressedUne telle partie pressée ou ouverte
    highlight.hotUn jour ou une flèche de calendrier sous le pointeur, une cible de dépôt
    highlight.pressedUn jour ou une flèche de calendrier pressé
    fieldL'intérieur d'une zone de texte ou d'une liste
    field.borderLa bordure d'une zone de texte
    field.bottomLa ligne inférieure d'une zone de texte lorsqu'elle est modifiable
    field.disabledL'intérieur d'une zone de texte grisée
    field.disabled.borderLa bordure d'une zone de texte grisée
    field.readonlyL'intérieur d'une zone de texte en lecture seule
    field.readonly.borderLa bordure d'une zone de texte en lecture seule
    combo.chevronLe chevron d'une liste déroulante
    combo.arrow.hotLa zone de flèche d'une liste déroulante modifiable sous le pointeur
    combo.arrow.pressedLa zone de flèche d'une liste déroulante modifiable pressée ou ouverte
    buttonLa face d'un bouton
    button.hotLa face d'un bouton sous le pointeur
    button.pressedLa face d'un bouton pressée
    button.borderLa bordure d'un bouton
    button.bottomLe bord inférieur d'un bouton
    button.textLe texte d'un bouton
    button.text.pressedLe texte d'un bouton pressé
    button.default.borderLa bordure du bouton par défaut
    button.default.bottomLe bord inférieur du bouton par défaut
    button.disabledLa face d'un bouton grisé
    button.disabled.borderLa bordure d'un bouton grisé
    button.accentLa face d'un bouton d'accentuation
    button.accent.hotFace d'un bouton d'accentuation sous le pointeur
    button.accent.pressedFace d'un bouton d'accentuation pressé
    button.accent.bottomBord inférieur d'un bouton d'accentuation
    button.accent.textTexte d'un bouton d'accentuation
    button.accent.text.pressedTexte d'un bouton d'accentuation pressé
    button.glowLueur interne d'un bouton sous le pointeur, si le style en dessine une (Luna ; transparent : aucune)
    glossBrillance vers laquelle les parties brillantes se fondent en haut : boutons, cadres, barres et barres de titre (Luna, Aero, Aqua)
    checkIntérieur d'une case à cocher ou d'un bouton radio non coché
    check.hotIntérieur sous le pointeur
    check.pressedIntérieur pressé
    check.borderBordure d'une case à cocher ou d'un bouton radio non coché
    check.border.hotBordure sous le pointeur
    check.border.pressedBordure pressée
    check.border.disabledBordure d'une case à cocher grisée non cochée
    check.onAccent d'une case à cocher ou d'un bouton radio coché
    check.on.hotAccent coché sous le pointeur
    check.on.pressedAccent coché pressé
    check.on.disabledRemplissage d'une case à cocher grisée cochée
    check.markCoche ou point sur l'accent coché
    progress.trackPiste d'une barre de progression
    progress.barRemplissage d'une barre de progression
    meter.trackPiste d'un indicateur (partie d'un téléchargement terminée)
    meter.edgeBord d'un indicateur
    meter.fillRemplissage d'un indicateur
    listArrière-plan de la liste de téléchargements
    list.frameContour d'une liste, d'un tableau ou d'un cadre
    gridLignes de grille entre les lignes d'une liste dans les boîtes de dialogue
    list.gridLignes de grille de la liste de téléchargements
    headerEn-têtes de colonne de chaque liste et tableau
    header.lineLigne inférieure d'un en-tête dans les listes des boîtes de dialogue
    header.sepLes séparateurs entre les en-têtes de colonne
    table.lineLes séparateurs dans les tableaux du récupérateur de liens et d'« Ajouter un torrent »
    header.sortedL'en-tête de la colonne triée
    header.sort-arrowLe chevron de tri
    row.pressedUne ligne de liste sélectionnée
    chip.webLa puce « Web » de la liste de téléchargements
    chip.torrentLa puce « Torrent » de la liste de téléchargements
    chip.textLe texte sur une puce
    list.drag-ghostUn en-tête de colonne en cours de déplacement
    list.marqueeL'élastique qui sélectionne les lignes
    list.marquee.borderLe bord de l'élastique
    scroll.trackLa piste d'une barre de défilement
    scroll.cornerLà où deux barres de défilement se rencontrent
    scroll.thumbLe curseur et les flèches d'une barre de défilement
    scroll.thumb.hotLe curseur ou une flèche sous le pointeur
    scroll.thumb.pressedLe curseur ou une flèche pressée ou déplacée
    menubarLa barre de menus
    menubar.bottomLa dernière ligne de la barre de menus
    menubar.lineLa ligne sous la barre de menus
    menubar.hotUn titre de menu sous le pointeur
    menubar.openLe titre du menu ouvert
    menuL'arrière-plan d'un menu
    menu.itemUn élément de menu
    menu.hotUn élément de menu sous le pointeur
    menu.borderLe cadre d'un menu et d'une fenêtre contextuelle
    menu.sepLes séparateurs d'un menu
    menu.textLe texte d'un menu
    menu.glyphLes puces, les coches et les flèches de sous-menu
    menu.text.disabledUn élément de menu grisé
    toolbar.lineLa ligne supérieure de la barre d'outils
    toolbar.line.lightLe surlignage en dessous
    toolbar.hotUn bouton de barre d'outils sous le pointeur
    toolbar.hot.faintL'autre partie d'un bouton partagé quand l'une est sous le pointeur
    toolbar.pressedUn bouton de barre d'outils pressé
    toolbar.hot.edgeLe bord d'un bouton de barre d'outils actif
    toolbar.hot.borderLa bordure d'un bouton de barre d'outils actif (transparent : aucune)
    toolbar.split.shadowL'ombre du séparateur d'un bouton partagé au repos
    toolbar.split.lightLe surlignage du séparateur
    toolbar.text.disabledUne étiquette de barre d'outils grisée
    toolbar.arrowLa flèche d'un bouton déroulant
    icon.disabledL'encre d'une icône grisée (son début)
    icon.disabled.endL'encre d'une icône grisée (sa fin)
    treeL'arrière-plan de l'arborescence des catégories
    tree.linesLes connecteurs en pointillés de l'arborescence
    tree.expanderLes chevrons de l'arborescence, là où la variante les dessine
    tree.frameLe cadre du volet des catégories
    progress.statusLa valeur de l'état dans la fenêtre de progression
    progress.label.disabledUne étiquette grisée dans la fenêtre de progression
    segments.borderLe cadre de la barre de segments
    segments.cornerLes pixels de coin de la barre de segments
    pieces.haveUn morceau de torrent qui est ici
    pieces.partialUn carré représentant des morceaux partiellement ici
    pieces.missingUn morceau pas encore ici
    captionA title bar MDM draws itself
    caption.textSon titre et ses glyphes
    caption.text.inactiveSon titre et ses glyphes lorsque la fenêtre n'est pas active, et ceux d'un bouton grisé
    caption.hotUn bouton de légende sous le pointeur (une teinte sur la barre)
    caption.pressedUn bouton de légende pressé (une teinte sur la barre)
    caption.buttonUn bouton de légende au repos, là où le style en affiche un (une teinte sur la barre ; transparent : aucun)
    caption.closeFermer sous le pointeur
    caption.close.textGlyphe du bouton Fermer sous le pointeur
    caption.inactiveA title bar MDM draws, while its window isn't the active one (transparent: as when active)
    drop-target.edgeBord de la zone de dépôt au repos
    egui.panelArrière-plan du panneau d'egui
    egui.windowArrière-plan des info-bulles
    egui.window.borderBordure des info-bulles
    egui.textTexte des info-bulles
    egui.selection.textEncre du texte sélectionné dans les zones d'egui
    egui.extremeArrière-plan le plus foncé (ou le plus clair) d'egui
    egui.faintArrière-plan pâle d'egui
    egui.widgetWidgets d'egui au repos
    egui.widget.borderLeur bordure (transparente : aucune)
    Toutes les tailles (26)
    CléCe qu'elle définit
    radiusRayon des coins des boutons, des zones de texte et des listes déroulantes
    radius.buttonRayon des coins d'un bouton poussoir brillant (Luna, Aero ; ceux d'Aqua sont ronds aux extrémités)
    radius.partRayon des coins d'une partie teintée (zone de flèche, bouton de sélection)
    radius.checkRayon des coins d'une case à cocher
    radius.flyoutRayon des coins d'une fenêtre contextuelle (calendrier, zone de filtre)
    radius.menu-itemRayon des coins d'un élément de menu sous le pointeur
    radius.eguiRayon des coins des propres widgets d'egui
    radius.popupRayon des coins des info-bulles
    borderLargeur de la bordure d'un contrôle
    focus-lineHauteur de la ligne d'accentuation d'une zone de texte sélectionnée
    chevron.widthÉpaisseur du trait du chevron d'une liste déroulante
    font.dialogTexte des boîtes de dialogue (Tahoma dans les boîtes de dialogue d'IDM)
    font.dialog.boldTitres des pages d'options
    font.titleTitre d'une fenêtre (Tahoma Gras) : celui de l'extension de navigateur, des assistants
    font.codeCode de connexion à saisir sur la page d'un service
    font.uiMenus et texte de la fenêtre principale (Segoe UI)
    font.ui.boldTitres en gras dans la fenêtre principale
    font.smallPetit texte d'egui
    font.bodyCorps de texte d'egui : info-bulles, zones multilignes
    font.headingTitres d'egui
    list.rowHauteur d'une ligne dans la liste des téléchargements
    list.headerHauteur des en-têtes de colonne de la liste des téléchargements
    tooltip.widthOù le texte d'une info-bulle s'enroule
    tooltip.margin-xMarge intérieure gauche et droite d'une info-bulle
    tooltip.margin-topMarge intérieure supérieure d'une info-bulle
    tooltip.margin-bottomMarge intérieure inférieure d'une info-bulle
    Chaque style de contrôle (7)
    CléSes styles
    field-focusligne, bordure, anneau
    checkfluent, carré, adwaita, breeze, luna, aero, aqua
    buttonFluent, Breeze, Luna, Aero, Aqua
    progressligne, barre, blocs, brillant
    scrollsuperposition, classique
    captionsystème, metro, adwaita, breeze, luna, aero, aqua
    focuspointillé, anneau, cadre

    Ou laissez un assistant IA l'écrire

    Copiez cette invite dans votre assistant IA et décrivez l'apparence que vous souhaitez à la fin. Elle donne à l'assistant le format, les clés et les règles : un texte lisible et une mise au point visible des deux côtés, et rien copié d'une autre œuvre. Regardez les deux côtés vous-même avant de partager le résultat.

    You are making a theme file for GolinksPRO Download Manager (GDM), 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 GDM 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. Try it, without building GDM

    Put the file in GDM's themes folder. View → Theme → Open themes folder opens it, and makes it the first time. It is in GDM's data folder:

    Windows
    %APPDATA%\misterdownloadmanager\themes
    Linux
    ~/.local/share/misterdownloadmanager/themes
    macOS
    ~/Library/Application Support/misterdownloadmanager/themes
    Copie portable
    data\themesà côté du programme

    En moins de deux secondes, il apparaît dans Affichage → Thème, sous les thèmes intégrés, par le name qu'il se donne. Choisissez-le et toute la fenêtre change immédiatement. Après avoir modifié le fichier, choisissez-le à nouveau dans Affichage → Thème pour voir le changement. Affichage → Prise en charge du mode sombre et Toujours sombre basculent entre son côté clair et son côté sombre.

    View → Theme → Add a theme file… does it for you: pick the file anywhere, and GDM copies it into the themes folder and uses it at once.

    Vous avez déjà un thème Base16 ou pywal ?

    It's a theme already. A Base16 or Base24 scheme (.yaml) or pywal's colors.json, added the same way, changes GDM's colours and nothing else: the scheme's backgrounds behind the list and the windows, its text kept readable (4.5:1 or more), its blue on the focus, the selection and the progress bar. Once wal has run, View → Theme lists pywal, read from ~/.cache/wal/colors.json (%USERPROFILE%\.cache\wal\colors.json on Windows), and GDM follows each new wallpaper's colours within two seconds. The guide shows which colour goes where.

  3. Custom themes

    Made something others would like? Put it into your themes folder with:

    • le fichier .toml, et son dossier d'icônes s'il en a un ;
    • des captures d'écran de la fenêtre principale dans son côté clair et son côté sombre ;
    • a SOURCES.txt beside any icons, saying who drew them and under which licence.

Gratuit, open source, sans publicité ni période d’essai.

Download GolinksPRO Download Manager