469 lines
12 KiB
Plaintext
469 lines
12 KiB
Plaintext
#
|
|
# $NetBSD: system.ctwmrc,v 1.13 2021/04/11 11:05:49 nia Exp $
|
|
#
|
|
# ctwmrc by nia
|
|
#
|
|
# An attempt to strike a usability balance that makes keys and buttons
|
|
# do the thing users of various operating systems expect them to do.
|
|
#
|
|
# Most things should be possible to accomplish with only the keyboard.
|
|
#
|
|
# Also, mostly inoffensive colours (avoiding potentially inaccessible
|
|
# combinations like red-green).
|
|
#
|
|
|
|
# don't use the default buttons or key bindings, we define our own
|
|
NoDefaults
|
|
|
|
DontShowWelcomeWindow
|
|
|
|
ShowWorkSpaceManager
|
|
ShowIconManager
|
|
|
|
# 3D icon managers do not seemingly honor IconManagerHighlight,
|
|
# which makes them slightly less useful
|
|
#UseThreeDIconManagers
|
|
#UseThreeDWMap
|
|
UseThreeDBorders
|
|
#UseThreeDMenus
|
|
UseThreeDTitles
|
|
|
|
esyscmd(`printf "define(fontsize, %d)\n" "$(/usr/X11R7/libexec/ctwm_font_size)"')
|
|
|
|
ifelse(fontsize, `64', `
|
|
TitleFont "-*-spleen-*-*-*-*-64-*-*-*-*-*-*-*"
|
|
MenuFont "-*-spleen-*-*-*-*-64-*-*-*-*-*-*-*"
|
|
IconManagerFont "-*-spleen-*-*-*-*-64-*-*-*-*-*-*-*"
|
|
IconFont "-*-spleen-*-*-*-*-64-*-*-*-*-*-*-*"
|
|
ResizeFont "-*-spleen-*-*-*-*-64-*-*-*-*-*-*-*"
|
|
WorkSpaceFont "-*-spleen-*-*-*-*-32-*-*-*-*-*-*-*"
|
|
WorkSpaceManagerGeometry "240x960-4-4" 1
|
|
IconManagerGeometry "800x-1-1+27" 1
|
|
ThreeDBorderWidth 12
|
|
BorderWidth 12
|
|
define(setsizes, `yes')
|
|
')
|
|
|
|
ifelse(fontsize, `32', `
|
|
TitleFont "-*-spleen-*-*-*-*-32-*-*-*-*-*-*-*"
|
|
MenuFont "-*-spleen-*-*-*-*-32-*-*-*-*-*-*-*"
|
|
IconManagerFont "-*-spleen-*-*-*-*-32-*-*-*-*-*-*-*"
|
|
IconFont "-*-spleen-*-*-*-*-32-*-*-*-*-*-*-*"
|
|
ResizeFont "-*-spleen-*-*-*-*-32-*-*-*-*-*-*-*"
|
|
WorkSpaceFont "-*-spleen-*-*-*-*-24-*-*-*-*-*-*-*"
|
|
WorkSpaceManagerGeometry "120x480-4-4" 1
|
|
IconManagerGeometry "400x-1-1+27" 1
|
|
ThreeDBorderWidth 6
|
|
BorderWidth 6
|
|
define(setsizes, `yes')
|
|
')
|
|
|
|
ifelse(fontsize, `24', `
|
|
TitleFont "-*-spleen-*-*-*-*-24-*-*-*-*-*-*-*"
|
|
MenuFont "-*-spleen-*-*-*-*-24-*-*-*-*-*-*-*"
|
|
IconManagerFont "-*-spleen-*-*-*-*-24-*-*-*-*-*-*-*"
|
|
IconFont "-*-spleen-*-*-*-*-24-*-*-*-*-*-*-*"
|
|
ResizeFont "-*-spleen-*-*-*-*-24-*-*-*-*-*-*-*"
|
|
WorkSpaceFont "-*-spleen-*-*-*-*-16-*-*-*-*-*-*-*"
|
|
WorkSpaceManagerGeometry "90x360-4-4" 1
|
|
IconManagerGeometry "300x-1-1+27" 1
|
|
ThreeDBorderWidth 4
|
|
BorderWidth 4
|
|
define(setsizes, `yes')
|
|
')
|
|
|
|
ifelse(fontsize, `12', `
|
|
TitleFont "-*-spleen-*-*-*-*-12-*-*-*-*-*-*-*"
|
|
MenuFont "-*-spleen-*-*-*-*-12-*-*-*-*-*-*-*"
|
|
IconManagerFont "-*-spleen-*-*-*-*-12-*-*-*-*-*-*-*"
|
|
IconFont "-*-spleen-*-*-*-*-12-*-*-*-*-*-*-*"
|
|
ResizeFont "-*-spleen-*-*-*-*-12-*-*-*-*-*-*-*"
|
|
WorkSpaceFont "-*-spleen-*-*-*-*-8-*-*-*-*-*-*-*"
|
|
WorkSpaceManagerGeometry "45x180-4-4" 1
|
|
IconManagerGeometry "150x-1-1+27" 1
|
|
ThreeDBorderWidth 1
|
|
BorderWidth 1
|
|
define(setsizes, `yes')
|
|
')
|
|
|
|
# Fallback in case a valid font size was not returned.
|
|
# "Default case" is 16px.
|
|
|
|
ifdef(`setsizes', `', `
|
|
TitleFont "-*-spleen-*-*-*-*-16-*-*-*-*-*-*-*"
|
|
MenuFont "-*-spleen-*-*-*-*-16-*-*-*-*-*-*-*"
|
|
IconManagerFont "-*-spleen-*-*-*-*-16-*-*-*-*-*-*-*"
|
|
IconFont "-*-spleen-*-*-*-*-16-*-*-*-*-*-*-*"
|
|
ResizeFont "-*-spleen-*-*-*-*-16-*-*-*-*-*-*-*"
|
|
WorkSpaceFont "-*-spleen-*-*-*-*-12-*-*-*-*-*-*-*"
|
|
WorkSpaceManagerGeometry "60x240-4-4" 1
|
|
IconManagerGeometry "200x-1-1+31" 1
|
|
ThreeDBorderWidth 3
|
|
BorderWidth 3
|
|
')
|
|
|
|
RestartPreviousState
|
|
|
|
DecorateTransients
|
|
|
|
# allow the user to have their root window recolored as they choose
|
|
DontPaintRootWindow
|
|
|
|
# hide window contents while altering windows for performance
|
|
NoOpaqueMove
|
|
NoOpaqueResize
|
|
|
|
AutoOccupy
|
|
AutoRelativeResize
|
|
|
|
CenterFeedbackWindow
|
|
|
|
NoGrabServer
|
|
|
|
RaiseOnClick
|
|
|
|
DontMoveOff
|
|
MoveOffResistance 150
|
|
|
|
ConstrainedMoveTime 0
|
|
|
|
IgnoreLockModifier
|
|
|
|
# Not actually that random.
|
|
# Means that windows do not have to be placed by hand with a mouse,
|
|
# which helps if you are using a keyboard only.
|
|
RandomPlacement "on"
|
|
|
|
MoveDelta 3
|
|
ClearShadowContrast 40
|
|
DarkShadowContrast 60
|
|
MovePackResistance 100
|
|
|
|
RaiseWhenAutoUnSqueeze
|
|
ShortAllWindowsMenus
|
|
|
|
#BeNiceToColorMap
|
|
|
|
NoStackMode
|
|
|
|
StayUpMenus
|
|
WarpToDefaultMenuEntry
|
|
MenuShadowDepth 1
|
|
|
|
TitleFocus
|
|
|
|
# warp through all windows in the current workspace
|
|
WindowRing
|
|
WarpRingOnScreen
|
|
|
|
NoTitleHighlight
|
|
|
|
TitleButtonShadowDepth 1
|
|
TitleShadowDepth 1
|
|
TitleButtonBorderWidth 0
|
|
TitlePadding 0
|
|
TitleJustification "left"
|
|
ButtonIndent 0
|
|
FramePadding 0
|
|
|
|
LeftTitleButton ":xpm:dot" = f.menu "titleops"
|
|
RightTitleButton ":xpm:iconify" = f.iconify
|
|
RightTitleButton ":xpm:bar" = f.fullzoom
|
|
RightTitleButton ":xpm:cross" = f.delete
|
|
|
|
BorderShadowDepth 2
|
|
BorderResizeCursors
|
|
|
|
MaxIconTitleWidth 120
|
|
NoIconManagerFocus
|
|
IconManagerShadowDepth 1
|
|
IconifyByUnmapping
|
|
|
|
ReallyMoveInWorkspaceManager
|
|
MapWindowCurrentWorkSpace { "black" "firebrick" }
|
|
DontToggleWorkSpaceManagerState
|
|
DontWarpCursorInWMap
|
|
NoShowOccupyAll
|
|
ReverseCurrentWorkspace
|
|
StartInMapState
|
|
WMgrHorizButtonIndent 0
|
|
WMgrVertButtonIndent 0
|
|
|
|
WorkSpaces
|
|
{
|
|
"1" { "lavender" "black" "darkslateblue" "white" }
|
|
"2" { "lavender" "black" "darkslateblue" "white" }
|
|
"3" { "lavender" "black" "darkslateblue" "white" }
|
|
"4" { "lavender" "black" "darkslateblue" "white" }
|
|
"5" { "lavender" "black" "darkslateblue" "white" }
|
|
}
|
|
|
|
Cursors
|
|
{
|
|
Frame "left_ptr"
|
|
Title "left_ptr"
|
|
Icon "left_ptr"
|
|
IconMgr "left_ptr"
|
|
Move "fleur"
|
|
Resize "fleur"
|
|
Menu "left_ptr"
|
|
Button "hand2"
|
|
Wait "watch"
|
|
Select "dot"
|
|
Destroy "pirate"
|
|
}
|
|
|
|
Color
|
|
{
|
|
BorderColor "firebrick"
|
|
|
|
BorderTileBackground "steelblue"
|
|
BorderTileForeground "steelblue"
|
|
|
|
DefaultBackground "grey70"
|
|
DefaultForeground "black"
|
|
|
|
TitleBackground "lavender"
|
|
TitleForeground "black"
|
|
|
|
MenuBackground "lavender"
|
|
MenuForeground "black"
|
|
MenuTitleBackground "crimson"
|
|
MenuTitleForeground "white"
|
|
MenuShadowColor "gray15"
|
|
|
|
IconBackground "black"
|
|
IconForeground "white"
|
|
IconBorderColor "gray45"
|
|
|
|
IconManagerBackground "lavender"
|
|
IconManagerForeground "black"
|
|
IconManagerHighlight "firebrick"
|
|
|
|
MapWindowBackground "lavender"
|
|
MapWindowForeground "black"
|
|
}
|
|
|
|
Monochrome
|
|
{
|
|
BorderColor "black"
|
|
|
|
BorderTileForeground "black"
|
|
BorderTileBackground "white"
|
|
|
|
TitleForeground "black"
|
|
TitleBackground "white"
|
|
|
|
MenuForeground "black"
|
|
MenuBackground "white"
|
|
MenuTitleForeground "black"
|
|
MenuTitleBackground "white"
|
|
|
|
MapWindowForeground "white"
|
|
MapWindowBackground "white"
|
|
}
|
|
|
|
menu "Debian"
|
|
{
|
|
"Debian" f.title
|
|
"" f.separator
|
|
" Terminal" !"urxvt &"
|
|
" Emacs" !"emacs &"
|
|
" Firefox" !"firefox &"
|
|
" Calculator" !"xcalc &"
|
|
" Clock" !"xclock -digital &"
|
|
" XEyes" !"xeyes &"
|
|
"" f.separator
|
|
" Restart CTWM" f.twmrc
|
|
" Quit" f.quit
|
|
}
|
|
|
|
syscmd(/usr/X11R7/libexec/ctwm_app_menu)
|
|
|
|
menu "titleops"
|
|
{
|
|
"Window" f.title
|
|
"" f.separator
|
|
" Iconify" f.iconify
|
|
" Resize" f.resize
|
|
" Move" f.move
|
|
"" f.separator
|
|
" Occupy ..." f.occupy
|
|
" Occupy All" f.occupyall
|
|
"" f.separator
|
|
" Raise" f.raise
|
|
" Lower" f.lower
|
|
"" f.separator
|
|
" Zoom" f.fullzoom
|
|
" Zoom-V" f.zoom
|
|
" Zoom-H" f.horizoom
|
|
"" f.separator
|
|
" Kill" f.destroy
|
|
" Close" f.delete
|
|
}
|
|
|
|
IconManagerDontShow
|
|
{
|
|
"polybar*"
|
|
}
|
|
|
|
OccupyAll
|
|
{
|
|
"XClock"
|
|
"xsm"
|
|
"xconsole"
|
|
"XVidCap"
|
|
"polybar*"
|
|
}
|
|
|
|
AlwaysOnTop
|
|
{
|
|
"xclock"
|
|
"XEyes"
|
|
"XVidCap"
|
|
}
|
|
|
|
NoTitle
|
|
{
|
|
"TWM Icon Manager"
|
|
"WorkSpaceManager"
|
|
"polybar*"
|
|
}
|
|
|
|
WindowRingExclude
|
|
{
|
|
"TWM Icon Manager"
|
|
"WorkSpaceManager"
|
|
"XClock"
|
|
"xsm"
|
|
"xconsole"
|
|
"polybar*"
|
|
}
|
|
|
|
StartIconified
|
|
{
|
|
}
|
|
|
|
NoBorder
|
|
{
|
|
"TWM Icon Manager"
|
|
"polybar*"
|
|
}
|
|
|
|
Function "raise-move" { f.raise f.deltastop f.forcemove }
|
|
Function "raise-and-resize" { f.raise f.deltastop f.resize }
|
|
|
|
# These are basically essential for basic functionality.
|
|
|
|
Button1 = : title : f.function "raise-move"
|
|
Button2 = : title : f.function "raise-and-resize"
|
|
Button3 = : title | frame : f.menu "titleops"
|
|
|
|
Button1 = : frame : f.function "raise-and-resize"
|
|
|
|
Button1 = : icon | iconmgr : f.iconify
|
|
Button2 = : icon : f.move
|
|
Button3 = : icon | iconmgr : f.raiselower
|
|
|
|
Button1 = : root : f.menu "Debian"
|
|
Button2 = : root : f.menu "TwmAllWindows"
|
|
Button3 = : root : f.menu "Debian"
|
|
|
|
#
|
|
# Mod1 is the "Alt/Meta" key.
|
|
# Mod4 is the "OS" key.
|
|
#
|
|
|
|
Button1 = mod1 : window : f.forcemove
|
|
Button1 = mod4 : window : f.forcemove
|
|
Button3 = mod1 : window : f.resize
|
|
Button3 = mod4 : window : f.resize
|
|
|
|
"Up" = mod4 : all : f.upworkspace
|
|
"Down" = mod4 : all : f.downworkspace
|
|
"Left" = mod4 : all : f.prevworkspace
|
|
"Right" = mod4 : all : f.nextworkspace
|
|
|
|
"Up" = mod1 | control : all : f.upworkspace
|
|
"Down" = mod1 | control : all : f.downworkspace
|
|
"Left" = mod1 | control : all : f.prevworkspace
|
|
"Right" = mod1 | control : all : f.nextworkspace
|
|
|
|
"1" = mod1 | control : all : f.gotoworkspace "1"
|
|
"2" = mod1 | control : all : f.gotoworkspace "2"
|
|
"3" = mod1 | control : all : f.gotoworkspace "3"
|
|
"4" = mod1 | control : all : f.gotoworkspace "4"
|
|
"5" = mod1 | control : all : f.gotoworkspace "5"
|
|
"6" = mod1 | control : all : f.gotoworkspace "6"
|
|
"7" = mod1 | control : all : f.gotoworkspace "7"
|
|
"8" = mod1 | control : all : f.gotoworkspace "8"
|
|
"9" = mod1 | control : all : f.gotoworkspace "9"
|
|
|
|
"1" = mod4 : all : f.gotoworkspace "1"
|
|
"2" = mod4 : all : f.gotoworkspace "2"
|
|
"3" = mod4 : all : f.gotoworkspace "3"
|
|
"4" = mod4 : all : f.gotoworkspace "4"
|
|
"5" = mod4 : all : f.gotoworkspace "5"
|
|
"6" = mod4 : all : f.gotoworkspace "6"
|
|
"7" = mod4 : all : f.gotoworkspace "7"
|
|
"8" = mod4 : all : f.gotoworkspace "8"
|
|
"9" = mod4 : all : f.gotoworkspace "9"
|
|
|
|
"XF86AudioRaiseVolume" = : all : !"amixer -q sset Master,0 5%+ unmute"
|
|
"XF86AudioLowerVolume" = : all : !"amixer -q sset Master,0 5%- unmute"
|
|
"XF86AudioMute" = : all : !"amixer -q sset Master,0 toggle"
|
|
|
|
#
|
|
# "Windows" style keyboard shortcuts
|
|
#
|
|
|
|
"Tab" = mod1 : all : f.warpring "next"
|
|
"Tab" = mod1 | s : all : f.warpring "prev"
|
|
"Tab" = mod4 : all : f.warpring "next"
|
|
"Tab" = mod4 | s : all : f.warpring "prev"
|
|
#"space" = mod1 : window : f.menu "titleops"
|
|
"F4" = mod1 : window : f.delete
|
|
|
|
"space" = mod1 : all : !"rofi -show combi -theme Paper"
|
|
|
|
#
|
|
# "Mac" style keyboard shortcuts
|
|
#
|
|
|
|
"w" = mod4 : window : f.delete
|
|
"m" = mod4 : window : f.iconify
|
|
|
|
#
|
|
# "evilwm" style keyboard shortcuts
|
|
#
|
|
|
|
# it is useful to be able to spawn a terminal without clicking.
|
|
"Return" = mod1 | c : all : !"uxterm &"
|
|
"Return" = mod4 | s : all : !"uxterm &"
|
|
|
|
"slash" = mod1 | c : all : f.menu "TwmAllWindows"
|
|
"slash" = mod4 : all : f.menu "TwmAllWindows"
|
|
"p" = mod1 | c : all : f.menu "NetBSD"
|
|
"p" = mod4 : all : f.menu "NetBSD"
|
|
|
|
# vi-style directions
|
|
"j" = mod1 | control : window : f.jumpdown "10"
|
|
"k" = mod1 | control : window : f.jumpup "10"
|
|
"h" = mod1 | control : window : f.jumpleft "10"
|
|
"l" = mod1 | control : window : f.jumpright "10"
|
|
|
|
"j" = mod4 : window : f.jumpdown "10"
|
|
"k" = mod4 : window : f.jumpup "10"
|
|
"h" = mod4 : window : f.jumpleft "10"
|
|
"l" = mod4 : window : f.jumpright "10"
|
|
|
|
"j" = mod4 | s : window : f.changesize "bottom +10"
|
|
"k" = mod4 | s : window : f.changesize "bottom -10"
|
|
"h" = mod4 | s : window : f.changesize "right -10"
|
|
"l" = mod4 | s : window : f.changesize "right +10"
|
|
|
|
"j" = mod1 | c | s : window : f.changesize "bottom +10"
|
|
"k" = mod1 | c | s : window : f.changesize "bottom -10"
|
|
"h" = mod1 | c | s : window : f.changesize "right -10"
|
|
"l" = mod1 | c | s : window : f.changesize "right +10"
|