From e1cdf4ed50b60d28ae7527c7d93bc43a26f0881c Mon Sep 17 00:00:00 2001 From: bbedward Date: Sat, 1 Nov 2025 10:35:22 -0400 Subject: [PATCH] keyboard/hyprland: sync keyboard layout with event --- Modules/DankBar/Widgets/KeyboardLayoutName.qml | 11 +++++++++++ Services/AudioService.qml | 9 +++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Modules/DankBar/Widgets/KeyboardLayoutName.qml b/Modules/DankBar/Widgets/KeyboardLayoutName.qml index df64c0ac..8211598e 100644 --- a/Modules/DankBar/Widgets/KeyboardLayoutName.qml +++ b/Modules/DankBar/Widgets/KeyboardLayoutName.qml @@ -1,6 +1,7 @@ import QtQuick import QtQuick.Controls import Quickshell +import Quickshell.Hyprland import Quickshell.Io import qs.Common import qs.Modules.Plugins @@ -78,6 +79,16 @@ BasePill { root.hyprlandKeyboard, "next" ]) + } + } + } + + Connections { + target: CompositorService.isHyprland ? Hyprland : null + enabled: CompositorService.isHyprland + + function onRawEvent(event) { + if (event.name === "activelayout") { updateLayout() } } diff --git a/Services/AudioService.qml b/Services/AudioService.qml index 1d633c0a..a39d8e24 100644 --- a/Services/AudioService.qml +++ b/Services/AudioService.qml @@ -253,13 +253,19 @@ Singleton { mediaDevices = Qt.createQmlObject(` import QtQuick import QtMultimedia - MediaDevices {} + MediaDevices { + id: devices + Component.onCompleted: { + console.log("AudioService: MediaDevices initialized, default output:", defaultAudioOutput?.description) + } + } `, root, "AudioService.MediaDevices") if (mediaDevices) { mediaDevicesConnections = Qt.createQmlObject(` import QtQuick Connections { + target: root.mediaDevices function onDefaultAudioOutputChanged() { console.log("AudioService: Default audio output changed, recreating sound players") root.destroySoundPlayers() @@ -267,7 +273,6 @@ Singleton { } } `, root, "AudioService.MediaDevicesConnections") - mediaDevicesConnections.target = mediaDevices } } catch (e) { console.log("AudioService: MediaDevices not available, using default audio output")