]> code.delx.au - mediapc-tools/blobdiff - mediawrap
mediawrap: gets extra volume functionality
[mediapc-tools] / mediawrap
index 1c4c396cedbc183fc9b232fdd29ffb81072d3751..8bf929d3ba0b40272fe5a78ce27119ef9660724c 100755 (executable)
--- a/mediawrap
+++ b/mediawrap
@@ -5,33 +5,41 @@ PULSESTATE="$HOME/.pulseaudio.state"
 
 (
 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
@@ -39,13 +47,19 @@ fi
 
 # 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"