VolumeSettings, MicrophoneSettings: Add middle click command

This commit is contained in:
Lin Xianyi
2026-01-09 23:31:58 +08:00
parent bbff828278
commit f685015f21
6 changed files with 35 additions and 4 deletions
+1
View File
@@ -635,6 +635,7 @@
"media-scrolling-title-description": "Enable continuous scrolling for long media titles.",
"media-scrolling-title-label": "Scrolling title",
"media-title": "Media players",
"on-middle-clicked-description": "Command to execute when the button is middle-clicked.",
"panel-applications-empty": "No applications are currently playing audio",
"title": "Audio",
"visualizer-type-description": "Choose a visualization type for media playback.",
+4 -1
View File
@@ -34,6 +34,7 @@ Item {
readonly property bool isBarVertical: Settings.data.bar.position === "left" || Settings.data.bar.position === "right"
readonly property string displayMode: (widgetSettings.displayMode !== undefined) ? widgetSettings.displayMode : widgetMetadata.displayMode
readonly property string middleClickCommand: (widgetSettings.middleClickCommand !== undefined) ? widgetSettings.middleClickCommand : widgetMetadata.middleClickCommand
// Used to avoid opening the pill on Quickshell startup
property bool firstInputVolumeReceived: false
@@ -172,6 +173,8 @@ Item {
contextMenu.openAtItem(pill, screen);
}
}
onMiddleClicked: root.openExternalMixer()
onMiddleClicked: {
Quickshell.execDetached(["sh", "-c", middleClickCommand]);
}
}
}
+4 -1
View File
@@ -33,6 +33,7 @@ Item {
readonly property bool isBarVertical: Settings.data.bar.position === "left" || Settings.data.bar.position === "right"
readonly property string displayMode: (widgetSettings.displayMode !== undefined) ? widgetSettings.displayMode : widgetMetadata.displayMode
readonly property string middleClickCommand: (widgetSettings.middleClickCommand !== undefined) ? widgetSettings.middleClickCommand : widgetMetadata.middleClickCommand
// Used to avoid opening the pill on Quickshell startup
property bool firstVolumeReceived: false
@@ -156,6 +157,8 @@ Item {
contextMenu.openAtItem(pill, screen);
}
}
onMiddleClicked: root.openExternalMixer()
onMiddleClicked: {
Quickshell.execDetached(["sh", "-c", middleClickCommand]);
}
}
}
@@ -14,10 +14,12 @@ ColumnLayout {
// Local state
property string valueDisplayMode: widgetData.displayMode !== undefined ? widgetData.displayMode : widgetMetadata.displayMode
property string valueMiddleClickCommand: widgetData.middleClickCommand !== undefined ? widgetData.middleClickCommand : widgetMetadata.middleClickCommand
function saveSettings() {
var settings = Object.assign({}, widgetData || {});
settings.displayMode = valueDisplayMode;
settings.middleClickCommand = valueMiddleClickCommand;
return settings;
}
@@ -42,4 +44,13 @@ ColumnLayout {
currentKey: valueDisplayMode
onSelected: key => valueDisplayMode = key
}
// Middle click command
NTextInput {
label: I18n.tr("panels.control-center.shortcuts-custom-button-on-middle-clicked-label")
description: I18n.tr("panels.audio.on-middle-clicked-description")
placeholderText: I18n.tr("panels.audio.external-mixer-placeholder")
text: valueMiddleClickCommand
onTextChanged: valueMiddleClickCommand = text
}
}
@@ -14,10 +14,12 @@ ColumnLayout {
// Local state
property string valueDisplayMode: widgetData.displayMode !== undefined ? widgetData.displayMode : widgetMetadata.displayMode
property string valueMiddleClickCommand: widgetData.middleClickCommand !== undefined ? widgetData.middleClickCommand : widgetMetadata.middleClickCommand
function saveSettings() {
var settings = Object.assign({}, widgetData || {});
settings.displayMode = valueDisplayMode;
settings.middleClickCommand = valueMiddleClickCommand;
return settings;
}
@@ -42,4 +44,13 @@ ColumnLayout {
currentKey: valueDisplayMode
onSelected: key => valueDisplayMode = key
}
// Middle click command
NTextInput {
label: I18n.tr("panels.control-center.shortcuts-custom-button-on-middle-clicked-label")
description: I18n.tr("panels.audio.on-middle-clicked-description")
placeholderText: I18n.tr("panels.audio.external-mixer-placeholder")
text: valueMiddleClickCommand
onTextChanged: valueMiddleClickCommand = text
}
}
+4 -2
View File
@@ -178,7 +178,8 @@ Singleton {
"compactShowVisualizer": false
},
"Microphone": {
"displayMode": "onhover"
"displayMode": "onhover",
"middleClickCommand": "pwvucontrol || pavucontrol"
},
"NotificationHistory": {
"showUnreadBadge": true,
@@ -246,7 +247,8 @@ Singleton {
"iconScale": 0.8
},
"Volume": {
"displayMode": "onhover"
"displayMode": "onhover",
"middleClickCommand": "pwvucontrol || pavucontrol"
}
})