dotfiles/link/.ctwmrc

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"