]> code.delx.au - mediapc-tools/blobdiff - mediawrap
fix-gnome-volume
[mediapc-tools] / mediawrap
index 7377c698705467b879a1f37b3345885e7d7439bd..42aab9a5149e3634cb383eac17a2b0e1b357f363 100755 (executable)
--- a/mediawrap
+++ b/mediawrap
@@ -23,15 +23,23 @@ if [ "$1" = "--max-volume" ]; then
         done
 fi
 
-# Switch volume keys to F9/F10 with xmodmap
-if [ "$1" = "--switch-volume-keys" ]; then
-    echo "switch volume"
-    switch_volume=1
+# Switch volume keys to F8/F9/F10 with xmodmap
+if [ "$1" = "--pause-gnome-volume" ]; then
+    echo "disable gnome volume"
+    pause_gnome_volume=1
     shift
-    xmodmap -e 'keycode 122 = F9'
-    xmodmap -e 'keycode 123 = F10'
+    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-mute ''
+    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-down ''
+    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-up ''
 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
@@ -43,9 +51,15 @@ if [ -n "$max_volume" ]; then
 fi
 
 # Restore volume keys
-if [ -n "$switch_volume" ]; then
-    xmodmap -e 'keycode 122 = XF86AudioLowerVolume'
-    xmodmap -e 'keycode 123 = XF86AudioRaiseVolume'
+if [ -n "$pause_gnome_volume" ]; then
+    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-mute 'XF86AudioMute'
+    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-down 'XF86AudioLowerVolume'
+    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-up 'XF86AudioRaiseVolume'
+fi
+
+# Restore volume keys
+if [ -n "$pause_xfce4_volumed" ]; then
+    xfce4-volumed-pulse
 fi
 
 ) 200>"$LOCKFILE"