Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Thèmes et couleurs du terminal

zerocode est livré avec un ensemble de thèmes de couleurs nommés, permet à chaque agent d’avoir son propre thème dans les volets Code et Chat, et adapte sa sortie couleur à ce que le terminal peut afficher.

Tous les paramètres de thème résident dans la configuration propre de zerocode, indépendamment du démon auquel zerocode se connecte.

Choisir un thème

Ouvrez le panneau Config, passez à la section zerocode, puis sélectionnez l’onglet Theme. Naviguez avec /k et /j ; appuyez sur Enter pour appliquer. Le choix prend effet immédiatement et est enregistré dans la configuration de zerocode. La ligne en surbrillance affiche un aperçu en ligne de la palette du thème, une bande de blocs de couleur pour ses rôles canvas, title, heading, body, warn et tool, afin que vous puissiez voir les couleurs avant de les appliquer.

Thèmes disponibles

Un thème est rédigé directement dans zerocode car il n’a pas d’entrée de registre :

  • terminal : hérite des couleurs de votre terminal. Chaque rôle est laissé à la valeur par défaut du terminal et l’application ne peint pas d’arrière-plan, de sorte qu’une palette de shell personnalisée apparaît telle quelle.

Les véritables palettes de couleurs sont générées au moment de la compilation à partir du registre de thèmes du tableau de bord (web/src/contexts/themes.json), la source unique de vérité que zerocode, le tableau de bord React et cette documentation lisent tous. La liste ci-dessous est produite par cargo xtask mdbook themes et incluse au moment de la compilation. Elle n’est jamais validée :

Sombre : operator_dark, ayu_dark, catppuccin_mocha, cobalt2, code_red, default_dark, icy_blue, dracula, everforest_dark, flexoki_dark, gruvbox_dark, hacker_green, hazard, high_contrast_dark, kanagawa_dragon, kanagawa_wave, material_dark, monokai, night_owl, nord_dark, oled_black, one_dark, rose_pine, rose_pine_moon, solarized_dark, tokyo_night

Clair: operator_light, catppuccin_latte, default_light, everforest_light, flexoki_light, gruvbox_light, high_contrast_white, kanagawa_lotus, material_light, nord_light, one_light, rose_pine_dawn, solarized_light, tokyo_night_day

Le thème par défaut est terminal sur macOS et icy_blue sur toutes les autres plateformes.

Si [theme].name (ou une surcharge par agent ci-dessous) désigne un thème que cette version ne possède pas, une faute de frappe, ou une configuration écrite par une version plus récente, zerocode se rabat sur le thème terminal plutôt que de refuser de démarrer.

Thèmes par agent (panneaux Code & Chat)

Un thème peut suivre l’agent. Lorsque le volet Code ou Chat a le focus sur un agent disposant d’un remplacement, le thème de cet agent remplace le thème de base tant que le volet est affiché ; les autres volets conservent le thème de base. Cela permet de savoir en un coup d’œil avec quel agent vous travaillez.

Configurez les remplacements sous [theme.agent_override.<alias>] :

Remplacements de paramètres depuis l’interface utilisateur

Dans la section zerocode du panneau Config, ouvrez l’onglet Agent Themes. Il liste les agents activés du daemon avec le remplacement actuel de chaque agent (ou si aucun). Le pied de page affiche les touches.

  • Enter sur un agent ouvre la liste Thème en mode d’assignation (intitulée Theme → <agent>) ; choisissez un thème et il est assigné à cet agent.
  • d efface le remplacement défini pour l’agent en surbrillance.

Les affectations et les suppressions s’appliquent en direct : le panneau Code/Chat applique le nouveau thème dès la trame suivante sans redémarrer zerocode, et elles sont persistées dans la configuration de zerocode. Une surcharge désignant un thème inconnu se rabat sur le thème terminal, comme pour le paramètre global.

Profondeur de couleur du terminal

zerocode détecte le nombre de couleurs que votre terminal peut afficher et adapte sa sortie une seule fois, lors du premier rendu :

  • Truecolor (24 bits) est la valeur par défaut pour pratiquement tous les terminaux. zerocode émet des couleurs 24 bits, que les terminaux modernes, ainsi que les multiplexeurs de terminaux configurés pour cela, affichent directement.
  • xterm-256 est utilisé pour Terminal.app de macOS, qui ne prend pas en charge la couleur 24 bits (détecté via TERM_PROGRAM=Apple_Terminal). iTerm2, kitty, WezTerm, Ghostty et les autres terminaux truecolor ne sont pas affectés.
  • ANSI-16 est utilisé uniquement pour un terminal réellement limité en couleurs : TERM non défini, ou dumb, ansi, ou toute valeur *-16color. Les couleurs du thème sont converties vers la plus proche des 16 couleurs ANSI.

Lorsqu’une profondeur inférieure au truecolor est en vigueur, chaque couleur du thème (y compris les échantillons d’aperçu) est ajustée à la valeur affichable la plus proche.

Forcer une profondeur

Définissez ZEROCODE_COLOR pour remplacer la détection :

ValeurProfondeur
truecolor, 24bit, 24Couleurs vraies 24 bits (truecolor)
256xterm-256
16, ansi16 couleurs ANSI

sh

ZEROCODE_COLOR=256 zerocode

Toute valeur non reconnue est ignorée et la détection normale s’exécute.

tmux : couleurs incorrectes ou délavées

Si vous exécutez zerocode dans tmux, généralement via SSH vers un Raspberry Pi ou un autre hôte distant, et que la palette s’affiche de façon terne ou quasi monochrome, la cause est presque toujours que tmux n’annonce pas la prise en charge du truecolor (RGB) pour le terminal externe. zerocode émet des couleurs 24 bits, mais tmux ne les transmet à votre terminal que lorsqu’il sait que le terminal prend en charge le RGB.

Indiquez à tmux que le client prend en charge le RGB en ajoutant ceci au fichier ~/.tmux.conf de la machine distante :

set -as terminal-features ",*:RGB"

Redémarrez ensuite le serveur tmux pour que la modification prenne effet :

sh

tmux kill-server

Rattachez-vous, et la sortie truecolor de zerocode s’affichera correctement.

Comme alternative ne nécessitant aucune modification de tmux, forcez une profondeur inférieure qui ne dépend pas du passthrough truecolor :

sh

ZEROCODE_COLOR=256 zerocode