Dotfiles_ArchAP/quickshell/.config/quickshell/labfy-sway/README.md

4.8 KiB

QuickShell labfy-sway

Le moteur de thème commun fournit les couleurs effectives à QuickShell et Sway/SwayFX depuis une seule palette Catppuccin versionnée.

Barre principale et serveur de notifications de la session SwayFX.

Bar
├── Workspaces
├── Window/task switcher
├── Date Center
│   ├── MPRIS
│   └── Notifications
├── Right Status
│   ├── Network
│   ├── Bluetooth
│   ├── Battery
│   ├── Updates
│   ├── Supports amovibles
│   ├── Tray
│   └── Control Center
└── Control Center
    ├── Wi-Fi
    ├── Bluetooth
    ├── Volume
    ├── Brightness
    ├── Power Profile
    ├── Apparence
    │   └── Fond d'écran
    ├── Battery limit
    └── Session

quickshell-labfy-sway.service est activé par wayland-session@sway.desktop.target, sans autostart Sway parallèle. NotificationService.qml possède org.freedesktop.Notifications ; l'historique est écrit hors Git via Quickshell.statePath("notifications.json") dans ~/.local/state/quickshell/. Mako demeure installé, inactif et masqué ; voir ROLLBACK.md.

labfy-quickshell-updates.timer exécute bin/check-updates.py, qui publie un état JSON dans $XDG_RUNTIME_DIR. batlimit (CLI) et Réglages rapides → Batterie (GUI) passent par /usr/local/sbin/batlimit-set. Le seuil courant est 60 % ; le helper root est documenté dans bin/root/README.md.

Dépendances essentielles : quickshell, SwayFX 0.6, scenefx, une Nerd Font, NetworkManager, BlueZ, PipeWire, TLP/tlpctl, checkupdates, yay, df, python3, swaylock et le helper batterie pour le réglage du seuil. Le backlight utilise le noeud machine amdgpu_bl1 dans BrightnessSlider.qml. Les scans Wi-Fi et Bluetooth ne sont possédés que par les pages ouvertes.

Le gestionnaire de fonds d'écran local est décrit dans WALLPAPER.md. Il utilise Sway et swaybg, sans service permanent ni changement automatique du thème.

Supports amovibles

RemovableMediaIndicator.qml affiche dans la zone d'état un indicateur lorsqu'au moins un système de fichiers éligible est présent. Son PopupWindow natif liste les volumes, leur état et les erreurs publiées, puis offre les actions Ouvrir, Monter ou Démonter, et Retirer en sécurité si le lecteur le permet. Ouvrir lance Yazi dans Kitty via UWSM. Le popup participe à la même exclusion mutuelle que le Date Center, le menu des fenêtres et le Control Center.

QuickShell lit exclusivement le snapshot JSON V1 $XDG_RUNTIME_DIR/labfy-removable-media.json. Il refuse intégralement un snapshot dont schema n'est pas labfy.removable-media, dont version n'est pas 1, ou dont les appareils ne respectent pas le contrat attendu. Les commandes passent sans shell à labfy-removable-mediactl, qui est l'unique frontière de commande vers le daemon ; le socket Unix associé est privé (0600).

Le service utilisateur repose sur l'ObjectManager UDisks et ne présente que les systèmes de fichiers USB ou SD/MMC. Les blocs marqués HintIgnore ou HintSystem sont exclus. Un volume crypto_LUKS n'est ni présenté ni déverrouillé automatiquement. Les périphériques MTP ne fournissent pas ce modèle UDisks de système de fichiers et ne sont donc pas pris en charge. Chaque objet UDisks présent peut être monté automatiquement une seule fois ; après un démontage manuel, il reste démonté jusqu'à sa disparition puis sa réinsertion. Le retrait en sécurité agit au niveau du lecteur et vérifie que ses systèmes de fichiers sont démontés avant l'éjection ou la mise hors tension.

Le contrôle visuel synthétique peut être activé avec LABFY_REMOVABLE_MEDIA_TEST_STATE (0, mounted, unmounted ou busy-error) dans le processus QuickShell. Ces états ne lancent aucune commande. Les tests Python synthétiques du daemon et de son IPC sont décrits dans systemd.md.

Cette fonction est indépendante de Session Restore : elle ne lit ni n'écrit de checkpoint de session et n'intervient pas dans son démarrage.

La validation sur matériel USB/SD réel n'a pas encore été effectuée ; l'état actuel est couvert par les tests synthétiques seulement.

Parité avec i3status-rs

Ancien bloc QuickShell
scratchpad indicator volontairement non repris
focused_window WindowStrip
music Date Center MPRIS
bluetooth status + Control Center
net status + Control Center
sound Control Center
backlight Control Center
battery status + page Batterie
TLP PowerProfile
packages Updates
time Clock / Date Center
menu page Session