3 # -*- sh -*- vim: ft=sh sw=4 sts=4
5 # Launches a game. Works both on $1 (an argument) and $0 (the actual name
6 # of the script, presumably a symlink). Takes care of killing troublemaking
7 # games, pausing unclutter, remapping the keyboard, setting an away message,
8 # and anything else that needs to be done.
10 basename="`basename $0`"
12 if [ "$basename" = gamelaunch ]; then
13 if [ "x$1" = x--name ]; then
19 basename="`basename $binary`"
23 pkill -INT "^$basename-bin\$" && sleep 1
24 pkill -INT "^ut2004-bin\$" && sleep 1
25 pkill -KILL "^$basename-bin\$"
28 [ "$DISPLAY" = "127.0.0.1:7.0" ] && DISPLAY=:1.0
30 game="${name:-$basename}"
31 if [ -f "$HOME/games/names.txt" ] && grep -i "^$game=" "$HOME/games/names.txt" >/dev/null; then
32 game="`grep "^$game=" "$HOME/games/names.txt"|sed -e 's/^[^=]*=//g'`"
33 elif [ -z "$name" ]; then
34 game="`echo $game|sed -e 's/\(^\|[-_. ]\)\(.\)/ \U\2/g' -e 's/\([a-z]\)\([0-9]\)/\1 \2/' -e 's/ \([EU]\)t\>/ \1T/' -e 's/^ //'`"
37 for suffix in '_demo' '-demo' 'demo' ''; do
38 [ -x "/usr/bin/$basename$suffix" ] && \
39 binary="/usr/bin/$basename$suffix"
40 [ -x "/usr/games/$basename$suffix" ] && \
41 binary="/usr/games/$basename$suffix"
42 [ -x "/usr/local/bin/$basename$suffix" ] && \
43 binary="/usr/local/bin/$basename$suffix"
46 if [ -z "$binary" ]; then
47 echo "Game not found." >&2
52 xmodmap "$HOME/.Xmodmap" 2>/dev/null || xmodmap "$HOME/.xmodmap"
56 ut2004|quake3|doom3|et|armyops)
57 xmodmap -e "keysym Super_L = F13"
58 xmodmap -e "keysym Hyper_L = F14"
59 xmodmap -e "keysym Super_R = F15"
63 tpope activity > "$HOME/.activity.$$.bak"
64 if [ -n "$game" ]; then
65 tpope activity "Playing $game"
68 if lspci 2>/dev/null|grep 'VT8233/A/8235/8237' >/dev/null; then
70 export SDL_DSP_NOSELECT
71 sh -c "sleep 2; amixer sset IEC958 unmute >/dev/null &"
74 if lspci 2>/dev/null|grep 'Savage 3D' >/dev/null; then
75 s3="`s3switch|grep 'Devices active:'|sed -e 's/Devices active: *//'`"
80 [ -z "$sdpid" ] || kill "$sdpid"
83 xmodmap "$HOME/.Xmodmap" 2>/dev/null || xmodmap "$HOME/.xmodmap"
85 [ -z "$s3" ] || s3switch $s3
87 tpope activity "`cat "$HOME/.activity.$$.bak"`"
88 rm -f "$HOME/.activity.$$.bak"
93 tpope display-manage $binary "$@" # 2>&1