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
|
#!/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
|
if omarchy-hw-match "XPS"; then
|
||||||
omarchy-cmd-mic-mute-xps
|
omarchy-cmd-mic-mute-xps
|
||||||
|
elif omarchy-hw-match "ThinkPad"; then
|
||||||
|
omarchy-cmd-mic-mute-thinkpad
|
||||||
else
|
else
|
||||||
omarchy-swayosd-client --input-volume mute-toggle
|
omarchy-swayosd-client --input-volume mute-toggle
|
||||||
fi
|
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
|
#!/bin/bash
|
||||||
|
|
||||||
# Match against the computer's DMI product name (case-insensitive).
|
# Match against the computer's DMI product name or product family (case-insensitive).
|
||||||
# Usage: omarchy-hw-match "XPS"
|
# 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