#!/bin/csh # ~jhs/bin/.csh/consolev == ~jhs/bin/.csh/xloads, # 2 optional parameters: 1 screen name name # 2 screen size in pixels # function dependent on name. # Starts an xterm with console logging on your local display. # Alternate that does not allow input: # xconsole -daemon -notify -verbose -fn fixed -exitOnFail set CONS = "consolev" # I used to call it console, but something in ports/ now creates console. set HNAME = `hostname` switch ($HNAME) # { over ride defaults case cebulon.bsn.com: case flat.berklix.org: case test88.bsn.com: case tower.berklix.org: setenv DISPLAY test88.bsn.com:0 breaksw case slim.berklix.org: breaksw case lapa.js.berklix.net: # Guest screen. # setenv DISPLAY fire:0 breaksw case lapc.js.berklix.net: # Guest screen. # setenv DISPLAY fire:0 breaksw case lapd.js.berklix.net: case lapl-p.js.berklix.net: case lapl.js.berklix.net: case lapn.js.berklix.net: case laps.js.berklix.net: case laps.no.net: # Other laptops that might have closed lids. breaksw default: # Do not override default DISPLAY breaksw endsw # } set DISP = `printenv DISPLAY` # DISP is a trick to force the following "if" to work, without it, if # DISPLAY is unset, the script aborts # set XX =`xdpyinfo|grep "name of display"|sed -e "s/name of display: //"` # Can fail with: # xdpyinfo: unable to open display "". # set: Variable name must begin with a letter. if ( "$#" == "0" ) then # echo No Parameter being Display name > tmp/t else set DISP = $1 endif if ( "x$DISP" == "x" ) then echo "DISPLAY environment variable not set" echo -n "Assuming your DISPLAY environment variable is " switch ($HNAME) case dual.js.berklix.net: case film.js.berklix.net: case fire.js.berklix.net: case flip.js.berklix.net: case john.js.berklix.net: case king.js.berklix.net: case lapa.js.berklix.net: case lapc.js.berklix.net: case lapd.js.berklix.net: case lapl-p.js.berklix.net: case lapl.js.berklix.net: case lapn.js.berklix.net: case laps.js.berklix.net: case loft.js.berklix.net: case mart.js.berklix.net: case mini.js.berklix.net: case park.js.berklix.net: case rain.js.berklix.net: case scan.js.berklix.net: case thin.js.berklix.net: case slim.js.berklix.net: case snow.js.berklix.net: case test.js.berklix.net: case wind.js.berklix.net: case wood.js.berklix.net: setenv DISPLAY disp.js.berklix.net:0 # setenv DISPLAY laps.js.berklix.net:0 breaksw case laps.no.net: setenv DISPLAY laps.no.net:0 breaksw case lapd.bsn.com setenv DISPLAY :0 breaksw default: setenv DISPLAY unknown breaksw endsw echo $DISPLAY else setenv DISPLAY $DISP endif # echo "Starting on display $DISPLAY" # X Windows screen initialiser -g WIDTHxHEIGHT+-XOFF+-YOFF # +/- XOFF left/right side of display to left/right side of window # +/- YOFF top/bottom of display to top/bottom of screen if ( "`basename $0`" == "$CONS" ) then # { xconsole if ( "$#" == "2" ) then # { Screen Geometry specified by caller. switch ( $2 ) # { case 1600x1200: # { flip|fire|laps set HEIGHT = 57 # Keep this same as .xsession set BASE = 80 echo BBBBBB breaksw # } 1024x768: # { lapd|lapa|lapc set HEIGHT = 36 # Keep this same as .xsession set BASE = 80 breaksw # } 640x480: # { lapl|lapl-p set HEIGHT = 23 # Keep this same as .xsession set BASE = 80 breaksw # } default: # { set HEIGHT = 36 # Keep this same as .xsession set BASE = 80 breaksw # } endsw # } else # }{ Screen Geometry unknown. Assume 1600x1200 set BASE = 80 set HEIGHT = 55 endif # } else # }{ xloads set BASE = 0 set HEIGHT = 140 endif # } # Determine colour. # Try to keep -bg colours same in all of # /site/etc/system.fvwmrc # ~jhs/.Xdefaults.`hostname -s` # ~jhs/.xsession # ~jhs/public_html/bin/.csh/consolev # ~root/.Xdefaults switch ($HNAME) # { internal name manipulated by /etc/csh.cshrc #set COLOUR="lightgrey" case dual.js.berklix.net: set COLOUR="seashell2" breaksw case film.js.berklix.net: set COLOUR="DarkSlateGray1" breaksw case fire.js.berklix.net: set COLOUR="beige" breaksw case flip.js.berklix.net: set COLOUR="moccasin" breaksw case john.js.berklix.net: set COLOUR="DarkSeaGreen1" # JJLATER breaksw case king.js.berklix.net: set COLOUR="DarkSeaGreen1" breaksw case lapa.js.berklix.net: set COLOUR="yellow" breaksw case lapc.js.berklix.net: set COLOUR="plum2" breaksw case lapd.js.berklix.net: set COLOUR="khaki" breaksw case lapl.js.berklix.net: case lapl-p.js.berklix.net: set COLOUR="OliveDrab1" breaksw case lapn.js.berklix.net: case lapn-p.js.berklix.net: set COLOUR="burlywood1" breaksw case laps.no.net: case laps.js.berklix.net: set COLOUR="PowderBlue" breaksw case loft.js.berklix.net: set COLOUR="PaleGoldenRod" breaksw case mart.js.berklix.net: set COLOUR="aquamarine" breaksw case mini.js.berklix.net: set COLOUR="YellowGreen" breaksw case park.js.berklix.net: set COLOUR="AliceBlue" breaksw case rain.js.berklix.net: set COLOUR="pink" breaksw case scan.js.berklix.net: set COLOUR="darkgoldenrod1" breaksw case slim.js.berklix.net: case thin.js.berklix.net: set COLOUR="cyan" breaksw case snow.js.berklix.net: set COLOUR="peru" breaksw case test.js.berklix.net: set COLOUR="burlywood" breaksw case wind.js.berklix.net: set COLOUR="lightcyan1" breaksw # Externals case test88.bsn.com: set COLOUR="gold" breaksw case cebulon.bsn.com: set COLOUR="tomato" breaksw case flat.berklix.org: set COLOUR="LightSlateBlue" breaksw case tower.berklix.org: set COLOUR="lightgreen" breaksw case slim.berklix.org: set COLOUR="white" breaksw default: echo "Unrecognised colour hostname $HNAME" breaksw endsw # } set xs = xs set console = Console # For some reason, host=fire (5.3) & host=laps (5.3) & host=dual (5.3) # but not host=lapd (5.1) the xterm # flashes on screen & disappears again immediately, not sure why, # maybe cos no custom kernel with XSERVER yet ? maybe /dev/fs maybe # failing to open or unlock console I guess, For now cludge it so the # xterm stays, with # set xs = ; set console = NonRootConsole # host=fire does collect root errors even though not run with xs # Error message "xterm: cannot open console: Device busy" # comes from # host=lapl uname-r=4.10 # host=lapa uname-r=4.9 # as /etc/ttys has # "ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm on secure" # thus local host lcd screen already has a console error log open. # however, removing the xdm line does not solve the puzzle of why # "set xs = ; set console = NonRootConsole" # is needed for certain hosts. # Determine offset. switch ($HNAME) # { internal name manipulated by /etc/csh.cshrc case dual.js.berklix.net: set MULTIPLE = "0" set xs = ; set console = NonRootConsole # running 5.5 breaksw case film.js.berklix.net: set MULTIPLE = "1" set xs = ; set console = NonRootConsole # running 6.1 breaksw case fire.js.berklix.net: set MULTIPLE = "2" set xs = ; set console = NonRootConsole # running 6.1 breaksw case flip.js.berklix.net: set MULTIPLE = "3" breaksw case john.js.berklix.net: set MULTIPLE = "4" # JJLATER breaksw case king.js.berklix.net: set MULTIPLE = "4" breaksw case lapa.js.berklix.net: set MULTIPLE = "5" breaksw case lapc.js.berklix.net: set MULTIPLE = "6" breaksw case lapd.js.berklix.net: set MULTIPLE = "7" breaksw case lapl.js.berklix.net: set MULTIPLE = "8" breaksw case lapn.js.berklix.net: set MULTIPLE = "9" breaksw case laps.js.berklix.net: case laps.no.net: set MULTIPLE = "10" set xs = ; set console = NonRootConsole # running 6.1 breaksw case loft.js.berklix.net: set MULTIPLE = "11" breaksw case mart.js.berklix.net: set MULTIPLE = "12" breaksw case mini.js.berklix.net: set MULTIPLE = "13" set xs = ; set console = NonRootConsole # running 4.11 breaksw case park.js.berklix.net: set MULTIPLE = "14" breaksw case rain.js.berklix.net: set MULTIPLE = "15" breaksw case scan.js.berklix.net: set MULTIPLE = "16" set xs = ; set console = NonRootConsole # running 4.11 breaksw case slim.js.berklix.net: case thin.js.berklix.net: set MULTIPLE = "17" breaksw case snow.js.berklix.net: set MULTIPLE = "18" breaksw case wind.js.berklix.net: set MULTIPLE = "19" set xs = ; set console = NonRootConsole # running 4.11 breaksw # host=test rarely exists so list it last for lack of space case test.js.berklix.net: set MULTIPLE = "20" breaksw # host=deli not even listed. case cebulon.bsn.com: set MULTIPLE = "1" breaksw case flat.berklix.org: set MULTIPLE = "2" breaksw case test88.bsn.com: set MULTIPLE = "3" breaksw case slim.berklix.org: set MULTIPLE = "4" breaksw case laptop.bsn.com: set MULTIPLE = "5" breaksw case tower.berklix.org: set MULTIPLE = "6" breaksw default: echo "Unrecognised positioning hostname $HNAME" set MULTIPLE = "1" breaksw endsw #} # Stop it going above top of 1024 x 768 laptop screen # next bit of code not finished. # echo -n "MULTIPLE is " # echo "$BASE $MULTIPLE p"|dc # if ( `echo "$BASE $MULTIPLE p"|dc` > 630 ) then # set MULTIPLE = 630 # endif if ( "`basename $0`" == "$CONS" ) then # {{ set xxx = `echo "$MULTIPLE $HEIGHT * $BASE + p"|dc` # To start at bottom, leaving $BASE for an fvwm panning window, # & $HEIGHT for a telno xterm: # -geometry 60x3-0-`echo "$MULTIPLE $HEIGHT * $BASE + $BASE + p"|dc` # To start at top # -geometry 60x3-0+`echo "$MULTIPLE $HEIGHT * p"|dc` & $xs xterm \ -fg magenta \ -bg $COLOUR \ -sb -sl 1024 \ -n $console -C -j \ -T "`hostname -s` $console Xterm" \ -geometry 60x3-0+`echo "$MULTIPLE $HEIGHT * p"|dc` & else # }{ xloads xload -bg $COLOUR -g \ +`echo "$MULTIPLE $HEIGHT * + p"|dc`-0 & endif # }} # X Windows screen initialiser -g WIDTHxhEIGHT+-XOFF+-YOFF # +/- XOFF left/right side of display to left/right side of window # +/- YOFF top/bottom of display to top/bottom of screen