From 9401ed4ed3283172f75d06f0e02a7254d3cdde9d Mon Sep 17 00:00:00 2001 From: "Md. Mahmudul Hasan" Date: Sun, 6 Sep 2026 14:39:50 +0600 Subject: [PATCH] sound applet: show input device selector when multiple inputs are connected The input section was only visible when a recording app was active. This meant users couldn't switch input devices (e.g. mic vs earphones) without opening Sound Settings first. Now it shows up whenever 2+ input devices are detected, same as the output device selector. --- .../applets/sound@cinnamon.org/applet.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js index f8335ad1b8..a71d0005f6 100644 --- a/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/sound@cinnamon.org/applet.js @@ -1656,8 +1656,15 @@ class CinnamonSoundApplet extends Applet.TextIconApplet { let selectItem = this["_select" + type[0].toUpperCase() + type.slice(1) + "DeviceItem"]; selectItem.menu.addMenuItem(item); //show the menu if we have more than two devices - if(selectItem.menu.numMenuItems > 1) + if(selectItem.menu.numMenuItems > 1) { selectItem.actor.show(); + // show input section so user can switch devices even without an active recording app + if (type === "input") { + this._inputSection.actor.show(); + if (this.alwaysShowMuteInput) + this.mute_in_switch.actor.show(); + } + } this._devices.push({id: id, type: type, item: item}); } @@ -1671,8 +1678,15 @@ class CinnamonSoundApplet extends Applet.TextIconApplet { //hide submenu if showing them is unnecessary let selectItem = this["_select" + type[0].toUpperCase() + type.slice(1) + "DeviceItem"]; - if (selectItem.menu.numMenuItems <= 1) + if (selectItem.menu.numMenuItems <= 1) { selectItem.actor.hide(); + // hide input section when back to one device and nothing is recording + if (type === "input" && this._recordingAppsNum === 0) { + this._inputSection.actor.hide(); + if (!this.alwaysShowMuteInput) + this.mute_in_switch.actor.hide(); + } + } this._devices.splice(i, 1); break;