summaryrefslogtreecommitdiff
path: root/twmrc
diff options
context:
space:
mode:
Diffstat (limited to 'twmrc')
-rw-r--r--twmrc346
1 files changed, 346 insertions, 0 deletions
diff --git a/twmrc b/twmrc
new file mode 100644
index 0000000..5bbabb4
--- /dev/null
+++ b/twmrc
@@ -0,0 +1,346 @@
+# -*- conf -*-
+#
+# TWM init file using twm 1.0.11 on VirtualBox GNU/Linux guest.
+# - Adrian C. <anrxc..sysphere.org>
+#
+# Screenshot:
+# - https://sysphere.org/gallery/snapshots/omnic-seamless.png.html
+#
+# FAQ:
+# 1. Why:
+# - If you are forced to use Windows (or MacOS) at work even
+# 1440p guests with TWM in seamless mode will have minimum
+# overhead and need only 32MB video memory allocated.
+#
+# 2. Titlebar icons are from Graham's TWM page:
+# - http://www.custompc.plus.com/twm/
+#
+# 3. Mouse pointers for Windows 10 integration:
+# - https://www.gnome-look.org/p/1409346/
+#
+# 4. Where is the rest (Xdefaults, xinit):
+# - https://git.sysphere.org/dotfiles/tree
+#
+# 5. Fonts I use:
+# - http://terminus-font.sourceforge.net/
+# - http://artwizaleczapka.sourceforge.net/
+# - https://tobiasjung.name/profont/
+# - https://github.com/liberationfonts
+#
+# 6. What is Zenburn:
+# - https://kippura.org/zenburnpage/
+#
+# This work is licensed under the Creative Commons Attribution
+# License: http://creativecommons.org/licenses/by/2.0/
+
+
+#
+# Base configuration
+#
+NoDefaults
+NoGrabServer
+#RestartPreviousState
+DecorateTransients
+TitleFont "-xos4-terminus-*-*-*-*-*-120-*-*-*-*-*-*"
+ResizeFont "-xos4-terminus-*-*-*-*-*-120-*-*-*-*-*-*"
+MenuFont "-xos4-terminus-*-*-*-*-*-120-*-*-*-*-*-*"
+IconFont "-xos4-terminus-*-*-*-*-*-120-*-*-*-*-*-*"
+IconManagerFont "-xos4-terminus-*-*-*-*-*-120-*-*-*-*-*-*"
+#ClientBorderWidth
+DontMoveOff
+IconifyByUnmapping
+WarpUnmapped
+#RandomPlacement
+ButtonIndent 0
+FramePadding 3
+NoTitleHighlight
+TitlePadding 2
+TitleButtonBorderWidth 0
+BorderWidth 1
+MenuBorderWidth 1
+NoMenuShadows
+#NoHighlight
+#AutoRelativeResize
+##DefaultBackground "white"
+ForceIcons
+#NoRaiseOnMove
+OpaqueMove
+MoveDelta3
+# - with vdesk we don't need you ('Show Iconmgr' menu still there)
+#ShowIconManager
+#StartIconified { "someapp" }
+
+
+#
+# Apps with no decorations
+#
+NoTitle { "scratchpad" "TWM Icon Manager" }
+NoHighlight { "scratchpad" "TWM Icon Manager" }
+IconManagerDontShow { "scratchpad" "TWM Icon Manager" }
+
+
+# #
+# # Zenburn Theme
+# #
+# Color
+# {
+# BorderColor "#6F6F6F"
+# BorderTileBackground "#3F3F3F"
+# BorderTileForeground "#3F3F3F"
+# DefaultBackground "#3F3F3F"
+# DefaultForeground "#DCDCCC"
+# TitleBackground "#1E2320"
+# TitleForeground "#F0DFAF"
+# MenuBackground "#3F3F3F"
+# MenuForeground "#DCDCCC"
+# MenuTitleBackground "#1E2320"
+# MenuTitleForeground "#F0DFAF"
+# IconBackground "#1E2320"
+# IconForeground "#F0DFAF"
+# IconBorderColor "#6F6F6F"
+# IconManagerBackground "#1E2320"
+# IconManagerForeground "#F0DFAF"
+# }
+
+
+#
+# Windows 10 Dark Theme [seamless]
+#
+Color
+{
+ DefaultBackground "#222222"
+ DefaultForeground "#FFFFFF"
+ MenuBackground "#222222"
+ MenuForeground "#FFFFFF"
+ MenuBorderColor "#9E9FA1"
+ MenuTitleBackground "#575759"
+ MenuTitleForeground "#FFFFFF"
+ IconBackground "#575759"
+ IconForeground "#FFFFFF"
+ IconBorderColor "#9E9FA1"
+ IconManagerBackground "#222222"
+ IconManagerForeground "#FFFFFF"
+ # Borders
+ # - if you predominantly use 1 seamless window it will always be
+ # considered "focused" so it will have the light border even
+ # when unfocused on the host, in which case it might be better
+ # to flip the colors around
+ #BorderColor "#9E9FA1"
+ #BorderTileBackground "#2D3033"
+ #BorderTileForeground "#2D3033"
+ BorderColor "#2D3033"
+ BorderTileBackground "#9E9FA1"
+ BorderTileForeground "#9E9FA1"
+ # Titlebars
+ # - Firefox is too busy Dark themed, but it's one window that's
+ # always visible and we might want to blend with it even when
+ # native theme is "Dark" but Firefox still uses "Light"
+ #TitleBackground "#000000"
+ #TitleForeground "#FFFFFF"
+ TitleBackground "#E3E4E6"
+ TitleForeground "#18191A"
+}
+
+
+#
+# Mouse pointer theme
+# - corresponds to Xcursor pointers
+#
+Cursors
+{
+ Button "hand2"
+ Menu "left_ptr"
+ Title "left_ptr"
+ Frame "left_ptr"
+ Icon "left_ptr"
+ IconMgr "hand2"
+ Move "fleur"
+ Resize "plus"
+ Wait "watch"
+ Destroy "pirate"
+# Select "dot"
+}
+
+
+#
+# Icon theme
+#
+IconDirectory "~/.icons/twm/graham"
+LeftTitleButton "resize.xbm" = f.resize
+RightTitleButton "minimize.xbm" = f.iconify
+RightTitleButton "maximize.xbm" = f.fullzoom
+RightTitleButton "close.xbm" = f.delete
+
+
+#
+# Motion-based actions configuration
+#
+Function "move-or-lower" { f.move f.deltastop f.lower }
+Function "move-or-raise" { f.move f.deltastop f.raise }
+Function "move-or-iconify" { f.move f.deltastop f.iconify }
+
+
+#
+# Key and button binding configuration
+#
+# - Mouse bindings
+Button1 = : root : f.menu "mainmenu"
+Button2 = : root : f.menu "defops"
+#
+Button1 = c : window|icon : f.resize
+Button2 = c : window|icon : f.move
+Button3 = c : window|icon : f.iconify
+#
+Button1 = s : window|icon : f.raise
+Button3 = s : window|icon : f.lower
+#
+Button1 = : title : f.function "move-or-raise"
+Button2 = : title : f.raiselower
+Button3 = : title : f.function "move-or-lower"
+#
+Button2 = c : title : f.delete
+Button3 = c : title : f.destroy
+#
+Button1 = : icon : f.function "move-or-iconify"
+Button2 = : icon : f.iconify
+#
+Button1 = : iconmgr : f.iconify
+Button2 = : iconmgr : f.iconify
+
+# - Key bindings
+# * maximize awesomeMW style
+"m" = mod4 : all : f.fullzoom
+# * capture both kill methods (win and awesomeWM)
+"F4" = mod1 : all : f.delete
+"c" = mod4 : all : f.delete
+# * restart and quit awesomeWM style
+"r" = mod4 | s : all : f.restart
+"q" = mod4 | s : all : f.quit
+# * launch Emacs awesomeWM style
+"e" = mod4 : all : f.exec "LANG=en_US.UTF-8 xterm -geometry 175x75+700+150 -T Emacs -e emacs &"
+# * launch a terminal awesomeWM style
+"F1" = mod1 : all : f.exec "LANG=en_US.UTF-8 xterm -geometry 190x50+700+150 -T xterm &"
+# * hide a window by iconifying
+"h" = mod4 : all : f.iconify
+# * switch virtual desktop/tag
+"1" = mod4 : all : f.exec "vdesk 1"
+"2" = mod4 : all : f.exec "vdesk 2"
+"3" = mod4 : all : f.exec "vdesk 3"
+"4" = mod4 : all : f.exec "vdesk 4"
+"5" = mod4 : all : f.exec "vdesk 5"
+"6" = mod4 : all : f.exec "vdesk 6"
+"7" = mod4 : all : f.exec "vdesk 7"
+"8" = mod4 : all : f.exec "vdesk 8"
+"9" = mod4 : all : f.exec "vdesk 9"
+# * move window to virtual desktop/tag awesomeWM style
+# - $ vdesk [DESKTOP] $(xdpyinfo | sed -ne 's/^focus:.*\(0x[^,]\+\).*/\1/p')
+"1" = mod4 | s : all : f.exec "~/code/bin/move-vdesk 1"
+"2" = mod4 | s : all : f.exec "~/code/bin/move-vdesk 2"
+"3" = mod4 | s : all : f.exec "~/code/bin/move-vdesk 3"
+"4" = mod4 | s : all : f.exec "~/code/bin/move-vdesk 4"
+"5" = mod4 | s : all : f.exec "~/code/bin/move-vdesk 5"
+"6" = mod4 | s : all : f.exec "~/code/bin/move-vdesk 6"
+"7" = mod4 | s : all : f.exec "~/code/bin/move-vdesk 7"
+"8" = mod4 | s : all : f.exec "~/code/bin/move-vdesk 8"
+"9" = mod4 | s : all : f.exec "~/code/bin/move-vdesk 9"
+
+# - Copy/paste
+# * VBoxClient clipboard is unreliable with the cut buffer, even if
+# bridging the buffers with xclipboard it gets stuck. This is a
+# reliable workaround
+#
+# - intercepting Ctrl-c is impossible, use Alt+c and F1 for now and
+# see which one sticks in muscle memory
+#"c" = c : all : f.exec "xsel | xclip -selection clipboard"
+"c" = m : all : f.exec "xsel | xclip -selection clipboard"
+"F1" = : all : f.exec "xsel | xclip -selection clipboard"
+
+# - Alt+Tab and/or modN+j/k
+WindowRing
+{
+ "Links"
+ "xterm"
+ "urxvt"
+ "screen"
+ "zsh"
+ "irssi"
+ "Alpine"
+ "Emacs"
+ "scratchpad"
+}
+# - enable win style
+"Tab" = mod1 : all : f.warpring "next"
+# - enable awesomeWM j/k style too
+"j" = mod4 : all : f.warpring "next"
+"k" = mod4 : all : f.warpring "prev"
+
+# - Alt+Tilda (partial scratchpad/quaketerm emulation)
+Function "launch-scratchpad"
+{
+ f.exec "LANG=en_US.UTF-8 xterm -T scratchpad -geometry 320x20+320+1168 -e zsh &"
+ f.exec "xdotool mousemove 1200 1220"
+ f.raise
+}
+"grave" = mod1 : all : f.function "launch-scratchpad"
+
+
+#
+# Menu(s) configuration
+#
+menu "mainmenu"
+{
+ "Applications" f.title
+ "" f.nop
+ #"XTerm HDTV" f.exec "LANG=en_US.UTF-8 xterm -geometry 320x88+0+0 -e zsh &"
+ #"XTerm WQHD" f.exec "LANG=en_US.UTF-8 xterm -geometry 426x118+0+0 -e zsh &"
+ "XTerm" f.exec "LANG=en_US.UTF-8 xterm -geometry 190x50+100+100 -e zsh &"
+ "Emacs" f.exec "LANG=en_US.UTF-8 xterm -geometry 175x75+700+150 -T Emacs -e emacs &"
+ "Links" f.exec "LANG=en_US.UTF-8 xterm -geometry 175x75+700+150 -T Links -e links &"
+ "" f.nop
+ "XCalc" f.exec "xcalc -rpn &"
+ "XModmap" f.exec "xmodmap ${HOME}/.Xmodmap && xmodmap ${HOME}/.Xmodmap"
+ "XClipboard" f.exec "xclipboard &"
+ #"" f.nop
+ #"Submenu1" f.menu "submenu1_menu"
+ #"" f.nop
+ #"Submenu2" f.menu "submenu2_menu"
+ "" f.nop
+ "Logout" f.quit
+ "Restart" f.restart
+}
+
+#menu "submenu1_menu"
+#{
+# "Item1" f.exec "xterm -T 'Item1' -e /path/to/bin1 &"
+# "Item2" f.exec "xterm -T 'Item2' -e /path/to/bin2 &"
+#}
+
+#menu "submenu2_menu"
+#{
+# "Item1" f.exec "/path/to/bin1 &"
+# "Item2" f.exec "/path/to/bin2 &"
+#}
+
+menu "defops"
+{
+ "TWM" f.title
+ #
+ "Iconify" f.iconify
+ "Resize" f.resize
+ "Move" f.move
+ "Raise" f.raise
+ "Lower" f.lower
+ "" f.nop
+ "Focus" f.focus
+ "Unfocus" f.unfocus
+ "Show Iconmgr" f.showiconmgr
+ "Hide Iconmgr" f.hideiconmgr
+ "" f.nop
+ "Kill" f.destroy
+ "Delete" f.delete
+ "" f.nop
+ "Refresh" f.refresh
+ "" f.nop
+ "Restart" f.restart
+ "Exit" f.quit
+}