Quickshell / qualité : clarifier les noms QML, les expressions complexes et les diagnostics utiles #24

Closed
opened 2026-10-24 13:10:07 +00:00 by mathieu · 2 comments
Owner

Constats

  • mathieu/DesktopPage.qml:35 nomme une fonction clip, déjà propriété de QQuickItem.
  • HomePage.qml:21, LightControl.qml:9 et LightRow.qml:9 utilisent states pour un dictionnaire métier, alors que ce nom existe dans l’API d’état Qt.
  • Plusieurs longues expressions mêlent validation, transformation et politique métier dans les passerelles et composants QML, ce qui rend les invariants et chemins d’erreur moins lisibles.

Lors de la revue : Ruff signale 14 points, surtout de conventions ; qmllint Qt 6.12 signale 90 avertissements, dont des limitations de métadonnées Quickshell. Ces nombres ne représentent pas autant de bugs. Les scripts documentés comme appelés via Python ne doivent pas être rendus exécutables mécaniquement pour satisfaire un shebang.

Résultat attendu

  • Renommer les membres ambigus (par exemple clipboardAction, lightStates) et adapter toutes leurs utilisations/tests.
  • Aérer uniquement les expressions complexes des chemins touchés, avec variables locales nommées ; ne pas reformater tout le dépôt ni créer un nouveau système de thèmes/framework.
  • Trier les diagnostics : corriger les défauts valides, documenter les limites de types/métadonnées et d’éventuelles suppressions ciblées. Ne pas désactiver globalement les règles.
  • Clarifier les contrats de champs/snapshots aux frontières concernées sans introduire une couche de schémas spéculative.

Validation

  • Aucun changement de comportement, de traduction ni de rendu volontaire.
  • Aucune référence à un ancien nom ; tests QML et passerelles concernés conservés.
  • Liste explicite des diagnostics corrigés, faux positifs restants et commandes/version des analyseurs.
  • Garder des changements petits et relisibles ; éviter de chevaucher les fichiers encore en correction fonctionnelle.

Articulation

Après stabilisation fonctionnelle. Le chemin de mise à jour des notifications et la validation HA sont simplifiés dans leurs tickets respectifs, pas réécrits une seconde fois ici.

Référence

Revue du code au commit 5e350a8, avec Quickshell 0.3.2. Les 18 suites existantes passent ; les cas ci-dessous complètent cette couverture. Chantier : #11.

  • with pi 🥧
## Constats - `mathieu/DesktopPage.qml:35` nomme une fonction `clip`, déjà propriété de `QQuickItem`. - `HomePage.qml:21`, `LightControl.qml:9` et `LightRow.qml:9` utilisent `states` pour un dictionnaire métier, alors que ce nom existe dans l’API d’état Qt. - Plusieurs longues expressions mêlent validation, transformation et politique métier dans les passerelles et composants QML, ce qui rend les invariants et chemins d’erreur moins lisibles. Lors de la revue : Ruff signale 14 points, surtout de conventions ; qmllint Qt 6.12 signale 90 avertissements, dont des limitations de métadonnées Quickshell. Ces nombres ne représentent pas autant de bugs. Les scripts documentés comme appelés via Python ne doivent pas être rendus exécutables mécaniquement pour satisfaire un shebang. ## Résultat attendu - Renommer les membres ambigus (par exemple `clipboardAction`, `lightStates`) et adapter toutes leurs utilisations/tests. - Aérer uniquement les expressions complexes des chemins touchés, avec variables locales nommées ; ne pas reformater tout le dépôt ni créer un nouveau système de thèmes/framework. - Trier les diagnostics : corriger les défauts valides, documenter les limites de types/métadonnées et d’éventuelles suppressions ciblées. Ne pas désactiver globalement les règles. - Clarifier les contrats de champs/snapshots aux frontières concernées sans introduire une couche de schémas spéculative. ## Validation - [x] Aucun changement de comportement, de traduction ni de rendu volontaire. - [x] Aucune référence à un ancien nom ; tests QML et passerelles concernés conservés. - [x] Liste explicite des diagnostics corrigés, faux positifs restants et commandes/version des analyseurs. - [x] Garder des changements petits et relisibles ; éviter de chevaucher les fichiers encore en correction fonctionnelle. ## Articulation Après stabilisation fonctionnelle. Le chemin de mise à jour des notifications et la validation HA sont simplifiés dans leurs tickets respectifs, pas réécrits une seconde fois ici. ## Référence Revue du code [au commit `5e350a8`](https://git.2027a.net/mathieu/dotfiles/src/commit/5e350a8945af99e6e6b1c7f472fb7529a26a1826/quickshell/), avec Quickshell 0.3.2. Les 18 suites existantes passent ; les cas ci-dessous complètent cette couverture. Chantier : #11. - with pi 🥧
Author
Owner

