chiark / gitweb /
Import remaining relevant-seeming dotfiles from zealot
[ian-dotfiles.git] / dot / vtwmrc
1 #
2 # Ian's twm configuration file.
3 #
4
5 # RandomPlacement
6 DecorateTransients
7 TitleFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
8 ResizeFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
9 MenuFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
10 IconFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-*-*"
11 IconManagerFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*"
12 IconifyByUnmapping
13 NoCaseSensitive
14 IconManagerGeometry "119x286+0+0"
15 NoDefaults
16 DontMoveOff
17 OpaqueMove
18 Zoom
19 NoRaiseOnMove
20 NoRaiseOnResize
21 SortIconManager
22 SqueezeTitle
23 RestartPreviousState
24 WarpCursor
25 Function "select" { f.iconify f.deiconify }
26 WindowFunction f.function "select"
27 WindowRing { "emacs" "emacs18" "XTerm" }
28 OldFashionedTwmWindowsMenu
29
30 NoStackMode {
31         "Iceweasel"
32 }
33
34 VirtualDesktop "8228x3848-0-0" 48
35
36 #VirtualDesktop "6432x3608-208-0" 48
37
38 #VirtualDesktop "6400x3600-208-0" 48
39 # +32,+8
40
41 #VirtualDesktop "5136x3076-208-0" 48
42 #VirtualDesktop "5120x3072-237-0" 48
43 # +16,+4
44
45 #VirtualDesktop "4x3-208-0" 48
46
47 NotVirtualGeometries
48 PanDistanceX 100
49 PanDistanceY 100
50
51 FixManagedVirtualGeometries
52 FixTransientVirtualGeometries
53 SnapRealScreen
54
55 NoTitle {
56         "TWM Icon Manager"
57         "VTWM Desktop"
58         "xclock"
59         "panel"
60         "xload"
61         "xacpi-simple"
62 }
63
64 DontSqueezeTitle {
65         "emacs"
66         "emacs18"
67         "epoch"
68         "Emacs"
69 }
70
71 DontShowInDisplay { 
72         "VTWM Desktop"
73         "xb ian"
74         "xb sysadmin"
75         "xb chiark"
76         "xb iwj"
77         "xclock"
78         "xload"
79         "XLoad"
80         "panel"
81         "xacpi-simple"
82 }
83
84 NailedDown {
85         "VTWM Desktop"
86         "xb ian"
87         "xb sysadmin"
88         "xb chiark"
89         "xb iwj"
90         "xclock"
91         "xwrits"
92         "xload"
93         "XLoad"
94         "panel"
95         "xacpi-simple"
96 }
97
98 Cursors
99 {
100         Frame           "crosshair"
101         Title           "crosshair"
102         Icon            "crosshair"
103         IconMgr         "crosshair"
104         Move            "fleur"
105         Resize          "fleur"
106         Menu            "sb_left_arrow"
107         Button          "hand2"
108         Wait            "watch"
109         Select          "dot"
110         Destroy         "pirate"
111 }
112
113 Color
114 {
115     BorderColor "yellow"
116     DefaultBackground "black"
117     DefaultForeground "white"
118     TitleBackground "midnight blue"
119     TitleForeground "light steel blue"
120     MenuBackground "midnight blue"
121     MenuForeground "light steel blue"
122     MenuTitleBackground "midnight blue"
123     MenuTitleForeground "light steel blue"
124     IconBackground "midnight blue"
125     IconForeground "light steel blue"
126     IconBorderColor "red"
127     IconManagerBackground "orange1"
128     IconManagerForeground "black"
129     BorderTileForeground "red"
130     BorderTileBackground "red"
131
132     VirtualBackground "midnight blue"
133     DesktopDisplayBackground "black"
134     DesktopDisplayBorder "light steel blue"
135     RealScreenBackground "white"
136 }
137
138 Monochrome
139 {
140     BorderColor "black"
141     DefaultBackground "black"
142     DefaultForeground "white"
143     TitleBackground "white"
144     TitleForeground "black"
145     MenuBackground "black"
146     MenuForeground "white"
147     MenuTitleBackground "black"
148     MenuTitleForeground "white"
149     IconBackground "black"
150     IconForeground "white"
151     IconBorderColor "white"
152     IconManagerBackground "white"
153     IconManagerForeground "black"
154     BorderTileForeground "black"
155     BorderTileBackground "white"
156 }
157
158 # Define some useful functions for motion-based actions.
159 MoveDelta 3
160 Function "forcemove-or-lower" { f.forcemove f.deltastop f.lower }
161 Function "move-or-raise" { f.move f.deltastop f.raise }
162
163 # Root window buttons
164 Button1 =       : root          : f.menu "hosts"
165 Button2 =       : root          : f.menu "TwmWindows"
166 Button3 =       : root          : f.menu "programs"
167 Button1 = m     : root          : f.unfocus
168
169 Button1 = : desktop : f.movescreen
170 Button2 = : desktop : f.movescreen
171 #Button3 = : desktop : f.iconify
172
173 # Per window buttons
174 Button1 =               : icon|iconmgr|frame|title      : f.function "move-or-raise"
175 Button2 =               : icon|iconmgr|frame|title      : f.function "forcemove-or-lower"
176 Button3 =               : icon|iconmgr|frame|title      : f.menu "windowmenu"
177 Button1 = shift         : icon|iconmgr|frame|title      : f.iconify
178 Button2 = shift         : icon|iconmgr|frame|title      : f.resize
179 Button3 = shift         : icon|iconmgr|frame|title      : f.zoom
180 Button1 = m             : icon|iconmgr|frame|title      : f.focus
181 Button3 = m             : icon|iconmgr|frame|title      : f.saveyourself
182 Button1 = control       : icon|iconmgr|frame|title      : f.forcemove
183 Button3 = control       : icon|iconmgr|frame|title      : f.delete
184 Button3 = control|shift : icon|iconmgr|frame|title      : f.destroy
185 Button1 = control|shift|m : window|frame|title          : f.destroy
186 Button2 = control|shift|m : window|frame|title          : f.forcemove
187 Button3 = control|shift|m : window|frame|title          : f.menu "windowmenu"
188
189 "Up"    = m : all                               : f.function "pan-up"
190 "Down"  = m : all                               : f.function "pan-down"
191 "Left"  = m : all                               : f.function "pan-left"
192 "Right" = m : all                               : f.function "pan-right"
193
194 Function "pan-up" {
195         !"raise-mini-desktop"
196         f.panup "100"
197 }
198 Function "pan-down" {
199         !"raise-mini-desktop"
200         f.pandown "100"
201 }
202 Function "pan-left" {
203         !"raise-mini-desktop"
204         f.panleft "100"
205 }
206 Function "pan-right" {
207         !"raise-mini-desktop"
208         f.panright "100"
209 }
210
211 Function "drag-with-up" {
212         f.nail
213         f.panup "100"
214         f.raise
215         f.nail
216         !"raise-mini-desktop"
217 }
218
219 Function "drag-with-down" {
220         f.nail
221         f.pandown "100"
222         f.raise
223         f.nail
224         !"raise-mini-desktop"
225 }
226 Function "drag-with-left" {
227         f.nail
228         f.panleft "100"
229         f.raise
230         f.nail
231         !"raise-mini-desktop"
232 }
233 Function "drag-with-right" {
234         f.nail
235         f.panright "100"
236         f.raise
237         f.nail
238         !"raise-mini-desktop"
239 }
240
241 "Up"    = m|shift : window|frame|title  : f.function "drag-with-up"
242 "Down"  = m|shift : window|frame|title  : f.function "drag-with-down"
243 "Left"  = m|shift : window|frame|title  : f.function "drag-with-left"
244 "Right" = m|shift : window|frame|title  : f.function "drag-with-right"
245
246 # Accelerators out of icon manager
247 # "F1"          =       : icon|window|frame|title       : f.iconify
248 "F2"            =       : icon|window|frame|title       : f.raise
249 "F3"            =       : icon|window|frame|title       : f.lower
250 "F1"            =       : iconmgr                       : f.hideiconmgr
251 "F2"            =       : iconmgr                       : f.hideiconmgr
252 "F7"            =       : all                           : f.warpring "prev"
253 "F8"            =       : all                           : f.warpring "next"
254 "Menu"          =       : icon|window|frame|title       : f.showiconmgr
255
256 # Accelerators in icon manager
257 "F7"            =       : iconmgr                       : f.previconmgr
258 "F8"            =       : iconmgr                       : f.nexticonmgr
259 "Menu"          =       : iconmgr                       : f.function "select"
260
261 # Accelerators everywhere for new clients
262 "F4"            =       : all                   : !"xtrlock &"
263 "F6"            =       : all           : !"LC_CTYPE=en_GB.utf-8 xterm &"
264
265 menu "windowmenu"
266 {
267         "Window Menu"   f.title
268         "Close"         f.delete
269         "Destroy"       f.destroy
270         ""              f.nop
271         "Icon"          f.iconify
272         "Nail"          f.nail
273         "Zoom"          f.zoom
274         "Resize"        f.resize
275         "Identify"      f.identify
276         "Forced move"   f.forcemove
277         ""              f.nop
278         "Mouse help"    f.menu "windowmice"
279 }
280
281 menu "windowmice"
282 {
283         "Modifiers      Leftbutton      Middle      Right"      f.nop
284         ""                                                      f.nop
285         "                 Move/Raise    Move/Lower   Menu"       f.nop
286         " Shift:            Iconify           Resize       Zoom"       f.nop
287         "  Meta:       Focus/Unfocus                Checkpoint" f.nop
288         " Control:       Forced Move                       Delete"     f.nop
289         "Control+Shift:                                    Destroy"    f.nop
290 }
291
292 menu "special"
293 {
294         "Management"            f.title
295         "Refresh"               f.refresh
296         "Restart"               f.function "restart"
297         ""                      f.nop
298         "Kill twm"              f.quit
299         ""                      f.nop
300         "Show icon list"        f.showiconmgr
301         "Hide icon list"        f.hideiconmgr
302 }
303
304 Function "restart" {
305         !"rm .configs/mini-desktop-window-id"
306         f.restart
307 }
308
309 menu "programs"
310 {
311         "Programs"      f.title
312         "Emacs restart" !".configs/startemacs"
313         "Emacs left"    !"emacs -geometry 79x40+0+35 &"
314         ""              f.nop
315  "IRC Diziet" !"xterm -geometry 80x24+24-0 -T ' IRC' -e sh -c 'ssh -vt ijackson@tunnel.chiark.greenend.org.uk screen -x irc; read x' &"
316 # "IRC iwj" !"xterm -geometry 80x70+340-0 -T 'IRC iwj' -e irc iwj cam.irc.devel.ncipher.com &"
317         ""              f.nop
318         "Trn"           !"xterm -geometry 80x45+240+95 -e trn &"
319         "Archie"        !"xarchie &"
320         "Calc"          !"xcalc &"
321 #       "Xab large"     !"xab &"
322 #       "Xab small"     !"perl -e '$xab=\"xab\"; exec $xab \"other-xab\"' &"
323         ""              f.nop
324         "Management"    f.menu "special"
325         "Hosts"         f.menu "hosts"
326         "Games"         f.menu "games"
327         "Demos"         f.menu "demos"
328 }
329
330
331 Menu "hosts"
332 {
333         "Hosts"         f.title
334
335
336
337
338  ""             f.nop
339  "Relativity"   !"xterm-CT 'Relativity' -e ssh -p24 r-ian@relativity.dynamic.greenend.org.uk &"
340  ""             f.nop
341  "Lewes"        !"xterm-CT 'lewes rlogin' -e rlogin lewes &"
342  "Scunthorpe"   !"xterm-CT 'scunthorpe rlogin' -e rlogin scunthorpe &"
343  "Saintpaul"    !"xterm-CT 'saintpaul rlogin' -e rlogin saintpaul &"
344  "Slough"       !"xterm-CT 'slough rlogin' -e rlogin slough &"
345  "Guildford"    !"xterm-CT 'guildford rlogin' -e rlogin guildford &"
346  "York"         !"xterm-CT 'york rlogin' -e rlogin york &"
347 # "Greenock"    !"xterm-CT 'greenock rlogin' -e rlogin greenock &"
348  ""             f.nop
349  "Ursa"         !"xterm-CT 'ursa rlogin' -e rlogin ursa.cus.cam.ac.uk -l iwj10 &"
350  "Taurus"       !"xterm-CT 'taurus ssh' -e ssh taurus.cus.cam.ac.uk -l iwj10 &"
351  "Taurus rlogin" !"xterm-CT 'taurus rlogin' -e rlogin taurus.cus.cam.ac.uk -l iwj10 &"
352  "Bootes"       !"xterm-CT 'bootes rlogin' -e rlogin bootes.cus.cam.ac.uk -l iwj10 &"
353  "Thor"         !"xterm-CT 'thor rlogin' -e rlogin hammer.thor.cam.ac.uk -l iwj10 &"
354  ""             f.nop
355  "Leek"         !"xterm-CT 'leek rlogin' -e rlogin leek.cam-orl.co.uk -l iwj&"
356  "Lobster"      !"xterm-CT 'lobster rlogin' -e rlogin lobster.cam-orl.co.uk -l iwj&"
357  ""             f.nop
358  "Shep"         !"xterm-CT 'shep ssh' -e ssh shep.cl.cam.ac.uk -l iwj10 &"
359  "Ouse"         !"xterm-CT 'ouse ssh' -e ssh ouse.cl.cam.ac.uk -l iwj10 &"
360         ""              f.nop
361  "Chiark"       !"xterm-CT 'chiark ssh' -e ssh chiark.greenend.org.uk -l ijackson &"
362  "Chiark ian"   !"xterm-CT 'chiark ssh ian' -e ssh chiark.greenend.org.uk -l ian &"
363  "Chiark II"    !"xterm-CT 'chiark ssh II' -e ssh chiark.greenend.org.uk -t -l ijackson personal/linux/bin/II &"
364  "Iguana"       !"xterm-CT 'iguana ssh' -e ssh iguana.ucam.org -l ijackson &"
365  "Utter"        !"xterm-CT 'utter ssh' -e ssh utter.chaos.org.uk -l ijackson &"
366         ""              f.nop
367  "Club"         !"xterm-CT 'club rlogin' -e rlogin club.damtp.cam.ac.uk -l iwj10 &"
368  "Greed"        !"xterm-CT 'greed rlogin' -e rlogin greed.damtp.cam.ac.uk -l iwj10 &"
369  "Enghp"     !"xterm -geometry 80x50 -T 'enghp' -e rlogin enghp.chu.cam.ac.uk -l iwj10 &"
370  "Impren"    !"xterm-CT 'impren rlogin' -e rlogin impren.al.cl.cam.ac.uk -l ijackson &"
371  ""             f.nop
372  "Novare -v"    !"xterm-CT 'novare -v' -e ssh -v debian.novare.net -l iwj &"
373  "Novare"       !"xterm-CT 'novare' -e ssh debian.novare.net -l iwj &"
374  "Debian"       !"xterm-CT 'debian' -e rlogin ftp.debian.org -l iwj &"
375  "Debra"                !"xterm-CT 'debra' -e rlogin debra.debian.org -l iwj &"
376  "GNU"          !"xterm-CT 'gnu' -e rlogin mescaline.gnu.org -l ijackson &"
377  "GNU dist"     !"xterm-CT 'gnudist' -e rlogin gnudist.gnu.org -l ijackson &"
378  "Master"       !"xterm-CT 'master' -e ssh master.debian.org -l iwj &"
379  "Va"           !"xterm-CT 'va' -e ssh va.debian.org -l iwj &"
380  "Nyx"          !"xterm-CT 'nyx - rlogin' -e rlogin nyx.cs.du.edu -l ijackson &"
381  "Sunsite"      !"xterm-CT 'sunsite' -e rlogin sunsite.unc.edu -l iwj &"
382  "White"                !"xterm-CT 'white' -geometry 80x25 -e sh -c \
383                 'rlogin white.dogwood.com; line >/dev/null' &"
384 }
385
386 Menu "demos"
387 {
388         "Demos - probably broken"       f.title
389         "Ico"                           !"ico &"
390         "Maze"                          !"maze &"
391         "Muncher"                       !"muncher &"
392         "Plaid"                         !"plaid &"
393         "Worm"                          !"worm &"
394         "Colors"                        !"xcolors &"
395         "Eyes"                          !"xeyes &"
396         "Life"                          !"xlife &"
397         "XLogo"                         !"xlogo &"
398 }
399
400 Menu "games"
401 {
402         "Games - probably broken"       f.title
403         "Chomp"                         !"xchomp &"
404         "Cbzone"                        !"cbzone &"
405         "MazeWar"                       !"xterm -e mazewar &"
406         "Mille"                         !"xmille &"
407         "Reversi"                       !"reversi &"
408         "Roids"                         !"roids &"
409         "Robots"                        !"xrobots &"
410         "Shanghai"                      !"xmj &"
411         "Solitaire"                     !"xsol &"
412         "Spider"                        !"spider &"
413 }