Dotfiles_ArchAP/quickshell/.config/quickshell/labfy-sway/controlcenter/AUDIO_MIXER.md

2.8 KiB
Raw Blame History

Mixeur audio du Control Center

Le clic sur l'indicateur de volume de la barre ouvre la page Audio du Control Center. Le défilement de la barre conserve ses pas de 1 point et son contrôleur VolumeSlider. La page est intégrée au StackLayout existant et possède un bouton Retour vers Réglages rapides ; elle ne crée ni fenêtre ni service supplémentaire.

La page utilise Quickshell.Services.Pipewire. Pipewire.nodes fournit les objets vivants et PwObjectTracker lie les nœuds audio uniquement tant que la page est active. Le volume général lit exactement le sinkAudio du VolumeSlider déjà partagé avec la barre. Les trois listes se fondent sur media.class et les propriétés de direction : Audio/Sink pour les sorties, Audio/Source pour les microphones et Stream/Output/Audio pour les flux de lecture. Les flux de capture, de vidéo et les nœuds techniques de monitoring ou de groupe loopback sont exclus. Chaque objet de flux garde sa propre ligne ; aucune identité temporaire n'est persistée et l'ordre des survivants suit le catalogue PipeWire pendant les interactions.

Choisir une sortie ou une entrée écrit preferredDefaultAudioSink ou preferredDefaultAudioSource. La coche et le libellé « utilisée » suivent uniquement defaultAudioSink et defaultAudioSource effectivement observés. La préférence peut être différente de la valeur effective ou prendre du temps à s'appliquer. Un changement de sortie par défaut ne garantit pas le transfert des flux déjà ouverts. Le routage par application et les profils Bluetooth ne font pas partie de cette V1.

Chaque curseur affiche le volume réel, borné à 0–100 % seulement pour une nouvelle demande utilisateur. Une valeur externe supérieure à 100 % demeure affichée sans écriture automatique. Le bouton muet est indépendant du curseur : modifier le volume n'active jamais un flux ou un microphone muet. La page ne lance aucune capture de microphone et n'écrit aucun paramètre à l'ouverture ou à la fermeture. Les commandes restent des propriétés natives QuickShell ; wpctl n'est utilisé que pour la confirmation des tests.

AudioMixerModel.js contient le filtrage et les conversions vérifiées par node tests/audio_mixer/test_model.js. Les essais réels de V1 ont utilisé deux flux pw-play silencieux et non reliés (--target 0) : leurs volumes ont été réglés indépendamment depuis l'interface et confirmés par PipeWire. La sourdine d'un flux est restée active après un déplacement de son curseur ; une modification externe et une disparition pendant le réglage ont aussi été reflétées dans la page. Aucun flux utilisateur n'a été modifié. Le choix réel d'une autre sortie ou entrée et la sourdine matérielle du microphone restent à contrôler manuellement, sans déconnecter la sortie courante ni activer le micro.