Blame | Last modification | View Log | Download | RSS feed
#!/bin/bash## Urs Beyerle, PSI#### dialog or xdialog?DIALOG="dialog"XDIALOG_HIGH_DIALOG_COMPAT=1export XDIALOG_HIGH_DIALOG_COMPAT[ -n "$DISPLAY" ] && [ -x /usr/bin/Xdialog ] && DIALOG="Xdialog"### definitionsTITLE="PSI Menu"MENU_TITLE="PSI Menu"MENU_1="Xterm"EXEC_1="xterm"MENU_2="Web Browser (mozilla)"EXEC_2="mozilla"MENU_3="NX Client (connect to LLCs)"EXEC_3="nxclient"MENU_4="Windows Terminal Server"EXEC_4="rdesktop $RDESKTOP_OPT -d PSICH -u win_username -a 24 -x lan -r sound:local winterm1"MENU_5="Windows Terminal Server (full screen)"EXEC_5="rdesktop $RDESKTOP_OPT -d PSICH -f -u win_username -a 24 -x lan -r sound:local winterm1"MENU_6="Hardisk Partition Tool (qtparted)"EXEC_6="qtparted"MENU_7="Change Keyboard Layout"EXEC_7="sudo system-config-keyboard"MENU_8="Configure Display"EXEC_8="sudo psi-config-display"MENU_9="Configure Soundcard"EXEC_9="sudo psi-config-soundcard"MENU_x="Restart X-Server (will kill all your jobs)"MENU_down="Reboot/Shutdown"MENU_quit="Quit"# tmpdirTMPDIR=/tmp/psi-menu.$$TMP=$TMPDIR/dialogmkdir -p $TMPDIR### functionsshutdown (){$DIALOG --title "$TITLE" --radiolist "Reboot or shutdown the PC?" 0 0 3 poweroff "" on reboot "" off 2>$TMPACTION=$(cat $TMP)if [ $ACTION ]; then$ACTIONexit 1fi}# not really restart x, but will kill all processes of localuser# (including windwos manager and autologin)restartx (){ps wwaux | grep "^l_psi" | awk '{ print $2 }' | while read pid; do kill -9 $pid; done}### show menuewhile true; do$DIALOG --title "$TITLE" \--menu "$MENU_TITLE" 0 0 12\1 "$MENU_1"\2 "$MENU_2"\3 "$MENU_3" \4 "$MENU_4" \5 "$MENU_5" \6 "$MENU_6" \7 "$MENU_7" \8 "$MENU_8" \9 "$MENU_9" \10 "$MENU_x" \11 "$MENU_down" \12 "$MENU_quit" \2> $TMP[ $? -ne 0 ] && breakCHOICE=$(cat $TMP)case "$CHOICE" in1)(sleep 0.5; $EXEC_1) &;;2)(sleep 0.5; $EXEC_2) &;;3)(sleep 0.5; $EXEC_3) &;;4)(sleep 0.5; $EXEC_4) &;;5)(sleep 0.5; $EXEC_5) &;;6)(sleep 0.5; $EXEC_6) &;;7)(sleep 0.5; $EXEC_7) &;;8)(sleep 0.5; $EXEC_8) &;;9)(sleep 0.5; $EXEC_9) &;;10)restartx;;11)shutdown || break;;12)break;;esacdone