13e747e6dSmrg#**********************************************************************
23e747e6dSmrg#
33e747e6dSmrg#    .twmrc
43e747e6dSmrg#
53e747e6dSmrg#**********************************************************************
63e747e6dSmrg
73e747e6dSmrg#IconDirectory "/users/jim/icons"	# use *bitmapFilePath instead.
83e747e6dSmrg
93e747e6dSmrg#
103e747e6dSmrg# Use the SHAPE extension to make titles use as little space as possible.  The
113e747e6dSmrg# location of the titles is specified as a fraction of the distance from the
123e747e6dSmrg# left (numerator positive) or right edge (numerator negative).  A denominator
133e747e6dSmrg# of 0 indicates that the numerator is measured in pixels.  The title is then
143e747e6dSmrg# justified over the indicated spot (note special cases are made for center on
153e747e6dSmrg# 0/0 and right on 0/0 to indicate the center and right edge of the titlebar).
163e747e6dSmrg#
173e747e6dSmrgSqueezeTitle			# also sets default to Squeeze all Titles
183e747e6dSmrg{
193e747e6dSmrg#   name	justify	num denom
203e747e6dSmrg    "oclock"	center	  0  0		# centered over middle of title
213e747e6dSmrg    "XTerm"	left	  0  0		# left edge of title
223e747e6dSmrg    "xlogo"	right	  0  0		# for kicks
233e747e6dSmrg    "emacs"	right	  0  0		# left side emacs with center tab
243e747e6dSmrg    "xmh"	center	  0  0
253e747e6dSmrg}
263e747e6dSmrgDontSqueezeTitle
273e747e6dSmrg{
283e747e6dSmrg    "XLogout"			# make it stand out when mapped
293e747e6dSmrg}
303e747e6dSmrgNoDefaults			# turn off iconify and resize button
313e747e6dSmrgLeftTitleButton "menu12" = f.menu "windowmenu"	# add a menu to each window
323e747e6dSmrgTitleButtonBorderWidth 0	# don't want to see box around button
333e747e6dSmrgButtonIndent 0			# button doesn't have to be smaller
343e747e6dSmrg
353e747e6dSmrgUsePPosition "on"		# use program-specified size hints accepted
363e747e6dSmrgNoHighlight			# do not flash borders on enter events
373e747e6dSmrgOpaqueMove			# actually move window instead of outline
383e747e6dSmrgAutoRelativeResize		# don't require resize to cross border to start
393e747e6dSmrgRestartPreviousState		# reiconify iconified things on startup
403e747e6dSmrgClientBorderWidth		# use the application border width on frame
413e747e6dSmrgBorderWidth 2			# width of top level windows created by twm
423e747e6dSmrgNoGrabServer			# don't grab server during menus, etc.
433e747e6dSmrgNoRaiseOnMove			# allow moving under other windows
443e747e6dSmrgNoRaiseOnResize			# allow resizing under other windows
453e747e6dSmrgNoTitleFocus			# avoid keystrokes in wrong window cause of lag
463e747e6dSmrgDecorateTransients		# put titlebars on transients
473e747e6dSmrgTitleFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
483e747e6dSmrgMenuFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
493e747e6dSmrgIconFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-*-*"
503e747e6dSmrgIconManagerFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*"
513e747e6dSmrgResizeFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*"
523e747e6dSmrgNoSaveUnders			# faster to just repaint then save
533e747e6dSmrgXORvalue 1			# tend to use visually distinct adjacent colors
543e747e6dSmrgConstrainedMoveTime 0		# turn off horizontal/vertical only moving
553e747e6dSmrgNoCaseSensitive			# turn off case-sensitivity in sorting icons
563e747e6dSmrgWarpUnmapped			# allow warping to unmapped windows
573e747e6dSmrg
583e747e6dSmrg###############################################################################
593e747e6dSmrg#                                                                             #
603e747e6dSmrg#                           Declare some nice colors                          #
613e747e6dSmrg#                                                                             #
623e747e6dSmrg###############################################################################
633e747e6dSmrg
643e747e6dSmrgPixmaps
653e747e6dSmrg{
663e747e6dSmrg#    TitleHighlight "solid4x4"		# make it stand out
673e747e6dSmrg}
683e747e6dSmrg
693e747e6dSmrgColor
703e747e6dSmrg{
713e747e6dSmrg    DefaultBackground "maroon"
723e747e6dSmrg    DefaultForeground "gray85"
733e747e6dSmrg    BorderColor "gray70"
743e747e6dSmrg    TitleBackground "maroon"
753e747e6dSmrg    TitleForeground "gray85"
763e747e6dSmrg    MenuBackground "maroon"
773e747e6dSmrg    MenuForeground "gray85"
783e747e6dSmrg    MenuTitleBackground "gray70"
793e747e6dSmrg    MenuTitleForeground "maroon"
803e747e6dSmrg    IconBackground "maroon"
813e747e6dSmrg    IconForeground "gray85"
823e747e6dSmrg    IconBorderColor "gray85"
833e747e6dSmrg    IconManagerBackground "maroon"
843e747e6dSmrg    IconManagerForeground "gray85"
853e747e6dSmrg}
863e747e6dSmrg
873e747e6dSmrgMonochrome
883e747e6dSmrg{
893e747e6dSmrg    IconManagerHighlight  "white"
903e747e6dSmrg    BorderColor "black"
913e747e6dSmrg}
923e747e6dSmrg
933e747e6dSmrg
943e747e6dSmrg###############################################################################
953e747e6dSmrg#                                                                             #
963e747e6dSmrg#                             Define key bindings                             #
973e747e6dSmrg#                                                                             #
983e747e6dSmrg###############################################################################
993e747e6dSmrg
1003e747e6dSmrgMoveDelta 3			# need to move this much before takes effect
1013e747e6dSmrgFunction "move-or-raise"	# simulate uwm action
1023e747e6dSmrg{
1033e747e6dSmrg    f.move
1043e747e6dSmrg    f.deltastop
1053e747e6dSmrg    f.raise
1063e747e6dSmrg}
1073e747e6dSmrg
1083e747e6dSmrgDefaultFunction f.nop		# ignore extraneous events
1093e747e6dSmrg
1103e747e6dSmrgButton1 =	: root				: f.menu "twmops"
1113e747e6dSmrgButton2 =	: root				: f.menu "windowops"
1123e747e6dSmrgButton3 =	: root				: f.menu "TwmWindows"
1133e747e6dSmrgButton1 =	: title				: f.function "move-or-raise"
1143e747e6dSmrgButton1 =	: icon				: f.iconify
1153e747e6dSmrgButton1 =	: iconmgr			: f.iconify
1163e747e6dSmrgButton1	= m	: window|icon|frame|title	: f.lower
1173e747e6dSmrgButton2	= m	: window			: f.resize
1183e747e6dSmrgButton3	= m	: window|icon|frame|title	: f.function "move-or-raise"
1193e747e6dSmrgButton1 = c|m|s	: all				: f.menu "twmops"
1203e747e6dSmrg#Button1	= c|m|s	: root				: f.refresh
1213e747e6dSmrg#"F20"	=	: all				: f.warptoscreen "next"
1223e747e6dSmrg
1233e747e6dSmrg"F21"		=	: all			: f.warpring "next"
1243e747e6dSmrg"F22"		=	: all			: f.warptoiconmgr ""
1253e747e6dSmrg"F23"		=	: all			: f.raiselower
1263e747e6dSmrg"Num_Lock"	=	: all			: f.iconify
1273e747e6dSmrg"F24"		=	: all			: f.warpto "xmh"
1283e747e6dSmrg"F25"		=	: all			: f.warpto "[expo]"
1293e747e6dSmrg"F26"		=	: all			: f.warpto "emacs"
1303e747e6dSmrg"KP_Subtract"	= mod5	: all			: f.colormap "prev"
1313e747e6dSmrg"KP_Add"	= mod5	: all			: f.colormap "next"
1323e747e6dSmrg"KP_Enter"	= mod5	: all			: f.colormap "default"
1333e747e6dSmrg"Left"		= m	: all			: f.backiconmgr
1343e747e6dSmrg"Right"		= m	: all			: f.forwiconmgr
1353e747e6dSmrg"Up"		= m	: all			: f.upiconmgr
1363e747e6dSmrg"Down"		= m	: all			: f.downiconmgr
1373e747e6dSmrg"Left"		= mod5	: all			: f.warpring "prev"
1383e747e6dSmrg"Right"		= mod5	: all			: f.warpring "next"
1393e747e6dSmrg
1403e747e6dSmrg###############################################################################
1413e747e6dSmrg#                                                                             #
1423e747e6dSmrg#     Display an icon manager across the top of the screen.  Don't manage     #
1433e747e6dSmrg#                the windows for which you don't show a title.                #
1443e747e6dSmrg#                                                                             #
1453e747e6dSmrg###############################################################################
1463e747e6dSmrg
1473e747e6dSmrgSortIconManager			# keep them in alphabetic order
1483e747e6dSmrgShowIconManager			# start with iconmgr up
1493e747e6dSmrgIconManagerGeometry "700x50+246+2" 14	# strip across top
1503e747e6dSmrgIconRegion "200x300+950+2" North East 50 50
1513e747e6dSmrgIconifyByUnmapping		# just use icon manager
1523e747e6dSmrgIconManagerDontShow		# but ignore these windows
1533e747e6dSmrg{
1543e747e6dSmrg  "xclock"
1553e747e6dSmrg  "xbiff"
1563e747e6dSmrg  "xload"
1573e747e6dSmrg  "oclock"
1583e747e6dSmrg  "xcutsel"
1593e747e6dSmrg  "XLogout"
1603e747e6dSmrg}
1613e747e6dSmrgDontIconifyByUnmapping		# don't lose them (still in TwmWindows menu)
1623e747e6dSmrg{
1633e747e6dSmrg  "xclock"
1643e747e6dSmrg  "xbiff"
1653e747e6dSmrg  "xload"
1663e747e6dSmrg  "oclock"
1673e747e6dSmrg  "xcutsel"
1683e747e6dSmrg  "Untitled"
1693e747e6dSmrg}
1703e747e6dSmrgNoTitle				# little programs that look like icons
1713e747e6dSmrg{
1723e747e6dSmrg  "xclock"
1733e747e6dSmrg  "xbiff"
1743e747e6dSmrg  "xload"
1753e747e6dSmrg  "TWM Icon Manager"
1763e747e6dSmrg  "xcutsel"
1773e747e6dSmrg}
1783e747e6dSmrg
1793e747e6dSmrgNoStackMode			# prevent hostile clients from hosing display
1803e747e6dSmrg{
1813e747e6dSmrg    "saber"
1823e747e6dSmrg}
1833e747e6dSmrg
1843e747e6dSmrgWindowRing			# f.warpring acts along these windows
1853e747e6dSmrg{
1863e747e6dSmrg    "XTerm"
1873e747e6dSmrg    "emacs"
1883e747e6dSmrg    "Xmh"
1893e747e6dSmrg}
1903e747e6dSmrg
1913e747e6dSmrg
1923e747e6dSmrg###############################################################################
1933e747e6dSmrg#                                                                             #
1943e747e6dSmrg#                          Define some useful menus.                          #
1953e747e6dSmrg#                                                                             #
1963e747e6dSmrg###############################################################################
1973e747e6dSmrg
1983e747e6dSmrgmenu "twmops"
1993e747e6dSmrg{
2003e747e6dSmrg"System"		f.title
2013e747e6dSmrg"Restart Twm"		f.restart
2023e747e6dSmrg"Exit Twm"		f.quit
2033e747e6dSmrg""			f.nop
2043e747e6dSmrg"xterm"			!"xterm &"
2053e747e6dSmrg"xterm -e /bin/sh"	!"xterm -e /bin/sh &"
2063e747e6dSmrg"xhost +"		!"xhost + >/dev/null"
2073e747e6dSmrg"xhost -"		!"xhost - >/dev/null"
2083e747e6dSmrg""			f.nop
2093e747e6dSmrg"Kill"			f.menu "kill"
2103e747e6dSmrg""			f.nop
2113e747e6dSmrg"Logout"		f.warpto "xlogout"
2123e747e6dSmrg}
2133e747e6dSmrg
2143e747e6dSmrgmenu "windowops"
2153e747e6dSmrg{
2163e747e6dSmrg"Windows"		f.title
2173e747e6dSmrg"Kill"			f.menu "kill"
2183e747e6dSmrg"Save"			f.saveyourself
2193e747e6dSmrg"Refresh"		f.refresh
2203e747e6dSmrg""			f.nop
2213e747e6dSmrg"Iconify"		f.iconify
2223e747e6dSmrg"Resize"		f.resize
2233e747e6dSmrg"Move"			f.move
2243e747e6dSmrg"Raise"			f.raise
2253e747e6dSmrg"Lower"			f.lower
2263e747e6dSmrg"Info"			f.identify
2273e747e6dSmrg"Focus"			f.focus
2283e747e6dSmrg"Unfocus"		f.unfocus
2293e747e6dSmrg""			f.nop
2303e747e6dSmrg"Show Iconmgr"		f.showiconmgr
2313e747e6dSmrg"Hide Iconmgr"		f.hideiconmgr
2323e747e6dSmrg"Prev Iconmgr"		f.previconmgr
2333e747e6dSmrg"Next Iconmgr"		f.nexticonmgr
2343e747e6dSmrg}
2353e747e6dSmrg
2363e747e6dSmrgmenu "windowmenu"
2373e747e6dSmrg{
2383e747e6dSmrg"Iconify"		f.iconify
2393e747e6dSmrg"RaiseLower"		f.raiselower
2403e747e6dSmrg"Refresh"		f.winrefresh
2413e747e6dSmrg"Focus"			f.focus
2423e747e6dSmrg""			f.nop
2433e747e6dSmrg"Kill"			f.menu "kill"
2443e747e6dSmrg}
2453e747e6dSmrg
2463e747e6dSmrgmenu "kill"
2473e747e6dSmrg{
2483e747e6dSmrg    "Send Delete"	f.delete
2493e747e6dSmrg    "Kill Window"	f.destroy
2503e747e6dSmrg}
251