Quickshell : sélectionner le thème du bureau depuis Config #31

Closed
opened 2026-10-25 05:45:33 +00:00 by mathieu · 2 comments
Owner

Demande

Ajouter un sélecteur Nord / Dracula / Catppuccin Mocha dans l’onglet Config du panneau Quickshell, plutôt que nécessiter un terminal.

Comportement

  • Carte dédiée, boutons accessibles au clavier et indication de la palette réellement chargée.
  • Réutilisation de desktop-theme set sans téléchargement ni modification directe des préférences par QML.
  • Exécution asynchrone partagée : une seule bascule, boutons désactivés pendant son exécution, fermeture/déplacement du panneau sans annulation.
  • Résultat et erreur visibles ; distinguer configuration appliquée et rechargements applicatifs encore nécessaires. Réappliquer le profil actif reste possible.
  • Les changements faits via le terminal sont reflétés par le sélecteur.

Le moteur de mathieu/duct-tape#4 est déjà disponible. L’ancien chantier #25 constitue le contexte historique, pas une nouvelle dépendance à réaliser.

Validation

Tests QML réels sur HOME/XDG privés avec faux exécutable : clic, Entrée, garde d’exécution, autre vue/panneau fermé, erreurs et rechargement partiel, commande absente sans repli vers le PATH personnel, reprise après échec, changements externes et rendu à 380/560 px. Vérifier l’insertion dans Config, les tests UI/audio/palette existants et le shell réellement chargé après intégration.

  • with pi 🥧
## Demande Ajouter un sélecteur Nord / Dracula / Catppuccin Mocha dans l’onglet **Config** du panneau Quickshell, plutôt que nécessiter un terminal. ## Comportement - Carte dédiée, boutons accessibles au clavier et indication de la palette réellement chargée. - Réutilisation de `desktop-theme set` sans téléchargement ni modification directe des préférences par QML. - Exécution asynchrone partagée : une seule bascule, boutons désactivés pendant son exécution, fermeture/déplacement du panneau sans annulation. - Résultat et erreur visibles ; distinguer configuration appliquée et rechargements applicatifs encore nécessaires. Réappliquer le profil actif reste possible. - Les changements faits via le terminal sont reflétés par le sélecteur. Le moteur de mathieu/duct-tape#4 est déjà disponible. L’ancien chantier #25 constitue le contexte historique, pas une nouvelle dépendance à réaliser. ## Validation Tests QML réels sur HOME/XDG privés avec faux exécutable : clic, Entrée, garde d’exécution, autre vue/panneau fermé, erreurs et rechargement partiel, commande absente sans repli vers le PATH personnel, reprise après échec, changements externes et rendu à 380/560 px. Vérifier l’insertion dans Config, les tests UI/audio/palette existants et le shell réellement chargé après intégration. - with pi 🥧
Author
Owner

Livré

Intégré et poussé sur main : 0ffd8fe9cc880a969aa753dbefde058b01d5dd80. Contenu distant des composants critiques vérifié après publication.

Super+V → Config → Thème du bureau : Nord, Dracula et Catppuccin Mocha. La carte suit la palette chargée, permet de réappliquer le choix actif, bloque les requêtes simultanées et conserve son retour de commande lors d’une fermeture/d’un déplacement du panneau. Erreurs et rechargements partiels sont affichés sans prétendre que toutes les fenêtres ont déjà changé. Aucun téléchargement ni arrêt forcé d’application.

Preuves

  • 3 nouveaux tests Quickshell natifs passent : vrais clics/Entrée, arguments exacts, profils invalides refusés, garde d’exécution partagée, fermeture/changement de vue pendant une commande, même profil, erreur, application partielle, exécutable absent sans repli personnel, reprise, changements externes, rendus 380/560 px.
  • Validation entièrement privée pour ces actions : HOME/XDG temporaires, faux desktop-theme, bus inaccessibles. Les rendus ne contiennent que les cartes synthétiques.
  • Tests existants réussis : palette atomique (1), intégration Config/audio/session (1, 45 contrôles dont présence/activation réelle du sélecteur dans Config), widgets (1), UI générale (5, 87 contrôles natifs). Test Node panel-logic passé.
  • Ruff passe sur les tests Python concernés ; /usr/lib/qt6/bin/qmllint 6.12 passe sans diagnostic pour les trois composants. Pas de serveur LSP QML disponible ; la validation QML vient du vrai runtime et de Qt6 qmllint.
  • Revue de code indépendante : aucun défaut relevé. Les tests ont été exécutés par le parent.
  • Shell effectif rechargé via son IPC normal, PID conservé 2466091 ; le nouvel état IPC expose applying, failed, message. Palette active Nord observée, commande au repos et sans erreur. Le sélecteur est donc chargé dans l’instance de bureau, pas seulement présent dans Git.

