Section LECTURE apparaît automatiquement si un lecteur est actif (playerctl).
- Album art chargé en arrière-plan (file:// et http/https), coins arrondis
dessinés en Cairo avec fallback icône note de musique
- Contrôles prev / play-pause / next via playerctl
- Titre et artiste avec ellipsis, rafraîchis toutes les 2s
- Suppression de vc-brightness-popup.py et vc-volume-popup.py (fusionnés)
Dépendances apt ajoutées : gir1.2-gdkpixbuf-2.0, gir1.2-pango-1.0
- Sélecteur de sortie (SORTIE) : liste verticale des sinks disponibles,
filtre les SUSPENDED (HDMI non branchés), actif surligné en rose
- Sélecteur d'entrée (ENTRÉE) : même logique, filtre les .monitor
(loopbacks), garde les vrais micros même SUSPENDED
- Popup ancré à droite (plus jamais hors écran)
- LANG=C pour pactl (indépendant de la locale système)
set_value(même_valeur) est un no-op dans GTK3 (skippé si inchangé).
Oscillation v-1 → v pour déclencher le recalcul réel du nœud
CSS highlight dans le trough.
GTK3 bug : quand set_value() est appelé avant que le widget soit
réalisé et que la valeur = max (100%), le nœud CSS 'highlight'
calcule sa largeur à 0. Fix : re-appliquer les valeurs via idle_add
après show_all() pour déclencher un recalcul correct.
GTK3 ne matche pas 'scale.audio highlight' en pratique, il faut
le chemin complet 'scale.audio trough highlight' pour que la barre
colorée (rose/cyan) soit rendue dans les sliders volume et micro.
wob-overlay.py :
- Bordure rose (#ff79c6) pour volume, cyan (#8be9fd) pour luminosité
via classes CSS dynamiques sur #wob-box
- Ouverture FIFO en O_RDWR : plus de deadlock au redémarrage,
plus d'EOF entre deux écritures (supprime la dépendance à exec 3<>)
vc-media-popup.py :
- Labels ENTRÉE / SORTIE en rose (#ff79c6) au lieu de 45% opacité
- min-height: 22px sur scale.audio et scale.bright pour forcer
le rendu du slider micro (était compressé à 0 par GTK3)
- Nouveau wob-overlay.py : fenêtre GTK3+GtkLayerShell transparente
avec barre arrondie (border-radius 12px), couleur pink pour volume
et cyan pour luminosité
- Protocole FIFO typé : v:N pour volume, b:N pour luminosité
- wob-start.sh lance wob-overlay.py au lieu du binaire wob
- wob-volume.sh, wob-brightness.sh, vc-media-popup.py et
power-profile.sh mis à jour pour envoyer les messages typés
- Correction bug vc-media-popup.py : les deux sliders audio
contrôlaient @DEFAULT_AUDIO_SINK@ (mauvaise capture de target)