diff options
Diffstat (limited to 'twmrc')
-rw-r--r-- | twmrc | 346 |
1 files changed, 346 insertions, 0 deletions
@@ -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 +} |