La commande conserve ses limites de rechargement des applications ouvertes ; aucun changement supplémentaire des comptes/profils web. Le moteur existant est réutilisé sans duplication dans QML.

  • with pi 🥧
## Livré Intégré et poussé sur `main` : `0ffd8fe9cc880a969aa753dbefde058b01d5dd80`. Contenu distant des composants critiques vérifié après publication. **Super+V → Config → Thème du bureau** : Nord, Dracula et Catppuccin Mocha. La carte suit la palette chargée, permet de réappliquer le choix actif, bloque les requêtes simultanées et conserve son retour de commande lors d’une fermeture/d’un déplacement du panneau. Erreurs et rechargements partiels sont affichés sans prétendre que toutes les fenêtres ont déjà changé. Aucun téléchargement ni arrêt forcé d’application. ### Preuves - 3 nouveaux tests Quickshell natifs passent : vrais clics/Entrée, arguments exacts, profils invalides refusés, garde d’exécution partagée, fermeture/changement de vue pendant une commande, même profil, erreur, application partielle, exécutable absent sans repli personnel, reprise, changements externes, rendus 380/560 px. - Validation entièrement privée pour ces actions : HOME/XDG temporaires, faux `desktop-theme`, bus inaccessibles. Les rendus ne contiennent que les cartes synthétiques. - Tests existants réussis : palette atomique (1), intégration Config/audio/session (1, 45 contrôles dont présence/activation réelle du sélecteur dans Config), widgets (1), UI générale (5, 87 contrôles natifs). Test Node panel-logic passé. - Ruff passe sur les tests Python concernés ; `/usr/lib/qt6/bin/qmllint` 6.12 passe sans diagnostic pour les trois composants. Pas de serveur LSP QML disponible ; la validation QML vient du vrai runtime et de Qt6 qmllint. - Revue de code indépendante : aucun défaut relevé. Les tests ont été exécutés par le parent. - Shell effectif rechargé via son IPC normal, **PID conservé 2466091** ; le nouvel état IPC expose `applying`, `failed`, `message`. Palette active Nord observée, commande au repos et sans erreur. Le sélecteur est donc chargé dans l’instance de bureau, pas seulement présent dans Git. La commande conserve ses limites de rechargement des applications ouvertes ; aucun changement supplémentaire des comptes/profils web. Le moteur existant est réutilisé sans duplication dans QML. - with pi 🥧
Author
Owner

Affinage demandé par Mathieu

Intégré et chargé : 2b988f569bf4661ffe96167fc8f33db3e73b5a6d. Carte Thème en bas de Config, après Audio et Session & veille ; elle occupe une ligne complète même en disposition large. Suppression du paragraphe explicatif, du rappel « Actif » redondant et du message permanent de réussite. Progression et erreurs restent disponibles. Libellé Catppuccin, sans changer l’identifiant interne catppuccin-mocha ni les ressources natives.

Vérifications : 49 contrôles Config/audio/session passent, dont géométrie finale à 380 et 1800 px ; 4 tests de sélecteur (clic/Entrée, erreurs visibles, succès silencieux, sept profils), 5 UI générale (87 contrôles) et widgets passent. Ruff et Qt6 qmllint passent. Rendus synthétiques examinés. Contenu distant vérifié, nouveau libellé observé dans l’IPC du shell actif après rechargement normal.

  • with pi 🥧
## Affinage demandé par Mathieu Intégré et chargé : `2b988f569bf4661ffe96167fc8f33db3e73b5a6d`. Carte **Thème** en bas de Config, après Audio et Session & veille ; elle occupe une ligne complète même en disposition large. Suppression du paragraphe explicatif, du rappel « Actif » redondant et du message permanent de réussite. Progression et erreurs restent disponibles. Libellé **Catppuccin**, sans changer l’identifiant interne `catppuccin-mocha` ni les ressources natives. Vérifications : 49 contrôles Config/audio/session passent, dont géométrie finale à 380 et 1800 px ; 4 tests de sélecteur (clic/Entrée, erreurs visibles, succès silencieux, sept profils), 5 UI générale (87 contrôles) et widgets passent. Ruff et Qt6 qmllint passent. Rendus synthétiques examinés. Contenu distant vérifié, nouveau libellé observé dans l’IPC du shell actif après rechargement normal. - 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#31
No description provided.