Thèmes : centraliser les palettes et raccorder le bureau personnalisé #26

Closed
opened 2026-10-24 23:54:42 +00:00 by mathieu · 2 comments
Owner

Racine : #25

Travail

Fournir Nord, Dracula et Catppuccin Mocha dans themes/, palette à rôles et formats générés. Raccorder Quickshell, Hyprland, Rofi, Waybar/Dunst, Kitty/Ghostty, tmux/fzf/Satty et surcharges Neovim sans changer le comportement métier. Nord doit préserver les choix existants ; éviter les couleurs codées en dur dans les composants actifs. Tenir compte du chantier concurrent des notifications : ne pas modifier NotificationRuntime.qml/NotificationService.qml. Tests sémantiques et QML isolés.

  • with pi 🥧
Racine : https://git.2027a.net/mathieu/dotfiles/issues/25 ## Travail Fournir Nord, Dracula et Catppuccin Mocha dans `themes/`, palette à rôles et formats générés. Raccorder Quickshell, Hyprland, Rofi, Waybar/Dunst, Kitty/Ghostty, tmux/fzf/Satty et surcharges Neovim sans changer le comportement métier. Nord doit préserver les choix existants ; éviter les couleurs codées en dur dans les composants actifs. Tenir compte du chantier concurrent des notifications : ne pas modifier NotificationRuntime.qml/NotificationService.qml. Tests sémantiques et QML isolés. - with pi 🥧
Author
Owner

Résultat intégré et vérifié

  • Commande opérationnelle dans ~/.local/bin/desktop-theme : profils Nord, Dracula et Catppuccin Mocha ; set, status, --dry-run, rollback, reprise recover et préparation explicite séparée.
  • Sources signées et intégrées dans les deux main ; contenu distant contrôlé après push. Les modifications concurrentes de mémoire, accents et position des notifications sont conservées.
  • 70 tests outil/préparation/intégrations natives réussis : 45 moteur, 23 ressources, 1 rendu btop réel (3 profils), 1 enregistrement Code OSS isolé. Ruff et contrôles Python disponibles passent ; le LSP QML n'est pas disponible, les composants sont exercés dans le vrai runtime Qt.
  • Génération/contrats 9 tests, Pi 11, Neovim 5 ; suites UI/notifications/audio/presse-papiers et rechargement mémoire, tests Lua Hyprland et JavaScript concernés exécutés. Un diagnostic intermittent hors génération est suivi séparément en #29 : trois reprises ciblées et la suite complète suivante passent.
  • Essai réel Dracula → Mocha → rollback Dracula → rollback Nord : singleton actif Quickshell, bordures Hyprland/tmux et sélection GTK vérifiés ; PID Quickshell inchangé. Nord est conservé.
  • Ports GTK3 et Qt rendus hors écran ; plugins Neovim natifs chargés ; Yazi/btop rendus sur terminal privé. Code OSS reconnaît les deux extensions inertes dans son profil par défaut ; trois identifiants préexistants conservés et préférences conformes à l'instantané préalable. Son installateur réécrit des métadonnées de registre : aucune identité octet-par-octet de ces objets n'est revendiquée.
  • Les six feuilles GTK4 Nord/Dracula/Mocha sont chargées sans diagnostic après la correction bornée #30. Pour Dracula, les CSS effectifs parsés avant/après correction sont identiques ; seule la déclaration déjà ignorée est retirée, avec empreintes d'entrée/sortie.
  • Tests CSS Proton sur pages synthétiques : couleurs calculées des trois profils et résistance à une feuille tardive ; aucune donnée de message/calendrier utilisée.

Limites assumées / activation

status ne confond pas configuration et pixels affichés. Pi/éditeurs et certaines fenêtres GTK/Qt peuvent nécessiter un reload/reopen ; Proton demande une migration initiale normale et un rechargement de son extension/pages (désactiver l'ancien Proton Nord s'il reste actif). Aucun navigateur/éditeur n'est fermé automatiquement. GTK4/libadwaita peut imposer ses propres règles ; Ghostty est configuré mais absent du PATH, Dunst reste un backend secondaire manuel. Les configurations historiques non raccordées ne sont pas présentées comme actives.

Préparation hors ligne vérifiée après installation ; les changements ordinaires n'écrivent pas dans Git. iq-air.sh et les liens/fichiers préexistants de Projets/bin sont préservés. Les premiers défauts trouvés en revue ont été corrigés et les tests concernés réexécutés. Le mode Rofi -rasi-validate reste un défaut du validateur, séparé en #28 ; le lancement normal testé passe.

Révisions main : mathieu/dotfiles@0bfd5a839776ceadf79c2aca2f05eb746be36380, mathieu/duct-tape@f6c5aa49a17b4e47cf63391d0cca84e4e190a942

  • with pi 🥧
