### BEGIN INIT INFO # Provides: wecker # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start wecker at boot time # Description: Enable service provided by wecker. ### END INIT INFO #!/bin/sh PLAYER="/usr/bin/mpg123" AMIXER="/usr/bin/amixer" PLAYER_OPTIONS="--random --index --control --list" # put outside of encrypted home dirs etc. because you want it to start before logging in PLAYLIST="/var/wecker-muzaq/wecker.playlist" SLEEPTIME="5" # don't run after this hour TIME_THRESHOLD="22" SET_VOL_MASTER="$AMIXER set 'Master',0 75% > /dev/null" SET_VOL_HEADPHONEJACK="$AMIXER set 'Headphone',0 100% > /dev/null" SET_VOL_SPEAKERS="$AMIXER set 'Master',0 100% > /dev/null" SET_VOLUME="$SET_VOL_MASTER; $SET_VOL_HEADPHONEJACK; $SET_VOL_SPEAKERS" UNMUTE_MASTER="$AMIXER set 'Master',0 unmute > /dev/null" UNMUTE_HEADPHONEJACK="$AMIXER set 'Headphone',0 unmute > /dev/null" UNMUTE_SPEAKERS="$AMIXER set 'Speaker',0 unmute > /dev/null" UNMUTE="$UNMUTE_MASTER; $UNMUTE_HEADPHONEJACK; $UNMUTE_SPEAKERS" LOGFILE="/var/log/messages" KILL="/bin/kill -9" # attached keyboard SNOOZE_DEV="/dev/input/event3" # use script from http://www.thelinuxdaily.com/2010/05/grab-raw-keyboard-input-from-event-device-node-devinputevent/ # to determine device no. # uncomment echo "EVENT=$EVENT" below to see what the different codes are SNOOZE_KEY="0039" # spacebar STOP_KEY="000e" # backspace if [ "$(id -u)" != "0" ]; then echo "This script must be run as root!" 1>&2 exit 1 fi # got this sub from somewhere; what exactly does this do and how? # can't use keyword 'function' b/c it's not recognised by /bin/sh getkey () { KEYPRESS=$(dd if=$SNOOZE_DEV bs=16 count=1 2>/dev/null | od -x | grep -v 0000020) #echo $KEYPRESS echo $KEYPRESS > /tmp/event.tmp EVENT=$(cut -b 39-42 /tmp/event.tmp) rm /tmp/event.tmp } case "$1" in start) TIME=$(date +%k) if [ $TIME -lt $TIME_THRESHOLD ]; then $UNMUTE $SET_VOLUME $PLAYER $PLAYER_OPTIONS $PLAYLIST & if [ $? -eq 0 ]; then echo "$(date) started wecker" >> $LOGFILE fi while true; do getkey #echo "EVENT=$EVENT" case $EVENT in $SNOOZE_KEY) $KILL $(pidof $PLAYER) echo "$(date) snoozing wecker for $SLEEPTIME" >> $LOGFILE sleep $SLEEPTIME $PLAYER $PLAYER_OPTIONS $PLAYLIST & if [ $? -eq 0 ]; then echo "$(date) restarted wecker after having snoozed $SLEEPTIME" >> $LOGFILE fi ;; $STOP_KEY) $KILL $(pidof $PLAYER) if [ $? -eq 0 ]; then echo "$(date) stopped wecker" >> $LOGFILE fi exit 1 ;; esac done fi ;; stop) echo -n "Stopping wecker init script" $KILL $(pidof $PLAYER) if [ $? -eq 0 ]; then echo "stopped wecker" >> $LOGFILE fi ;; *) echo "Usage: /etc/init.d/wecker {start|stop}" exit 1 ;; esac exit 0
20110728
wecker / alarm clock
Abonnieren
Kommentare zum Post (Atom)
Keine Kommentare:
Kommentar veröffentlichen