Phase A statique relue, fonctionnel stabilisé et #22 intégré. Phase B autorisée dans quickshell-clarity / pi/quickshell-clarity, base exacte d5f3472 : renommages ciblés et diagnostics documentés, invariants UX/protocole/erreurs conservés. Pas de campagne chmod/suppression globale ni réécriture HA/notifications. Toute correction géométrique éventuelle reste séparée et conditionnée à une comparaison native avant/après de géométrie, sans choix visuel nouveau. Le parent garde revue/intégration/publication.

  • with pi 🥧
Phase A statique relue, fonctionnel stabilisé et #22 intégré. Phase B autorisée dans `quickshell-clarity` / `pi/quickshell-clarity`, base exacte d5f3472 : renommages ciblés et diagnostics documentés, invariants UX/protocole/erreurs conservés. Pas de campagne chmod/suppression globale ni réécriture HA/notifications. Toute correction géométrique éventuelle reste séparée et conditionnée à une comparaison native avant/après de géométrie, sans choix visuel nouveau. Le parent garde revue/intégration/publication. - with pi 🥧
Author
Owner

Intégré sur main 90f0cd8,19fichiers distants exacts vérifiés. Deux commits signés624bee1 (QML/noms/contrats/tests) etcc2ed39 (frontières Python/diagnostics) ; revue indépendante sans constat. Gate parent final26/26 suites passent au SHA90f0cd8, dontHomePage16, garde21, helper12, bridge36, staging25 etHA39. Aucun mode de fichier modifié.

Renommages complets : clip→clipboardAction et les3tables métierstates→lightStates, quatreIDs ambigus clarifiés ; les vrais champs Qt/JSONHA et les propriétés publiques SystemPanel restent inchangés. Expressions locales lisibles, chemins de snapshots documentés, pas de couche de schémas/rewrite. Python : constante de politique évaluée à l’import comme avant, branches argv littérales explicites, deux checks de cible et ordre d’incertitude conservés ; ValueError reste le contrat TOML. Deux check=False rendent le défaut existant explicite. Traductions, dimensions, délais, protocoles et comportement conservés.

Tests natifs utilisent de vrais Return/Delete dans des fenêtres privées vers bridges enregistreurs ; les tests de collage réutilisent le vrai câblage. Trois contrôles négatifs échouent réellement : mauvaise table live, ancien appelclip, évaluation deHOME à chaque appel. Aucun contenu/ordre réel HA/presse-papiers/téléphone/service hôte utilisé.

Diagnostics réellement triés, pas promis tous corrigés : Ruff0.17.2 isolé surEXE001/B008/PLW1510/TRY004 :16→13 (B008+2PLW1510 corrigés). Qtqmllint6.12.0 avecQuickshell0.3.2/imports explicites :76→64enregistrements (4collisions membres+4IDs et leurs4notes supprimées). Les nombres historiques14/90 ne servent pas d’après-mesure. Restent12EXE001 attendus pour scripts appelés viaPython,1TRY004 APIintentionnelle testée ;17résolutions de membres/signaux présents dans les métadonnées,4limites de factoryPanelWindow non prouvées nativement,40accès non qualifiés explicitement non réécrits et3risques valides de layout conservés. Pas de suppression globale ni de campagne chmod.

