#------------------------------------------------------------ # FONTS -- MUST COME BEFORE FUNCTION VARIABLES # TitleFont "-adobe-helvetica-medium-r-normal-*-*-100-*-*-*-*-*-*" # TitleFont "-sgi-messenger-medium-r-normal-*-*-120-*-*-p-*--*" MenuFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*" # MenuFont "-sgi-messenger-medium-r-normal-*-*-120-*-*-p-*--*" IconManagerFont "-adobe-helvetica-medium-r-normal-*-*-80-*-*-*-*-*-*" # IconFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*" IconFont "-adobe-helvetica-medium-r-normal-*-*-100-*-*-p-*-iso8859-*" ResizeFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*" #------------------------------------------------------------ # DIRECTORIES # PixmapDirectory "/usr/include/X11/bitmaps" # Where are the buttons? IconDirectory "/usr/include/X11/bitmaps" # Where are the icons? #------------------------------------------------------------ # MISC # # AlwaysOnTop # try to keep {win-list} on top always AnimationSpeed 8 # draws per sec - The default value is 0 InterpolateMenuColors # blend colors between menu items described # MaxWindowSize "1024x768" # max win size permitted NoBackingStore # faster to paint menus than to store NoDefaults # Don't use the default titlebar buttons NoGrabServer # don't grab server on opaques or menu popups # NoMenuShadows # no shadow drawn for popup menus NoSaveUnders # faster to repaint than to save-under # NoStackMode # ignore {win-list} stack order change RandomPlacement "off" # new window placement "on"|"off"|"unmapped" RestartPreviousState # use WM_STATE to use prev winmgr state # StayUpMenus # menu stays when ButtonUp - dragging optional # TransientHasOccupation # allow transients their own occupation TransientOnTop 50 # transient always on top iff % < leader UsePPosition "on" # use client postition "on"|"off"|"non-zero" XorValue 1 # adjust move/resize win outline colors Zoom 8 # animate de/iconification with n draws #------------------------------------------------------------ # DIMENSION # UseThreeDBorders # look a little more like motif # UseThreeDIconManagers # use 3D-looking IconManagers if any # UseThreeDMenus # Tells ctwm to use 3D-looking menus # UseThreeDTitles # Tells ctwm to use 3D-looking windows titles # UseThreeDWMap # use 3D decorations for small workspace wins ThreeDBorderWidth 4 # width of 3D border in pixels, if any # BorderShadowDepth 2 # shadow depth in pixels # IconManagerShadowDepth 2 # shadow depth in pixels # MenuShadowDepth 2 # shadow depth in pixels # TitleButtonShadowDepth 2 # shadow depth in pixels # TitleShadowDepth 1 # shadow depth in pixels #------------------------------------------------------------ # TITLES # DecorateTransients # windows WM_TRANSIENT_FOR have titlebars # ButtonIndent 0 # title-button pixel indent on all sides # FramePadding 0 # pixels between buttons/text and title frame TitleButtonBorderWidth 0 # pixels bordering title buttons # TitlePadding 1 # pixels btwen title buttons, text & highlight SunkFocusWindowTitle # title of focus win is sunken # NoTitleHighlight # don't display the title-bar focus pixmap TitleJustification "left" # title "left"|"right"|"center" justified # MakeTitle # put titles on {win-list} to override NoTitle NoTitle # no titles on {win-list} entries { "WorkSpaceManager" "emiclock" "TWM Icon Manager" } # DontSqueezeTitle # don't squeeze titles {win-list} # { # "xv" # } # SqueezeTitle # squeeze titles for {win-list} # { # "Netscape" center 0 0 # } # NoTitleFocus # click to focus (vs. pointer focus) # NoHighlight # don't highlight {win-list} borders on focus # LeftTitleButton "target" # First button on the left - resize # { # Button1 : f.zoom # Button2 : f.fullzoom # Button3 : f.hzoom # } LeftTitleButton "menu12" = f.menu "WindowMenu" # First button on the left - menu LeftTitleButton "xlogo11" = f.raise # First button on the left - menu RightTitleButton "star" = f.fullzoom # Button on the right - max zoom RightTitleButton "cntr_ptr" = f.zoom # Button on the right - vertical zoom Function "squeeze-and-raise" { f.squeeze f.raise } RightTitleButton "dropbar8" = f.function "squeeze-and-raise" # Button on the right # RightTitleButton "right_ptr" = f.resize # Button on the right RightTitleButton "down_ptr" = f.iconify # First button on the left - minimize menu "WindowMenu" { "MaxSize" f.fullzoom "Iconify" f.iconify "Move" f.move "Raise" f.raise "Lower" f.lower "" f.nop "Close" f.delete "" f.nop "Kill" f.destroy } #------------------------------------------------------------ # BORDER # BorderWidth 2 # border surrounding all window frames ClientBorderWidth 2 # override BorderWidth for client window frames NoBorder # no borders around {win-list} { "WorkSpaceManager" "TWM Icon Manager" } #------------------------------------------------------------ # ICONS # ShowIconManager # start with iconmgr up SortIconManager # keep entries in alphabetic order # geometry-string number-of-columns IconManagerGeometry "900x14+5-3" 10 # strip across bottom # IconManagers # { # "PostItNote" "xpostit" "128x10-0-64" 1 # } # IconManagerShow {win-list} # win-list managed by icon manager IconifyByUnmapping # just use icon manager IconManagerDontShow # but ignore these windows { "emiclock" } # DontIconifyByUnmapping # force {win-list} to have icons # { # "Xman" # } NoCaseSensitive # ignore case on sort in icon manager # NoIconManagerFocus # no win focus when pointer in icon manager # NoIconManagers # don't create any icon managers # IconManagers {iconmgr-list} # "winname" ["iconname"] "geometry" columns ForceIcons # ctwm icon pixmaps override client-supplied UnknownIcon "xlogo32" # default icon to bind # Icons # window names and bitmaps for their icons # { # } # StartIconified # start clients {win-list} iconified # MaxIconTitleWidth 128 # max width of icon title string in pixels # NoIconTitle # title/image justify "left"|"right"|"center" IconJustification "center" # title/image justify "left"|"right"|"center" IconRegionAlignement "bottom" # "top"|"bottom"|"center"|"border" IconRegionJustification "left" # "left"|"center"|"right"|"border" IconRegion "512x200+0-0" South West 65 65 #------------------------------------------------------------ # CURSORS # # Cursors # pointer glyphs (defaults are fine) # { # Frame "top_left_arrow" # Title "top_left_arrow" # Icon "top_left_arrow" # IconMgr "top_left_arrow" # Move "fleur" # Resize "fleur" # Menu "sb_left_arrow" # Button "hand2" # Wait "watch" # Select "dot" # Destroy "pirate" # } #------------------------------------------------------------ # WORKSPACE -- MUST COME BEFORE OCCUPY VARIABLES # # geometry-string number-of-columns WorkSpaceManagerGeometry "260x60-3-3" 4 # name [{bg-button [fg-button] [bg-root] [fg-root] [pixmap-root]}] WorkSpaces { "Main" {"gray60" "white" "gray70" "black" "root_weave"} "Work A" {"gray60" "white" "gray70" "black" "root_weave"} "Work B" {"gray60" "white" "gray70" "black" "root_weave"} "Monitor" {"gray60" "white" "gray70" "black" "root_weave"} } ShowWorkSpaceManager # WorkSpaceManager should be visible StartInMapState # start in map form (vs button form) MapWindowCurrentWorkSpace # current workspace colors { # "lightsteelblue" # border color "darkred" # border color "black" # background color # "yellow" # foreground color # "root_weave" # pixmap } # MapWindowDefaultWorkSpace # default workspace colors - used only if # { # no root info in workspace command # "black" # border color # "grey60" # background color # "black" # foreground color # "root_weave" # pixmap # # "xpm:ball%.xpm" # pixmap # } WMgrButtonShadowDepth 2 # button (non-map mode) shadow depth in pixels WMgrHorizButtonIndent 2 # horizontal space between buttons in pixels WMgrVertButtonIndent 2 # vertical space between buttons in pixels # DontPaintRootWindow # don't paint root same as workspace bg # ReverseCurrentWorkspace # use inverse fg/bg colors for current wrkspc ReallyMoveInWorkspaceManager # really move the win when manipulated in map AlwaysShowWindowWhenMovingFromWorkspaceManager # show win during move #------------------------------------------------------------ # WARP # # WarpCursor # warp to [{ win-list }] when win deiconified # WarpRingOnScreen # cycle thru visible win in current workspace WarpUnmapped # f.warpto deiconifies windows WindowRing # f.warpring cycles thru [{ win-list }] or all # { # "emacs" # "xterm" # "Netscape" # } # NoRaiseOnWarp # don't raise on f.warpto # DontWarpCursorInWMap # don't warp cursor to win by workspace click #------------------------------------------------------------ # COLORS # # ClearShadowContrast 40 # brighter 3D highlight # DarkShadowContrast 60 # darker 3D highlight BeNiceToColormap # use stipled colors for 3D look- overrides # ClearShadowContrast and DarkShadowContrast Color # list of color assignments { DefaultBackground "navy" # bg for sizing and info DefaultForeground "gray95" # fg for sizing and info MenuBackground "navy" # bg for menus MenuForeground "gray95" # fg for menus MenuTitleBackground "gray95" # bg for menu title entry MenuTitleForeground "navy" # fg for menu title entry BorderColor "navy" # focused border BorderTileBackground "black" # unfocused border bg BorderTileForeground "navy" # unfocused pixmap fg IconForeground "navy" # fg of icons IconBackground "gray95" # bg of icons IconBorderColor "black" # border of icons IconManagerBackground "navy" # bg of icon manager entry IconManagerForeground "gray95" # fg of icon manager entry MapWindowBackground "navy" # bg of windows in wrkspce map MapWindowForeground "gray95" # fg of windows in wrkspce map TitleBackground "navy" # bg in titlebars TitleForeground "gray95" # fg in titlebars } Monochrome # list of color assignments for pixel depth 1 { DefaultBackground "white" # bg for sizing and info DefaultForeground "black" # fg for sizing and info MenuBackground "white" # bg for menus MenuForeground "black" # fg for menus MenuShadowColor "black" # shadow behind pull-down menus MenuTitleBackground "white" # bg for menu title entry MenuTitleForeground "black" # fg for ment title entry # following may have win-lists BorderColor "black" # placed around all windows BorderTileBackground "white" # pattern bg unhghlghtd border BorderTileForeground "black" # pattern fg unhghlghtd border IconBackground "white" # bg of icons IconBorderColor "black" # border of icons IconForeground "black" # fg of icons IconManagerBackground "white" # bg of icon manager entry IconManagerForeground "black" # fg of icon manager entry IconManagerHighlight "black" # icon mgr entry w/focus border MapWindowBackground "white" # bg of windows in wrkspce map MapWindowForeground "black" # fg of windows in wrkspce map TitleBackground "white" # bg in titlebars TitleForeground "black" # fg in titlebars } #------------------------------------------------------------ # RAISE AND RESIZE # AutoRelativeResize # resize without crossing window edge BorderResizeCursors # use resize cursor if pointer is on edge # NoRaiseOnResize # window not raised when resized NoOpaqueResize # resize a window outline (see next two) # OpaqueResize # resize [{win-list}] visible, not outline # OpaqueResizeThreshold 25 # visible unless win-size > percent of screen RaiseDelay 200 # ms to wait before autoraise invoked AutoRaise # list of windows to raise on focus { # also see RaiseDelay and f.autoraise "TWM Icon Manager" "WorkSpaceManager" } #------------------------------------------------------------ # MOVE # # NoRaiseOnMove # window not raised when moved NoOpaqueMove # move a window outline (see next two) # OpaqueMove # move [{win-list}] visible, not outline # OpaqueMoveThreshold 25 # visible unless win-size > percent of screen ConstrainedMoveTime 200 # ms double-click to move vert/horz only # DontMoveOff # unable to move win off screen (c f.forcemove) # MoveOffResistance 40 # if more than pixels off override DontMoveOff # MovePackResistance 20 # don't overlap unless pushed more than pixels MoveDelta 0 # num of pixels pointer to move before f.move # is invoked (also see f.deltastop) #------------------------------------------------------------ # OCCUPY # AutoOccupy # clients will change occupation # when name or icon name changes # Occupy # list which windows occupy which workspaces NoShowOccupyAll # window in all wrkpcs not seen in wkspmap OccupyAll { "emiclock" } #------------------------------------------------------------ # FUNCTIONS # FUNCTIONS MUST COME AFTER FONT VARIABLES # # ChangeWorkspaceFunction ! "sfplay /usr/share/src/Inventor/GamesCD/Games/linkatron/sounds/click3.aiff" ChangeWorkspaceFunction ! "sfplay /usr/share/data/sounds/soundscheme/soundfiles/ss2.aifc" DeIconifyFunction ! "sfplay /usr/share/src/Inventor/GamesCD/Games/linkatron/sounds/click2.aiff" IconifyFunction ! "sfplay /usr/share/src/Inventor/GamesCD/Games/linkatron/sounds/click2.aiff" DefaultFunction f.nop # action to take on unbound event # WindowFunction ! "sfplay /usr/share/data/sounds/soundscheme/soundfiles/08.ting.aifc" Function "move-or-raise" # simulate uwm action { f.move f.deltastop f.raise } Function "move-or-lower" # simulate uwm action { f.move f.deltastop f.lower } Function "move-or-stack" # simulate uwm action { f.move f.deltastop f.raiselower } Function "resize-or-raise" { f.resize f.deltastop f.raise } Function "resize-or-lower" { f.resize f.deltastop f.lower } #------------------------------------------------------------ # MOUSE BINDINGS # Button1 = : root : f.menu "windowops" Button2 = : root : f.menu "programs" Button3 = : root : f.menu "connections" Button1 = : title : f.function "move-or-raise" Button2 = : title : f.function "move-or-lower" Button3 = : title : f.function "move-or-stack" Button1 = : frame : f.function "resize-or-raise" Button2 = : frame : f.function "move-or-lower" Button3 = : title|frame : f.menu "windowops" Button1 = : icon : f.iconify Button2 = : icon : f.iconify Button3 = : icon : f.iconify Button1 = : iconmgr : f.iconify Button2 = : iconmgr : f.iconify Button3 = : iconmgr : f.iconify "Tab" = m : all : f.rightworkspace # Warp to (left) right WS with "Tab" = s | m : all : f.leftworkspace # (shift)-alt Tab (Windows deja-vu!) # "Up" = control : all : f.nextworkspace # "Down" = control : all : f.nextworkspace # "Right" = control : all : f.warpring "next" # "Left" = control : all : f.warpring "next" #------------------------------------------------------------ # MENUS # menu "windowops" { "Ctwm" f.title "Iconify" f.iconify "Resize" f.resize "Move" f.move "Raise" f.raise "Lower" f.lower "Refresh" f.winrefresh "" f.nop "Kill" f.menu "kill" "" f.nop "Exit" f.menu "out" } menu "kill" { "Kill!" f.title "Close" f.delete "" f.nop "Kill" f.destroy } menu "out" { "Bai!" f.title "Restart" f.restart "" f.nop "Logout" f.quit } menu "programs" { "Programs" f.title "xpaint" f.exec "/usr/local/bin/xpaint &" "xv" f.exec "/usr/local/bin/xv &" "Calculator" f.exec "/usr/bin/X11/xcalc &" "Netscape" f.exec "/g6c/marco/bin/netscape &" } menu "connections" { "Connect" f.title "Secure" f.menu "secure" "" f.nop "Open" f.menu "open" } menu "secure" { "Secure" f.title "Xterm" f.exec "/usr/bin/X11/xterm -ls -fn 7x13bold -title 'xterm@seabreeze' &" "" f.nop "Koneeko" f.exec "xterm -fn 7x13bold -title 'koneeko (ssh2)' -e ssh2 pc40 &" "" f.nop "Gyre" f.exec "xterm -fn 7x13bold -title 'gyre (ssh2)' -e ssh2 gyre &" "Gyre (root)" f.exec "xterm -fn 7x13bold -title 'root@gyre (ssh2)' -e ssh2 gyre -l root &" } menu "open" { "Open" f.title "Chinook" f.exec "xterm -fn 7x13bold -title 'chinook (open)' -e rlogin chinook &" "" f.nop "Plume" f.exec "xterm -fn 7x13bold -title 'plume (open)' -e rlogin plume &" "" f.nop "Gyre" f.exec "xterm -fn 7x13bold -title 'gyre (open)' -e rlogin gyre &" "" f.nop "Koneeko" f.exec "xterm -fn 7x13bold -title 'koneeko (open)' -e rlogin pc40 &" "" f.nop "Helios" f.exec "xterm -fn 7x13bold -title 'helios (open)' -e rlogin helios &" }