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