Add ThinkPad mic mute LED sync following XPS hardware handler pattern (#4938)
Omarchy 3.5.1 shipped hardware-specific mic mute handling for Dell XPS (bin/omarchy-cmd-mic-mute-xps) which made the original PR #4938 approach obsolete — that PR added a global omarchy-cmd-mic-mute that handled the toggle inline, but upstream now owns that dispatcher. This follows the same pattern to add ThinkPad support by extending omarchy-hw-match to also check product_family (ThinkPad systems report "ThinkPad T14s Gen 2a" there, not in product_name) and adding omarchy-cmd-mic-mute-thinkpad which uses brightnessctl to sync the platform::micmute LED, simpler than the ALSA approach needed for XPS. Note: as more vendors are added this per-vendor dispatcher will get unwieldy. A future refactor could move hardware LED sync into install/config/hardware/ scripts that drop a hook or config file, keeping omarchy-cmd-mic-mute thin and vendor-agnostic.
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Toggle microphone mute. Dell XPS systems get special handling for the hardware LED.
|
||||
# Toggle microphone mute. Dell XPS and ThinkPad systems get special handling for the hardware LED.
|
||||
|
||||
if omarchy-hw-match "XPS"; then
|
||||
omarchy-cmd-mic-mute-xps
|
||||
elif omarchy-hw-match "ThinkPad"; then
|
||||
omarchy-cmd-mic-mute-thinkpad
|
||||
else
|
||||
omarchy-swayosd-client --input-volume mute-toggle
|
||||
fi
|
||||
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Toggle microphone mute on ThinkPad systems. Uses wpctl for reliable toggling
|
||||
# and syncs the platform::micmute LED via brightnessctl.
|
||||
|
||||
wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle >/dev/null
|
||||
|
||||
if pactl get-source-mute @DEFAULT_SOURCE@ | grep -q 'yes'; then
|
||||
osd_message='Microphone muted'
|
||||
osd_icon='microphone-sensitivity-muted-symbolic'
|
||||
led_value=1
|
||||
else
|
||||
osd_message='Microphone on'
|
||||
osd_icon='audio-input-microphone-symbolic'
|
||||
led_value=0
|
||||
fi
|
||||
|
||||
brightnessctl --device="platform::micmute" set "$led_value" >/dev/null 2>&1 || true
|
||||
|
||||
swayosd-client \
|
||||
--monitor "$(omarchy-hyprland-monitor-focused)" \
|
||||
--custom-message "$osd_message" \
|
||||
--custom-icon "$osd_icon"
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Match against the computer's DMI product name (case-insensitive).
|
||||
# Usage: omarchy-hw-match "XPS"
|
||||
# Match against the computer's DMI product name or product family (case-insensitive).
|
||||
# Usage: omarchy-hw-match "XPS" or omarchy-hw-match "ThinkPad"
|
||||
|
||||
grep -qi "$1" /sys/class/dmi/id/product_name 2>/dev/null
|
||||
grep -qi "$1" /sys/class/dmi/id/product_name 2>/dev/null ||
|
||||
grep -qi "$1" /sys/class/dmi/id/product_family 2>/dev/null
|
||||
|
||||
Reference in New Issue
Block a user