feat: set-vol now chooses between pactl and amixer

This commit is contained in:
AngeD 2022-09-21 15:47:54 +02:00
parent a87cc556f9
commit 414570a9e4
2 changed files with 29 additions and 14 deletions

View File

@ -1,8 +1,8 @@
#!/bin/sh
xrandr \
--output HDMI-2 --auto --primary \
--output eDP-1 --left-of HDMI-2
--output eDP-1 --primary \
--output HDMI-2 --right-of-eDP-1
# fix touchscreen
xinput --map-to-output 'Raydium Corporation Raydium Touch System' 'eDP-1'

View File

@ -1,32 +1,47 @@
#!/bin/bash
set -e
SINK='@DEFAULT_SINK@'
CUR_FILE=/var/tmp/current_volume
PACTL_SINK='@DEFAULT_SINK@'
SINK="$PACTL_SINK"
function get_vol() {
VOL="$(pactl get-sink-volume "$SINK" 2> /dev/null)"
if [ -n "$VOL" ]; then
CMD='pactl set-sink-volume'
else
CMD='amixer sset'
SINK='Master'
VOL="$(amixer sget "$SINK")"
fi
}
set +e
CUR="$(cat "$CUR_FILE" || echo 50)"
get_vol
set -e
CUR="$((CUR - CUR % "$1"))"
VOL="$(echo "$VOL" | grep -o -E '[0-9]{,3}%' | head -n 1)"
# Remove everything after first '%'
VOL="${VOL%%%*}"
VOL="$((VOL - VOL % "$1"))"
case "${1:0:1}" in
'')
exit 1
;;
'+'|'-')
NEW="$((CUR + "$1"))"
VOL="$((VOL + "$1"))"
;;
*)
NEW="$1"
VOL="$1"
;;
esac
[ "$NEW" -lt 0 ] && NEW=0
[ "$NEW" -gt 100 ] && NEW=100
[ "$VOL" -lt 0 ] && VOL=0
[ "$VOL" -gt 100 ] && VOL=100
pactl set-sink-volume "$SINK" "$NEW%"
pactl set-sink-mute "$SINK" 0
$CMD "$SINK" "$VOL%" > /dev/null
pactl set-sink-mute "$PACTL_SINK" 0
echo "$NEW" > "$CUR_FILE"
echo "$NEW"
echo "$VOL"