All pastes #922209 Raw Edit

mediamouse

public shellscript v1 · immutable
#922209 ·published 2008-02-28 17:20 UTC
rendered paste body
#!/bin/bash#	##	simple script to make amarok to work with some of my media buttons on the mouse.#	this script i wrote to work with xbindkeys #	#	Needed stuff:#	xbindkeys #	evdev module compiled for Xorg "already bult in kubuntu's xorg server"#	kernel usbstuff- "evdev" module##	cat /proc/bus/input/devices#	looks something like:##	I: Bus=0003 Vendor=046d Product=c50e Version=0111#	N: Name="Logitech USB RECEIVER"#	P: Phys=usb-0000:00:0b.0-4/input0#	S: Sysfs=/class/input/input4#	U: Uniq=#	H: Handlers=mouse0 event1 ts0#	B: EV=20007#	B: KEY=ffff0000 0 0 0 0 0 0 0 0#	B: REL=143#	B: LED=ff00##	Find your mouse event. usaly event0 or event1#	Now edit /etc/X11/xorg.conf and replace ##	Driver "mouse" #		with  #	Driver "evdev"#		and#	Option "Device" "/dev/psaux" #mice or whatever whats written there..#		with#	Option "Device" "/dev/input/event1"##	Now use "xev" to find the button numbers.#	then make a new file called ".xbindkeysrc" in your home dir, #	#	the file may look something like.#	#	############# .XBINDKEYSRC #############	##	"/usr/bin/mediamouse start"#	b:17 + Release##	"/usr/bin/mediamouse stop"#	b:10 + Release##	"/usr/bin/mediamouse next"#	b:15 + Release##	"/usr/bin/mediamouse prev"#	b:16 + Release##	"/usr/bin/mediamouse up"#	b:13 + Release##	"/usr/bin/mediamouse down"#	b:14 + Release#	#	###########################################	copy the script to /usr/bin or change the path in .xbindkeysrc to where the script it located. #	also run "sudo chmod 755 mediamouse"#	this script is GPL and made by nuxil.#ARG=$1function start() {		## play/pause button toggle function. 	## if no amarok found running. start it up and play song from playlist.	if [[ ! `pgrep amarokapp` ]] 		## start it up and sleep 3 secs. give it some time to load up	then exec amarokapp & sleep 3	     exec dcop amarok player play 	## if amarok is running.then we need a toogle function to toggle play pause..	else 		## if a song is playing then pause.		if [[ `dcop amarok player status` -eq "2" ]] 			then exec dcop amarok player pause			else exec dcop amarok player play		fi	fi}function stop(){	if [[ `pgrep amarokapp` ]] 	then exec dcop amarok player stop	fi}function next(){	if [[ `pgrep amarokapp` ]] 	then exec dcop amarok player next	fi}function prev(){	if [[ `pgrep amarokapp` ]] 	then exec dcop amarok player prev	fi}function up(){	if [[ `pgrep amarokapp` ]] 	then exec dcop amarok player volumeUp	fi}function down(){	if [[ `pgrep amarokapp` ]] 	then exec dcop amarok player volumeDown	fi}## forward 5 sec'sfunction pfwd(){	if [[ `pgrep amarokapp` ]] 	then CT=`dcop amarok player currentTime`	     # current minutte(s) time 	     CTM=`echo ${CT}  | tr ":" " " | awk '{print $1}'`	     # current second(s) time	     CTS=`echo ${CT}  | tr ":" " " | awk '{print $2}'`	     	     # 01, 02 so one. sometimes errors "bash outputs errors." . so we remove the 1st position of the string	     # when its under 10,  and the lenght of the string to 1 position only             if [[ ${CTS:0:1} == "0" ]]	     	     then CTS=${CTS:1:1}	     fi	     	     # make minutes and seconds to seconds only and forward 5 secs	      MTS=$((${CTM:0} * 60))	      ST=$((${MTS} + ${CTS}))	      FWD=$(($ST + 5))	      exec dcop amarok player seek $FWD	fi}## backwards 5 sec-. and under 10 sec playtime. 2 sec backfunction pbwd(){	if [[ `pgrep amarokapp` ]] 	then CT=`dcop amarok player currentTime`	     # current minutte(s) time 	     CTM=`echo ${CT}  | tr ":" " " | awk '{print $1}'`	     # current second(s) time	     CTS=`echo ${CT}  | tr ":" " " | awk '{print $2}'`	     # make minutes and seconds to seconds only	     MTS=$((${CTM:0} * 60))	     ST=$((${MTS} + ${CTS}))	     	     # 01, 02 so one. sometimes errors "bash outputs errors." . so we remove the 1st position of the string	     # when its under 10,  and the lenght of the string to 1 position only             if [[ ${CTS:0:1} == "0" ]]	     then CTS=${CTS:1:1}	          BWD=$(($ST - 2))		  exec dcop amarok player seek $BWD	    # over 10 means over 10 sec. then we increase time backwards to -5	    else CTS=${CTS:0}	          BWD=$(($ST - 5))		  exec dcop amarok player seek $BWD	     fi	fi}case $ARG in start)	start	;;	stop)	stop	;;	next)	next	;;	prev)	prev	;;	up)	up	;;	down)	down	;;	pfwd)	pfwd	;;	pbwd)	pbwd	;;	*)	exit 0	;;esac