desktop-theme : moteur de bascule sûr, diagnostics et rollback #4
Labels
No labels
Agent/Autonomous OK
Agent/Demeter
Agent/Hermes
Agent/Human
Agent/Needs Review
Area/API
Area/Auth
Area/CLI
Area/Data
Area/Docs
Area/Infra
Area/UI
CI/Failing
CI/Flaky
CI/Green
CI/Needs Runner
CI/Needs Workflow
Compat/Backward Compatible
Compat/Breaking
Compat/Migration
Deploy/Ansible
Deploy/Blocked
Deploy/Homelab
Deploy/Needs Config
Deploy/Needs Secret
Deploy/Ready
Deploy/Rollback
Kind/Bug
Kind/Chore
Kind/Design
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Refactor
Kind/Security
Kind/Spike
Kind/Testing
Ops/Backup
Ops/Incident
Ops/Maintenance
Ops/Monitoring
Ops/Upgrade
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Priority
Someday
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Risk
Critical
Risk
High
Risk
Low
Risk
Medium
Security/Auth
Security/Disclosure
Security/Hardening
Security/Secret
Size
L
Size
M
Size
S
Size
XL
Size
XS
Stack/Ansible
Stack/Docker
Stack/Forgejo
Stack/Hermes
Stack/Node
Stack/Postgres
Stack/Python
Stack/Systemd
Status
Abandoned
Status
Blocked
Status
In Progress
Status
In Review
Status
Need More Info
Status
Ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
mathieu/duct-tape#4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Racine : mathieu/dotfiles#25
Travail
Implémenter la commande Python 3.11+ standard-library dans
~/Projets/bin.Contrat : profils fournis par dotfiles ;
list,set NOM [--dry-run],status,rollback. Génération validée avant application, verrou, sauvegardes, écritures atomiques par fichier, préservation des liens et des clés non gérées, absence de réseau pendantset, refus des dérives gérées. Reloads bornés et bilan distinguant appliqué/reload requis/indisponible/échec. Tests isolés avec HOME/XDG temporaires : erreurs, conflits, idempotence, restauration et partialité. Ne pas toucher aux scripts ou liens non liés au chantier.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-validatesegfault 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 🥧
Résultat intégré et vérifié
~/.local/bin/desktop-theme: profils Nord, Dracula et Catppuccin Mocha ;set,status,--dry-run,rollback, repriserecoveret préparation explicite séparée.main; contenu distant contrôlé après push. Les modifications concurrentes de mémoire, accents et position des notifications sont conservées.Limites assumées / activation
statusne 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.shet les liens/fichiers préexistants deProjets/binsont 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-validatereste un défaut du validateur, séparé en mathieu/dotfiles#28 ; le lancement normal testé passe.Révisions main :
mathieu/dotfiles@0bfd5a839776ceadf79c2aca2f05eb746be36380,mathieu/duct-tape@f6c5aa49a17b4e47cf63391d0cca84e4e190a942Évolution demandée : priorité au thème explicitement choisi
Intégré sur
main:7375bbb5b744ed9af49460542195d5cccbfe0686. À la demande de Mathieu,set/installréappliquent désormais les clés de thème même si une application ou une édition manuelle les a changées depuis la dernière bascule. Aucun flag de force ni confirmation supplémentaire ; sélectionner à nouveau le même profil répare aussi ces valeurs.Les autres réglages restent conservés. Le journal sauvegarde les vraies valeurs et les fichiers précédant la bascule. Les contrôles de liens/fichiers générés, les écritures concurrentes et les protections propres à rollback/recover restent en place.
statuspeut signaler une préférence divergente mais n'empêche plus de réappliquer un thème.Validation : 75 tests passent (50 moteur, 23 ressources, 1 Code OSS isolé, 1 btop natif couvrant trois palettes et un retour à Default entre bascules), Ruff passe. Revue de code indépendante OK ; les tests ont été exécutés par le parent. Couverture des valeurs GTK/Code/btop, réparation du même profil, simulation sans écriture, snapshot GSettings simulé et restauration des valeurs réellement présentes avant la commande.
Essai personnel : le btop
Defaultsignalé par Mathieu n'a plus bloquéset catppuccin-mocha. Sauvegarde complète vérifiée ; tous ses autres réglages sont octet-identiques. Configuration sans dérive, singleton Quickshell observé en Mocha#1E1E2E, parseur natif Kitty sans erreur et même fond. Aucun processus btop arrêté ni touche injectée ; une instance déjà ouverte peut toujours demander un rechargement normal pour afficher la nouvelle palette.Fichiers distants vérifiés après push.
iq-air.shet les fichiers étrangers sont préservés. Documentation de commande et TODO local mis à jour.