# # Ian's twm configuration file. # # RandomPlacement DecorateTransients TitleFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*" ResizeFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*" MenuFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*" IconFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-*-*" IconManagerFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*" IconifyByUnmapping NoCaseSensitive IconManagerGeometry "119x286+0+0" NoDefaults DontMoveOff OpaqueMove Zoom NoRaiseOnMove NoRaiseOnResize SortIconManager NoTitle { "TWM Icon Manager" "VTWM Desktop" "xclock" "xload" } DontSqueezeTitle { "Emacs" } SqueezeTitle RestartPreviousState WarpCursor Function "select" { f.iconify f.deiconify } WindowFunction f.function "select" WindowRing { "Emacs" "XTerm" } OldFashionedTwmWindowsMenu VirtualDesktop "4x3-66-0" 50 #VirtualDesktop "3x3-66-0" 48 NotVirtualGeometries PanDistanceX 100 PanDistanceY 100 FixManagedVirtualGeometries FixTransientVirtualGeometries SnapRealScreen DontShowInDisplay { "VTWM Desktop" "xb ian" "xb sysadmin" "xb chiark" "xb iwj" "xclock" "xload" "XLoad" } NailedDown { "VTWM Desktop" "xb ian" "xb sysadmin" "xb chiark" "xb iwj" "xclock" "xload" "XLoad" } Cursors { Frame "crosshair" Title "crosshair" Icon "crosshair" IconMgr "crosshair" Move "fleur" Resize "fleur" Menu "sb_left_arrow" Button "hand2" Wait "watch" Select "dot" Destroy "pirate" } Color { BorderColor "yellow" { "emacs: root@davenant" "magenta" "emacs: root@anarres" "magenta" "emacs: root@chiark" "magenta" "emacs: root@norway" "magenta" "master root" "magenta" "root-xterm" "magenta" } DefaultBackground "black" DefaultForeground "white" TitleBackground "midnight blue" TitleForeground "light steel blue" MenuBackground "midnight blue" MenuForeground "light steel blue" MenuTitleBackground "midnight blue" MenuTitleForeground "light steel blue" IconBackground "midnight blue" IconForeground "light steel blue" IconBorderColor "red" IconManagerBackground "orange1" IconManagerForeground "black" BorderTileForeground "red" BorderTileBackground "red" VirtualBackground "midnight blue" DesktopDisplayBackground "black" DesktopDisplayBorder "light steel blue" RealScreenBackground "white" } Monochrome { BorderColor "black" DefaultBackground "black" DefaultForeground "white" TitleBackground "white" TitleForeground "black" MenuBackground "black" MenuForeground "white" MenuTitleBackground "black" MenuTitleForeground "white" IconBackground "black" IconForeground "white" IconBorderColor "white" IconManagerBackground "white" IconManagerForeground "black" BorderTileForeground "black" BorderTileBackground "white" } # Define some useful functions for motion-based actions. MoveDelta 3 Function "forcemove-or-lower" { f.forcemove f.deltastop f.lower } Function "move-or-raise" { f.move f.deltastop f.raise } # Root window buttons Button1 = : root : f.menu "hosts" Button2 = : root : f.menu "TwmWindows" Button3 = : root : f.menu "programs" Button1 = m : root : f.unfocus Button1 = : desktop : f.movescreen Button2 = : desktop : f.movescreen #Button3 = : desktop : f.iconify # Per window buttons Button1 = : icon|iconmgr|frame|title : f.function "move-or-raise" Button2 = : icon|iconmgr|frame|title : f.function "forcemove-or-lower" Button3 = : icon|iconmgr|frame|title : f.menu "windowmenu" Button1 = shift : icon|iconmgr|frame|title : f.iconify Button2 = shift : icon|iconmgr|frame|title : f.resize Button3 = shift : icon|iconmgr|frame|title : f.zoom Button1 = m : icon|iconmgr|frame|title : f.focus Button3 = m : icon|iconmgr|frame|title : f.saveyourself Button1 = control : icon|iconmgr|frame|title : f.forcemove Button3 = control : icon|iconmgr|frame|title : f.delete Button3 = control|shift : icon|iconmgr|frame|title : f.destroy Button1 = control|shift|m : window|frame|title : f.destroy Button2 = control|shift|m : window|frame|title : f.forcemove Button3 = control|shift|m : window|frame|title : f.menu "windowmenu" "Up" = m : all : f.panup "100" "Down" = m : all : f.pandown "100" "Left" = m : all : f.panleft "100" "Right" = m : all : f.panright "100" Function "drag-with-up" { f.nail f.panup "100" f.raise f.nail } Function "drag-with-down" { f.nail f.pandown "100" f.raise f.nail } Function "drag-with-left" { f.nail f.panleft "100" f.raise f.nail } Function "drag-with-right" { f.nail f.panright "100" f.raise f.nail } "Up" = m|shift : window|frame|title : f.function "drag-with-up" "Down" = m|shift : window|frame|title : f.function "drag-with-down" "Left" = m|shift : window|frame|title : f.function "drag-with-left" "Right" = m|shift : window|frame|title : f.function "drag-with-right" # Accelerators out of icon manager "F1" = : icon|window|frame|title : f.iconify "F2" = : icon|window|frame|title : f.raise "F3" = : all : f.lower "F1" = : iconmgr : f.hideiconmgr "F2" = : iconmgr : f.hideiconmgr "F8" = : all : f.warpring "prev" "F9" = : all : f.warpring "next" "Menu" = : icon|window|frame|title : f.showiconmgr # Accelerators in icon manager "F7" = : iconmgr : f.previconmgr "F8" = : iconmgr : f.nexticonmgr "Menu" = : iconmgr : f.function "select" # Accelerators everywhere for new clients "F4" = : all : !"xtrlock &" "F5" = : all : !"remoteshell anarres &" "F5" = shift : all : !"REMOTESHELL_RXPROFILE=rxprofile-root remoteshell anarres -name root-xterm &" "F6" = : all : !"remoteshell davenant &" "F6" = shift : all : !"REMOTESHELL_RXPROFILE=rxprofile-root remoteshell davenant -name root-xterm &" "F7" = : all : f.function "norway-priv" "F7" = shift : all : f.function "norway-root" menu "windowmenu" { "Window Menu" f.title "Close" f.delete "Destroy" f.destroy "" f.nop "Icon" f.iconify "Nail" f.nail "Zoom" f.zoom "Resize" f.resize "Identify" f.identify "Move" f.move "Forced move" f.forcemove "" f.nop "Mouse help" f.menu "windowmice" } menu "windowmice" { "Modifiers Leftbutton Middle Right" f.nop "" f.nop " Move/Raise Move/Lower Menu" f.nop " Shift: Iconify Resize Zoom" f.nop " Meta: Focus/Unfocus Checkpoint" f.nop " Control: Forced Move Delete" f.nop "Control+Shift: Destroy" f.nop } menu "special" { "Special Menu " f.title "Show icon list" f.showiconmgr "Hide icon list" f.hideiconmgr "" f.nop # "Lockscreen" !"xpadlock &" "Refresh" f.refresh "" f.nop "Kill twm" f.quit "Restart" f.restart } Function "norway-priv" { !"REMOTESHELL_RSH=ssh remoteshell norway &" } Function "norway-root" { !"REMOTESHELL_RSH=ssh REMOTESHELL_RXPROFILE=rxprofile-root remoteshell norway -name root-xterm &" } menu "hosts" { "Shells / Hosts" f.title "ijackson" !"xterm -bg '#300038' -fg '#fff8ff' -T $HOST' ijackson' -e ssh localhost -l ijackson &" "testac" !"xterm -fg '#ff80ff' -T $HOST' testac' -e ssh localhost -l testac &" "" f.nop "Davenant priv." !"remoteshell davenant &" "Davenant root" !"REMOTESHELL_RXPROFILE=rxprofile-root remoteshell davenant -name root-xterm &" "Davenant unpriv." !"xterm-ssh 'davenant ijackson' davenant ijackson &" "" f.nop "Anarres priv." !"remoteshell anarres &" "Anarres root" !"REMOTESHELL_RXPROFILE=rxprofile-root remoteshell anarres -name root-xterm &" "Anarres unpriv." !"xterm-ssh 'anarres ijackson' anarres ijackson &" "" f.nop "Norway priv." f.function "norway-priv" "Norway root" f.function "norway-root" "Xenophobe priv." !"xterm-ssh 'xenophobe ian' xenophobe.relativity.greenend.org.uk ian&" "Xenophobe root" !"xterm-ssh 'xenophobe root' xenophobe.relativity.greenend.org.uk root&" "Sfere priv." !"xterm-ssh sfere sfere.relativity.greenend.org.uk ian -o 'ForwardX11 yes' &" "Khem priv." !"xterm-ssh khem khem.relativity.greenend.org.uk ian -o 'ForwardX11 yes' &" "Snoopy" !"xterm-rlogin 'snoopy ian' snoopy.relativity.greenend.org.uk ian &" "" f.nop "Chiark tunnel priv." !"xterm-ssh chiark-tunnel chiark.relativity.greenend.org.uk ian -o 'ForwardX11 yes' &" "Chiark tunnel root" !"XTERM_SSH_NAME=root-xterm xterm-ssh 'chiark-tunnel root' chiark.relativity.greenend.org.uk ian -o 'ForwardX11 yes' -t '. .setenvir && really' &" "Chiark tunnel unpriv." !"xterm-ssh 'chiark-tunnel ijackson' chiark.relativity.greenend.org.uk ijackson &" "" f.nop "Chiark direct priv." !"xterm-ssh chiark chiark.greenend.org.uk ian -o 'ForwardX11 yes' &" "Chiark direct root" !"XTERM_SSH_NAME=root-xterm xterm-ssh 'chiark root' chiark.greenend.org.uk ian -o 'ForwardX11 yes' -t '. .setenvir && really' &" "Chiark direct unpriv." !"xterm-ssh 'chiark ijackson' chiark ijackson &" "" f.nop "Iguana unpriv." !"xterm-ssh 'iguana ijackson' iguana.ucam.org ijackson &" "" f.nop "Master" !"xterm-ssh master master.debian.org iwj &" "Va" !"xterm-ssh va va.debian.org iwj &" "" f.nop "Dover" !"xterm-ssh dover dover.ncipher.com iwj &" "" f.nop # "Taurus" !"xterm-ssh taurus taurus.cus.cam.ac.uk iwj10 &" # "Ursa" !"xterm-ssh ursa ursa.cus.cam.ac.uk iwj10 &" # "Thor" !"xterm-ssh thor hammer.thor.cam.ac.uk iwj10 &" "GNU (Mescaline)" !"xterm-rlogin mescaline rlogin mescaline.gnu.org ijackson &" "GNU dist" !"xterm-rlogin gnudist rlogin gnudist.gnu.org ijackson &" # "" f.nop "Ouse" !"xterm-ssh ouse ouse.cl.cam.ac.uk iwj10 &" "" f.nop # "Master root" !"xterm-ssh 'master root' master.debian.org IanR &" "Nyx" !"xterm-rlogin nyx rlogin nyx.nyx.net ijackson &" "Nyx10" !"xterm-rlogin nyx10 rlogin nox.nyx.net ijackson &" "Sunsite" !"xterm-rlogin sunsite sunsite.unc.edu iwj &" } menu "programs" { "Utilities" f.title "Restart Emacs" !".configs/startemacs -f make-session &" "Really Emacs" !"really .configs/startemacs -xrm 'emacs.title: emacs: root@'$HOST &" "Gzilla" !"gzilla &" # "Hosts" f.menu "hosts" # "Hosts" f.menu "hosts" "Management" f.menu "special" "Start Pixie" !"xterm -geometry 79x23+0+87 -e pgp-pixie &" "Start Trn" !".configs/starttrn &" "Start Workman" !"workman -geometry +8+8 -xrm '*foreground: black' &" "Start Xmix" !"xmix -geometry +122+8 &" "Start Top" !"xterm -geometry 80x40 -e top &" } Menu "demos" { "Demos" f.title "Ico" !"ico &" "Maze" !"maze &" "Muncher" !"muncher &" "Plaid" !"plaid &" "Worm" !"worm &" "Colors" !"xcolors &" "Eyes" !"xeyes &" "Life" !"xlife &" "XLogo" !"xlogo &" } Menu "games" { "Games" f.title "Chomp" !"xchomp &" "Cbzone" !"cbzone &" "MazeWar" !"xterm -e mazewar &" "Mille" !"xmille &" "Reversi" !"reversi &" "Roids" !"roids &" "Robots" !"xrobots &" "Shanghai" !"xmj &" "Solitaire" !"xsol &" "Spider" !"spider &" }