Handles different window managers and different initial applications depending on environment. There's also the ability to have a small vs. large set of initial applications.
#!/usr/bin/env tcsh
# Änderungen für Linux
# - gewöhnlich starte ich sonstwo direkt mit startx, also muss ich einen
# Symlink .xinitrc erstellen
# - Keyboard-Handling (setxkbmap) beachten
cd $HOME
source .tcshrc
source .login
if !($?STDPERL) setenv STDPERL perl
if !($?XSESSION_EXTRA) setenv XSESSION_EXTRA ""
if !($?WINDOW_MANAGER) setenv WINDOW_MANAGER fvwm
setenv XAPPLRESDIR $HOME/lib/app-defaults
if ( -r $HOME/.Xdefaults ) then
xrdb -load $HOME/.Xdefaults
endif
if (-f "/usr/X11R6/bin/setxkbmap") then
#/usr/X11R6/bin/setxkbmap -variant eserte -option "ctrl:swapcaps"
/usr/X11R6/bin/setxkbmap de -variant deadacute -option "ctrl:nocaps"
else if ( -r $HOME/.xmodmaprc ) then
xmodmap $HOME/.xmodmaprc
endif
xset s 180 180 & # Bildschirmschoner
xset dpms 180 240 600 & # green saver ... Abfrage, was von beiden verwenden XXX
xset b 100 60 10 & # Tastaturbeep angenehmer gestalten
set charset = iso8859-1
set tktimex = tktimex
switch ("$HOST")
case "vran*":
# fall through...
case "biokovo*":
## ISDN not needed anymore
# $STDPERL $HOME/bin/sh/mytkisdn &
## note: the special keybindings do not work with USB keyboard (not implemented in FreeBSD yet)
## and with my old keyboard it also does not work, so it's disabled completely
#(sleep 25; xterm -iconic -geometry 80x5-2-10 -e tcsh -c 'cd /usr/www/audio && playm3u -server -noplay -v') &
xbiff -geometry -10+20 &
# xhost +localhost
# xhost +mom
set tktimex = "$STDPERL $HOME/bin/sh/tktimex"
# Missing keycodes on my logitech cordless ex110 + Multi_key
xmodmap -e "keycode 234 = XF86Back" -e "keycode 205 = XF86Close" -e "keycode 161 = XF86Calculator" -e "keycode 117 = Multi_key"
set charset = iso10646-1
breaksw
case "spiff*":
xset b 10 100 100 & # hoert sich ansonsten noch bloeder am Laptop an
xset r rate 300 30 &
xmodmap -e 'keysym Alt_L = Meta_L'
set charset = iso8859-15
breaksw
case "*.iconmobile.de":
case "*.cellular.de":
ssh-add
setenv XSESSION_EXTRA 1
set tktimex = /usr/perl5.8.7/bin/tktimex
breaksw
case "devpc01-debian":
ssh-add
setenv XSESSION_EXTRA 1
xmodmap -e 'keycode 117 = Multi_key'
set charset = iso10646-1
breaksw
case "acer-windev":
case "acer-*":
# risky...
setxkbmap -variant nodeadkeys -option "ctrl:swapcaps"
breaksw
default:
endsw
if ( -r $HOME/.Xmodmap.$HOST ) then
xmodmap $HOME/.Xmodmap.$HOST
endif
# in der Adventszeit gibt's xsnow
(sleep 30; \
([ "`date +%m`" = 12 ] && nice xsnow -santa 2 -snowflakes 40 -delay 70)) &
if ( ! $?WINDOW_MANAGER ) then
setenv WINDOW_MANAGER fvwm
endif
# wm without session management
switch ("$WINDOW_MANAGER")
case "twm":
case "fvwm":
case "E":
switch ("$HOST")
case "*.iconmobile.de":
case "*.cellular.de":
env LANG=de perl5.8.3 /usr/local/bin/tknotes &
## Tradingpost meldet sich nicht mehr...
#(sleep 12; earthclock -timepos Australia/Sydney -geometry 75x75+1477+0) &
(sleep 10; env LC_ALL=de_DE.utf8 earthclock -timepos Europe/Berlin -geometry 75x75-210+0) &
breaksw
case "devpc01-debian":
env LANG=de tknotes &
## Tradingpost meldet sich nicht mehr...
#(sleep 12; earthclock -timepos Australia/Sydney -geometry 75x75+1477+0) &
(sleep 10; env LC_ALL=de_DE.utf8 earthclock -timepos Europe/Berlin -geometry 75x75-210+0) &
breaksw
default
env LANG=de $STDPERL $HOME/bin/sh/tknotes &
(sleep 10; earthclock -timepos Europe/Berlin -geometry 75x75-0+80) &
endsw
xsetroot &
xterm -geometry 80x25+0+0 -fn "-*-lucidatypewriter-bold-*-*-sans-12-*-75-75-*-*-$charset" -fg black -bg grey80 &
xterm -geometry 80x25+580+0 -fn "-*-lucidatypewriter-bold-*-*-sans-12-*-75-75-*-*-$charset" -fg SkyBlue -bg black &
# xterm -geometry 80x25+0-10 -fn "-b&h-lucidatypewriter-bold-r-normal-sans-14-140-75-75-m-90-$charset" -fg SkyBlue -bg black &
if ("$HOST" != "spiff") then
xterm -geometry 80x7-0-10 -font 5x7 -iconic -C -T Console -e sleep 99999999999 &
endif
# sometimes xphoon is faster executed than xsetroot of the initial X start!
(sleep 5; nice -10 xphoon) &
env nice -10 xbiff++ &
env nice -10 tail -f $HOME/.xsession-errors > /dev/console &
env nice -10 env LANG=de_DE.ISO-8859-1 $tktimex -geometry 480x215+792+989 &
## not used anymore:
#ical -calendar $HOME/.calendar.ical &
if ("$XSESSION_EXTRA" != "") then
switch ("$HOST")
case "devpc01-debian":
(sleep 2; emacs-snapshot) &
breaksw
default:
(sleep 2; emacs) &
endsw
switch ("$HOST")
case "biokovo*":
switch ("`uname -p`")
case "amd64":
(sleep 4; seamonkey) &
breaksw
default:
(sleep 4; mozilla) &
endsw
(sleep 60; tkpod -xrm '*sansSerifFont: sans-serif' -xrm '*serifFont: serif' -xrm '*monospaceFont: monospace' -xrm '*font: sans-serif 10' -iconic -tree -filedialog Tk::PathEntry::Dialog) &
(sleep 20; xterm -T "Mail receive/send" -geometry 80x5-2-2 -e tcsh -c 'forever -600 "date; popme; sendpop3; wwwmirror news"') &
breaksw
endsw
switch ("$HOST")
case "*.iconmobile.de":
case "*.cellular.de":
$STDPERL $HOME/work2/bbbike/BBBikeAlarm.pm -restart &
(sleep 5; evolution) &
## Usually already running in a VNC server
#(sleep 10; $STDPERL $HOME/work/framework/etc/tkclusterwatch -geometry -0+0) &
(sleep 20; /usr/local/mozilla/mozilla) &
#(sleep 30; /usr/perl5.8.7/bin/tkpod -iconic -tree -filedialog Tk::PathEntry::Dialog) &
(sleep 30; perl -Mblib=$HOME/work2/Tk $HOME/work2/Tk-Pod/tkpod -xrm '*sansSerifFont: sans-serif' -xrm '*serifFont: serif' -xrm '*monospaceFont: monospace' -xrm '*font: sans-serif' -iconic -tree -filedialog Tk::PathEntry::Dialog) &
(sleep 40; $HOME/work/drafts/slavenr/tkpop3sbiff/tkpop3sbiff >& /dev/null) &
## I use gaim now
#(sleep 10; ymessenger) &
(sleep 60; ssh -n dev05 gaim) &
#(sleep 70; $STDPERL -I$HOME/work2/bbbike/lib $HOME/work2/Tk-AppMaster/appmaster) &
(sleep 120; env LANG=C $HOME/work2/bbbike/bbbike -iconic -nosplash) &
breaksw
case "devpc01-debian":
$STDPERL $HOME/work2/bbbike/BBBikeAlarm.pm -restart &
## Not yet:
# (sleep 5; evolution) &
#(sleep 10; $STDPERL $HOME/work/framework/etc/tkclusterwatch -geometry -0+0) &
(sleep 10; vncviewer -shared -viewonly devpc01:20 < /dev/null) &
(sleep 20; mozilla) &
(sleep 30; tkpod -xrm '*sansSerifFont: sans-serif' -xrm '*serifFont: times' -xrm '*monospaceFont: courier' -xrm '*font: helvetica' -iconic -tree) &
## not needed anymore: it seems that seamonkey may do this functionality, too
#(sleep 40; $HOME/work/drafts/slavenr/tkpop3sbiff/tkpop3sbiff >& /dev/null) &
(sleep 60; gaim) &
(sleep 120; env LANG=de_DE.UTF-8 $HOME/work2/bbbike/bbbike -iconic -nosplash) &
(sleep 30; env DISPLAY=unix:0 xtb -geometry -0+0) &
breaksw
default:
#(sleep 30; env LC_ALL=en_GB.ISO8859-1 dbbbike -iconic -nosplash -edit -edittools -fragezeichen -lazy -scale 1:6000 -fontfamily lucida) &
## With a XFT-enabled Tk:
(sleep 30; env LC_ALL=en_GB.ISO8859-1 dbbbike -iconic -nosplash -edit -edittools -fragezeichen -lazy -scale 1:6000 -fontfamily "{bitstream vera}") &
(sleep 45; tkplotwetter -iconic) &
(sleep 60; gaim --away) &
endsw
(sleep 60; unwetterwarnung_dwd.pl -tk) &
endif
breaksw
endsw
if ( "$WINDOW_MANAGER" == twm ) then
twm
else if ("$WINDOW_MANAGER" == none ) then
xterm -T "Exit"
else if ("$WINDOW_MANAGER" == E ) then
enlightenment
else if ("$WINDOW_MANAGER" == gnome ) then
enlightenment & gnome-session
else if ("$WINDOW_MANAGER" == kde ) then
startkde
else if ("$WINDOW_MANAGER" == vran ) then
xterm -e vncviewer -fullscreen vran:1
else
fvwm2 || fvwm-alternative || fvwm95 || fvwm
endif