## Résultat intégré et vérifié - Commande opérationnelle dans `~/.local/bin/desktop-theme` : profils Nord, Dracula et Catppuccin Mocha ; `set`, `status`, `--dry-run`, `rollback`, reprise `recover` et préparation explicite séparée. - Sources signées et intégrées dans les deux `main` ; contenu distant contrôlé après push. Les modifications concurrentes de mémoire, accents et position des notifications sont conservées. - 70 tests outil/préparation/intégrations natives réussis : 45 moteur, 23 ressources, 1 rendu btop réel (3 profils), 1 enregistrement Code OSS isolé. Ruff et contrôles Python disponibles passent ; le LSP QML n'est pas disponible, les composants sont exercés dans le vrai runtime Qt. - Génération/contrats 9 tests, Pi 11, Neovim 5 ; suites UI/notifications/audio/presse-papiers et rechargement mémoire, tests Lua Hyprland et JavaScript concernés exécutés. Un diagnostic intermittent hors génération est suivi séparément en #29 : trois reprises ciblées et la suite complète suivante passent. - Essai réel Dracula → Mocha → rollback Dracula → rollback Nord : singleton actif Quickshell, bordures Hyprland/tmux et sélection GTK vérifiés ; PID Quickshell inchangé. Nord est conservé. - Ports GTK3 et Qt rendus hors écran ; plugins Neovim natifs chargés ; Yazi/btop rendus sur terminal privé. Code OSS reconnaît les deux extensions inertes dans son profil par défaut ; trois identifiants préexistants conservés et préférences conformes à l'instantané préalable. Son installateur réécrit des métadonnées de registre : aucune identité octet-par-octet de ces objets n'est revendiquée. - Les six feuilles GTK4 Nord/Dracula/Mocha sont chargées sans diagnostic après la correction bornée #30. Pour Dracula, les CSS effectifs parsés avant/après correction sont identiques ; seule la déclaration déjà ignorée est retirée, avec empreintes d'entrée/sortie. - Tests CSS Proton sur pages synthétiques : couleurs calculées des trois profils et résistance à une feuille tardive ; aucune donnée de message/calendrier utilisée. ## Limites assumées / activation `status` ne confond pas configuration et pixels affichés. Pi/éditeurs et certaines fenêtres GTK/Qt peuvent nécessiter un reload/reopen ; Proton demande une migration initiale normale et un rechargement de son extension/pages (désactiver l'ancien Proton Nord s'il reste actif). Aucun navigateur/éditeur n'est fermé automatiquement. GTK4/libadwaita peut imposer ses propres règles ; Ghostty est configuré mais absent du PATH, Dunst reste un backend secondaire manuel. Les configurations historiques non raccordées ne sont pas présentées comme actives. Préparation hors ligne vérifiée après installation ; les changements ordinaires n'écrivent pas dans Git. `iq-air.sh` et les liens/fichiers préexistants de `Projets/bin` sont préservés. Les premiers défauts trouvés en revue ont été corrigés et les tests concernés réexécutés. Le mode Rofi `-rasi-validate` reste un défaut du validateur, séparé en #28 ; le lancement normal testé passe. Révisions main : `mathieu/dotfiles@0bfd5a839776ceadf79c2aca2f05eb746be36380`, `mathieu/duct-tape@f6c5aa49a17b4e47cf63391d0cca84e4e190a942` - with pi 🥧
Author
Owner

Correction après le retour Kitty de Mathieu

L’erreur venait bien de mon inclusion globinclude ~/.config/desktop-theme/current/kitty.conf : le glob natif refuse les chemins absolus. include les accepte et ignore une ressource absente, ce qui conserve le fallback Nord.

  • Correctif intégré/poussé : 14b2b2c ; régression native : 9ee65a6. Fichiers distants vérifiés.

  • Configuration réelle ~/.config/kitty/kitty.conf relue par le parseur embarqué de Kitty : 0 erreur, fond Nord #2E3440.

  • Test isolé avec .config/kitty lié à un checkout : trois profils réellement parsés et bonnes couleurs vérifiées, fallback sans génération, contrôle négatif reproduisant l’erreur exacte de l’ancien glob. Aucun démarrage de fenêtre ni accès aux services personnels.

  • Les 10 tests de themes/tests et Ruff passent. Le succès d’envoi du signal de reload antérieur ne prouvait pas le succès du parseur ; cette lacune de validation est maintenant couverte.

  • with pi 🥧

## Correction après le retour Kitty de Mathieu L’erreur venait bien de mon inclusion `globinclude ~/.config/desktop-theme/current/kitty.conf` : le glob natif refuse les chemins absolus. `include` les accepte et ignore une ressource absente, ce qui conserve le fallback Nord. - Correctif intégré/poussé : `14b2b2c` ; régression native : `9ee65a6`. Fichiers distants vérifiés. - Configuration réelle `~/.config/kitty/kitty.conf` relue par le parseur embarqué de Kitty : **0 erreur**, fond Nord `#2E3440`. - Test isolé avec `.config/kitty` lié à un checkout : trois profils réellement parsés et bonnes couleurs vérifiées, fallback sans génération, contrôle négatif reproduisant l’erreur exacte de l’ancien glob. Aucun démarrage de fenêtre ni accès aux services personnels. - Les **10** tests de `themes/tests` et Ruff passent. Le succès d’envoi du signal de reload antérieur ne prouvait pas le succès du parseur ; cette lacune de validation est maintenant couverte. - with pi 🥧
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mathieu/dotfiles#26
No description provided.