Limite explicite : aucun essai d’équivalence géométrique avant/après n’a été réalisé ; les3sites layout et tailles sont donc inchangés, pas déclarés « corrigés » ni faux positifs. Ils ne démontrent pas à eux seuls un défaut visible. Pas de preuve de factory/compositeur réel ni diagnosticLSP disponible à ce worker ; contrôlesQtinstallés et compilation native isolée constituent l’évidence. Taxonomie complète et commandes/versions dansREADME et/tmp/quickshell-clarity-diagnostics/ (avant/après,26suitegate,contrôlesRED).

Publication≠activation : checkout actif non avancé.

  • with pi 🥧
Intégré sur main [90f0cd8](https://git.2027a.net/mathieu/dotfiles/commit/90f0cd8bb25ae03c1b9dd5f59e16fc95f2c2b17a),19fichiers distants exacts vérifiés. Deux commits signés624bee1 (QML/noms/contrats/tests) etcc2ed39 (frontières Python/diagnostics) ; revue indépendante sans constat. **Gate parent final26/26 suites passent au SHA90f0cd8**, dontHomePage16, garde21, helper12, bridge36, staging25 etHA39. Aucun mode de fichier modifié. Renommages complets : `clip`→`clipboardAction` et les3tables métier`states`→`lightStates`, quatreIDs ambigus clarifiés ; les vrais champs Qt/JSONHA et les propriétés publiques SystemPanel restent inchangés. Expressions locales lisibles, chemins de snapshots documentés, pas de couche de schémas/rewrite. Python : constante de politique évaluée à l’import comme avant, branches argv littérales explicites, deux checks de cible et ordre d’incertitude conservés ; `ValueError` reste le contrat TOML. Deux `check=False` rendent le défaut existant explicite. Traductions, dimensions, délais, protocoles et comportement conservés. Tests natifs utilisent de vrais Return/Delete dans des fenêtres privées vers bridges enregistreurs ; les tests de collage réutilisent le vrai câblage. Trois contrôles négatifs échouent réellement : mauvaise table live, ancien appelclip, évaluation deHOME à chaque appel. Aucun contenu/ordre réel HA/presse-papiers/téléphone/service hôte utilisé. **Diagnostics réellement triés, pas promis tous corrigés :** Ruff0.17.2 isolé surEXE001/B008/PLW1510/TRY004 :16→13 (B008+2PLW1510 corrigés). Qtqmllint6.12.0 avecQuickshell0.3.2/imports explicites :76→64enregistrements (4collisions membres+4IDs et leurs4notes supprimées). Les nombres historiques14/90 ne servent pas d’après-mesure. Restent12EXE001 attendus pour scripts appelés viaPython,1TRY004 APIintentionnelle testée ;17résolutions de membres/signaux présents dans les métadonnées,4limites de factoryPanelWindow non prouvées nativement,40accès non qualifiés explicitement non réécrits et3risques valides de layout conservés. Pas de suppression globale ni de campagne chmod. **Limite explicite :** aucun essai d’équivalence géométrique avant/après n’a été réalisé ; les3sites layout et tailles sont donc inchangés, pas déclarés « corrigés » ni faux positifs. Ils ne démontrent pas à eux seuls un défaut visible. Pas de preuve de factory/compositeur réel ni diagnosticLSP disponible à ce worker ; contrôlesQtinstallés et compilation native isolée constituent l’évidence. Taxonomie complète et commandes/versions dansREADME et`/tmp/quickshell-clarity-diagnostics/` (avant/après,26suitegate,contrôlesRED). Publication≠activation : checkout actif non avancé. - with pi 🥧
mathieu 2026-10-24 18:54:39 +00:00
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#24
No description provided.