Bureau : profils Nord, Dracula et Catppuccin avec bascule globale #25

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

Objectif

Appliquer Nord, Dracula et Catppuccin Mocha au bureau et aux outils intégrés par une commande desktop-theme set NOM, avec statut honnête par application et retour arrière.

Répartition

  • mathieu/dotfiles : palettes, fragments, raccordement des configurations et ressources de thèmes.
  • mathieu/duct-tape (~/Projets/bin) : commande Python autonome, planification, validation, sauvegardes, bascule et diagnostics.

Acceptation

  • Nord de référence préservé ; Dracula et Catppuccin Mocha disponibles.
  • Quickshell/Hyprland/Rofi, terminaux/tmux/fzf, éditeurs/Pi et outils CLI raccordés.
  • GTK/Kvantum/KDE et CSS Proton pris en compte selon leurs mécanismes supportés.
  • status, --dry-run, bascule hors ligne, idempotence et rollback testés.
  • Aucun remplacement global de couleurs, aucune préférence étrangère écrasée, aucun redémarrage forcé d’application.
  • Distinguer configuration écrite, reload et affichage vérifié ; signaler explicitement les limites (libadwaita, comptes web, applications non intégrées).
  • Commits signés, intégration et vérification dans les deux dépôts ; conserver les modifications concurrentes.

Suivi

Chantier intégré le 2026-10-25 ; racine historique dotfiles#25. Les lots et la correction liée #30 sont terminés. Le filtre dédié a été retiré après contrôle de leur fermeture ; les liens et chantier-racine sont conservés. L’inventaire privé reste dans le vault.

Livraison

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 10 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.

Corrections liées : #30 (terminée). Observations distinctes hors chantier : #28 et #29.

  • with pi 🥧
## Objectif Appliquer Nord, Dracula et Catppuccin Mocha au bureau et aux outils intégrés par une commande `desktop-theme set NOM`, avec statut honnête par application et retour arrière. ## Répartition - `mathieu/dotfiles` : palettes, fragments, raccordement des configurations et ressources de thèmes. - `mathieu/duct-tape` (`~/Projets/bin`) : commande Python autonome, planification, validation, sauvegardes, bascule et diagnostics. ## Acceptation - Nord de référence préservé ; Dracula et Catppuccin Mocha disponibles. - Quickshell/Hyprland/Rofi, terminaux/tmux/fzf, éditeurs/Pi et outils CLI raccordés. - GTK/Kvantum/KDE et CSS Proton pris en compte selon leurs mécanismes supportés. - `status`, `--dry-run`, bascule hors ligne, idempotence et `rollback` testés. - Aucun remplacement global de couleurs, aucune préférence étrangère écrasée, aucun redémarrage forcé d’application. - Distinguer configuration écrite, reload et affichage vérifié ; signaler explicitement les limites (libadwaita, comptes web, applications non intégrées). - Commits signés, intégration et vérification dans les deux dépôts ; conserver les modifications concurrentes. ## Suivi - [x] [desktop-theme : moteur de bascule sûr, diagnostics et rollback](https://git.2027a.net/mathieu/duct-tape/issues/4) — `duct-tape#4` - [x] [Thèmes : centraliser les palettes et raccorder le bureau personnalisé](https://git.2027a.net/mathieu/dotfiles/issues/26) — `dotfiles#26` - [x] [Thèmes : ressources natives, intégration des applications et validation](https://git.2027a.net/mathieu/dotfiles/issues/27) — `dotfiles#27` Chantier intégré le 2026-10-25 ; racine historique `dotfiles#25`. Les lots et la correction liée #30 sont terminés. Le filtre dédié a été retiré après contrôle de leur fermeture ; les liens et `chantier-racine` sont conservés. L’inventaire privé reste dans le vault. ## Livraison ## 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 10 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. Corrections liées : #30 (terminée). Observations distinctes hors chantier : #28 et #29. - with pi 🥧
Author
Owner

Avancement

  • Les profils et 20 fragments ont été exercés dans un HOME temporaire avec les vrais ports natifs préparés ; aller-retour Nord → Dracula → Mocha → rollback → Nord réussi, sans appel aux services personnels.

  • Tests moteur : 40 cas ; préparation : 13 cas. Les tests ciblés Quickshell/Neovim et la génération passent.

  • Revue indépendante : corrections appliquées pour l’isolation D-Bus, les racines/symlinks, les transactions interrompues, le statut après rollback, les pidfds et la vérification des ressources. Une relecture ciblée reste à faire avant intégration.

  • Une première version d’un test avait modifié GTK ; le réglage observé Nordic-darker a été rétabli et revérifié, et les fixtures interdisent maintenant tout appel non simulé aux stores personnels.

  • Rofi -rasi-validate segfault aussi dans le contexte de validation actuel ; ce résultat n’est pas compté comme une réussite. Le contrôle du lancement normal et la validation du bureau actif restent à terminer.

  • Aucun déploiement du moteur dans le PATH ni bascule finale de la session pour l’instant.

  • with pi 🥧

## Avancement - Les profils et 20 fragments ont été exercés dans un HOME temporaire avec les vrais ports natifs préparés ; aller-retour Nord → Dracula → Mocha → rollback → Nord réussi, sans appel aux services personnels. - Tests moteur : 40 cas ; préparation : 13 cas. Les tests ciblés Quickshell/Neovim et la génération passent. - Revue indépendante : corrections appliquées pour l’isolation D-Bus, les racines/symlinks, les transactions interrompues, le statut après rollback, les pidfds et la vérification des ressources. Une relecture ciblée reste à faire avant intégration. - Une première version d’un test avait modifié GTK ; le réglage observé Nordic-darker a été rétabli et revérifié, et les fixtures interdisent maintenant tout appel non simulé aux stores personnels. - Rofi `-rasi-validate` segfault aussi dans le contexte de validation actuel ; ce résultat n’est pas compté comme une réussite. Le contrôle du lancement normal et la validation du bureau actif restent à terminer. - Aucun déploiement du moteur dans le PATH ni bascule finale de la session pour l’instant. - 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#25
No description provided.