All pastes #286078 Raw Edit

Unnamed

public shellscript v1 · immutable
#286078 ·published 2006-12-20 10:03 UTC
rendered paste body
#!/bin/bash# /etc/acpi/default.sh# Default acpi script that takes an entry for all actionsset $*group=${1/\/*/}action=${1/*\//}device=$2id=$3value=$4tmpdir="/var/tmp/acpid/"if [ ! -d $tmpdir ] ; then	mkdir -m 700 -p $tmpdir ;fi@@notify_users() {	#Use Xosd to print information on all displays.	displays=`ls /tmp/.X*-lock |sed -e "s/\/tmp\/.X\([0-9]\+\)-lock/\1/g"`	osd_cmd="osd_cat -p bottom -A center -d 2 -c green -s 3 -o 100"	osd_cmd="${osd_cmd} -f -microsoft-verdana-bold-r-normal--32-* "	osd_text=""	case $1 in	text)		osd_text=$2	;;	slider)		osd_cmd="${osd_cmd} -b slider -P $3 "		osdparamname="-T"		osdtext=$2	;;	percentage)		osd_cmd="${osd_cmd} -b percentage -P $3 "		osdparamname="-T"		osdtext=$2	;;	*)		osd_text=$1	;;	esac#this SUX MORE, but is the only solution...	/usr/bin/xauth merge /home/*/.Xauthority ;	killall -u root osd_cat ;	for i in $displays ; do		export DISPLAY=":${i}" ;		echo "${osd_text}" | $osd_cmd $osdparamname "$osdtext" &	done}log_unhandled() {	# notify_users text "ACPI event unhandled: $*"	echo "Unhandled event: $*"}case "$group" in	button)		case "$action" in			power)				tmpfile=${tmpdir}powertime ;				if [ -e $tmpfile ] ; then				lasttime=`cat $tmpfile` ;				else lasttime=0 ;				fi				timenow=`date +%s`				if [[ $(( $lasttime+1 )) -ge $timenow ]] ; then					/usr/sbin/hibernate ;				else					echo $timenow > $tmpfile ;				fi				;;			*)	log_unhandled $* ;;		esac		;;	ac_adapter)		case "$value" in			# Add code here to handle when the system is unplugged			# (maybe change cpu scaling to powersave mode)			#*0)			#	;;			# Add code here to handle when the system is plugged in			# (maybe change cpu scaling to performance mode)			#*1)			#	;;			*)	log_unhandled $* ;;		esac		;;	hotkey)		if [[ ( $id > 0000000f ) && ( $id < 00000030 ) ]] ; then			br=`cat /proc/acpi/asus/brn` ;			br=$(($br*100/15)) ;			notify_users percentage "display brightness" $br ;		fi		case "$id" in			00000032)						/usr/bin/amixer sset Headphone toggle 					mutestatus="unmuted"					if [[ `/usr/bin/amixer sget Headphone |grep off` ]] ; then						mutestatus="muted" ; 					fi					notify_users text $mutestatus ;					;;			00000031) #volume down					/usr/bin/amixer sset Line 1%-					percentxt=`amixer sget Line |grep -o [0-9]*\%|head -n 1`					percent=`echo ${percentxt} |grep -o [0-9]*`					notify_users percentage "volume:${percentxt}" $percent										;;			00000030) #volume up					/usr/bin/amixer sset Line 1%+					percentxt=`amixer sget Line |grep -o [0-9]*\%|head -n 1`					percent=`echo ${percentxt} |grep -o [0-9]*`					if [[ $percent -ge 52 ]] ; then						/usr/bin/amixer sset Line 52% ;						percentxt="52%" ;						percent=52 ;					fi					notify_users percentage "volume:${percentxt}" $percent					;;			0000005c)					tmpfile=${tmpdir}nettime ;					if [ -e $tmpfile ] ; then					lasttime=`cat $tmpfile` ;					else lasttime=0 ;					fi					timenow=`date +%s`					if [[ $(( $lasttime+1 )) -ge $timenow ]] ; then						notify_users text "ethernet is begin restarted..." ;						/etc/init.d/net.eth2 restart ;						notify_users text "done" ;					else						echo $timenow > $tmpfile ;					fi					;;			*)					log_unhandled $* ;;		esac		;;	*)	log_unhandled $* ;;esac