From 9a113c24ca5eb8f6a3396c3b215f9554c80a4390 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Sat, 22 Nov 2025 22:11:31 +0100 Subject: [PATCH] wactioncenter: sound input menu --- .../ActionCenterTogglesDelegateChooser.qml | 8 ++++- .../volumeControl/VolumeControl.qml | 32 +++++++++---------- .../volumeControl/VolumeEntry.qml | 2 +- .../ii/modules/waffle/looks/WButton.qml | 2 +- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterTogglesDelegateChooser.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterTogglesDelegateChooser.qml index 97c7977b7..a27c8bf84 100644 --- a/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterTogglesDelegateChooser.qml +++ b/dots/.config/quickshell/ii/modules/waffle/actionCenter/toggles/ActionCenterTogglesDelegateChooser.qml @@ -9,8 +9,9 @@ import qs.modules.common import qs.modules.common.models.quickToggles import qs.modules.common.widgets import qs.modules.waffle.looks -import qs.modules.waffle.actionCenter.wifi import qs.modules.waffle.actionCenter.bluetooth +import qs.modules.waffle.actionCenter.volumeControl +import qs.modules.waffle.actionCenter.wifi DelegateChooser { id: root @@ -82,6 +83,11 @@ DelegateChooser { ActionCenterToggleButton { toggleModel: MicToggle {} icon: WIcons.micIcon + menu: Component { + VolumeControl { + output: false + } + } } } DelegateChoice { diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeControl.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeControl.qml index 23cab4cf5..5658a4f26 100644 --- a/dots/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeControl.qml +++ b/dots/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeControl.qml @@ -12,8 +12,7 @@ import qs.modules.waffle.actionCenter Item { id: root - implicitWidth: 360 - implicitHeight: 352 + property bool output: true PageColumn { anchors.fill: parent @@ -29,7 +28,7 @@ Item { HeaderRow { Layout.fillWidth: true - title: qsTr("Sound output") + title: root.output ? qsTr("Sound output") : qsTr("Sound input") } StyledFlickable { @@ -85,45 +84,46 @@ Item { spacing: 4 SectionText { - text: qsTr("Output device") + text: root.output ? qsTr("Output device") : qsTr("Input device") } Repeater { model: ScriptModel { - values: Audio.outputDevices + values: root.output ? Audio.outputDevices : Audio.inputDevices } delegate: WChoiceButton { required property var modelData icon.name: WIcons.audioDeviceIcon(modelData) text: Audio.friendlyDeviceName(modelData) - checked: Audio.sink === modelData + checked: (root.output ? Audio.sink : Audio.source) === modelData onClicked: { - Audio.setDefaultSink(modelData); + if (root.output) Audio.setDefaultSink(modelData); + else Audio.setDefaultSource(modelData); } } } - Separator { - visible: EasyEffects.available + Separator { + visible: EasyEffects.available && root.output color: Looks.colors.bg2Hover } - + //////////////////////////////////////////////////////////// SectionText { - visible: EasyEffects.available + visible: EasyEffects.available && root.output text: qsTr("Sound effects") } WChoiceButton { - visible: EasyEffects.available + visible: EasyEffects.available && root.output text: Translation.tr("Off") checked: !EasyEffects.active onClicked: EasyEffects.disable() } WChoiceButton { - visible: EasyEffects.available + visible: EasyEffects.available && root.output text: "EasyEffects" checked: EasyEffects.active onClicked: EasyEffects.enable() @@ -141,14 +141,14 @@ Item { } VolumeEntry { - node: Audio.sink - icon: "speaker" + node: root.output ? Audio.sink : Audio.source + icon: root.output ? "speaker" : "mic-on" monochrome: true } Repeater { model: ScriptModel { - values: Audio.outputAppNodes + values: root.output ? Audio.outputAppNodes : Audio.inputAppNodes } delegate: VolumeEntry { required property var modelData diff --git a/dots/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeEntry.qml b/dots/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeEntry.qml index 000aee2ac..1f44b9909 100644 --- a/dots/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeEntry.qml +++ b/dots/.config/quickshell/ii/modules/waffle/actionCenter/volumeControl/VolumeEntry.qml @@ -35,7 +35,7 @@ RowLayout { right: parent.right margins: -1 } - implicitSize: 14 + implicitSize: 16 icon: "speaker-mute" } diff --git a/dots/.config/quickshell/ii/modules/waffle/looks/WButton.qml b/dots/.config/quickshell/ii/modules/waffle/looks/WButton.qml index de0632dbd..69f255ad9 100644 --- a/dots/.config/quickshell/ii/modules/waffle/looks/WButton.qml +++ b/dots/.config/quickshell/ii/modules/waffle/looks/WButton.qml @@ -129,7 +129,7 @@ Button { FluentIcon { id: buttonIcon monochrome: true - implicitSize: 16 + implicitSize: 18 Layout.leftMargin: root.iconLeftMargin Layout.fillWidth: false Layout.alignment: Qt.AlignVCenter