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èmeterminalplutô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.
Entersur un agent ouvre la liste Thème en mode d’assignation (intituléeTheme → <agent>) ; choisissez un thème et il est assigné à cet agent.defface 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 :
TERMnon défini, oudumb,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 :
| Valeur | Profondeur |
|---|---|
truecolor, 24bit, 24 | Couleurs vraies 24 bits (truecolor) |
256 | xterm-256 |
16, ansi | 16 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