(
if ! flock -w 10 -x 200; then
- echo "Failed to get a lock!"
- exit 1
+ echo "Failed to get a lock!"
+ exit 1
fi
echo "got lock"
# Unmute everything and turn volume to full
if [ "$1" = "--max-volume" ]; then
- echo "max volume"
- max_volume=1
- shift
- pacmd 'dump' | grep 'set-sink' > "$PULSESTATE"
- cat "$PULSESTATE" | grep 'set-sink-mute' | awk '{print $2;}' | \
- while read device; do
- pacmd "set-sink-volume $device 0x10000" > /dev/null
- pacmd "set-sink-mute $device no" > /dev/null
- done
+ echo "max volume"
+ max_volume=1
+ shift
+ pacmd 'dump' | grep 'set-sink' > "$PULSESTATE"
+ cat "$PULSESTATE" | grep 'set-sink-mute' | awk '{print $2;}' | \
+ while read device; do
+ pacmd "set-sink-volume $device 0x10000" > /dev/null
+ pacmd "set-sink-mute $device no" > /dev/null
+ done
fi
-# Switch volume keys to F9/F10 with xmodmap
+# Switch volume keys to F8/F9/F10 with xmodmap
if [ "$1" = "--switch-volume-keys" ]; then
- echo "switch volume"
- switch_volume=1
- shift
- xmodmap -e 'keycode 122 = F9'
- xmodmap -e 'keycode 123 = F10'
+ echo "switch volume"
+ switch_volume=1
+ shift
+ xmodmap -e 'keycode 121 = F8' # Mute
+ xmodmap -e 'keycode 122 = F9' # VolDown
+ xmodmap -e 'keycode 123 = F10' # VolUp
fi
+# Stop XFCE4 volume control
+if [ "$1" = "--pause-xfce4-volumed" ]; then
+ echo "killall xfce4-volumed-pulse"
+ pause_xfce4_volumed=1
+ shift
+ killall xfce4-volumed-pulse
+fi
# Run the program
"$@" &> /dev/null
# Restore volume levels and mute status
if [ -n "$max_volume" ]; then
- cat "$PULSESTATE" | pacmd > /dev/null
+ cat "$PULSESTATE" | pacmd > /dev/null
fi
# Restore volume keys
if [ -n "$switch_volume" ]; then
- xmodmap -e 'keycode 122 = XF86AudioLowerVolume'
- xmodmap -e 'keycode 123 = XF86AudioRaiseVolume'
+ xmodmap -e 'keycode 121 = XF86AudioMute'
+ xmodmap -e 'keycode 122 = XF86AudioLowerVolume'
+ xmodmap -e 'keycode 123 = XF86AudioRaiseVolume'
+fi
+
+# Restore volume keys
+if [ -n "$pause_xfce4_volumed" ]; then
+ xfce4-volumed-pulse
fi
) 200>"$LOCKFILE"