commit 0493c592007de5af334142685122c8c3461d0a33 parent 2ff4b7864d20d05fcb36ce27dacbe370760aba4d Author: Damian Myrda <damian@prime8.dev> Date: Tue, 27 Jan 2026 13:03:07 -0600 fix g14-volume-sync: dynamically detect sound card instead of hardcoding Diffstat:
| M | programs/systemd/g14-volume-sync | | | 18 | +++++++++++++++--- |
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/programs/systemd/g14-volume-sync b/programs/systemd/g14-volume-sync @@ -2,9 +2,21 @@ # Sync AMP1/AMP2 Speaker volume with Master volume for ASUS G14 2025 # Scales bass to maintain balance across volume range +# Find the correct card number (ALC285 codec) +find_card() { + for card in /proc/asound/card*/codec*; do + if grep -q "ALC285" "$card" 2>/dev/null; then + echo "${card}" | grep -oP 'card\K\d+' + return + fi + done +} + +CARD=$(find_card) + sync_volume() { # Get Master volume percentage (0-100) - master_vol=$(amixer -c 3 sget Master | grep -oP '\[\d+%\]' | head -1 | tr -d '[]%') + master_vol=$(amixer -c "$CARD" sget Master | grep -oP '\[\d+%\]' | head -1 | tr -d '[]%') if [[ -n $master_vol ]]; then # AMP range is 0-448, where 400 = 0dB (unity gain) @@ -28,8 +40,8 @@ sync_volume() { amp_val=50 fi - amixer -c 3 -q sset 'AMP1 Speaker' "$amp_val" - amixer -c 3 -q sset 'AMP2 Speaker' "$amp_val" + amixer -c "$CARD" -q sset 'AMP1 Speaker' "$amp_val" + amixer -c "$CARD" -q sset 'AMP2 Speaker' "$amp_val" fi }