Best of All Possible Worlds, stackers + tiling urxvt
Posted: Sat Jul 06, 2013 2:57 pm
I do things like I do things without regard for how anyone else feels about it. For the past little while, I've been using cwm as my wm, because it's really a great little stacking WM. I like stackers. Everything that I want tiling in, is cli-based (emacs -nw, because emacs with X is bloat...and I can make a pretty mean IDE with a few terminal windows and emacs.)
So, I use a menu option for cwm to launch urxvt with tmux already booted up. Just append into your .cwmrc
to get the awesome right-clickable terminal-launching monstrosity.
You can set the size of urxvt through .Xresources via geometry (which will need to be sourced via .xinitrc on boot to create a nice, seamless boot) so that when you go to use it, it can be close to fullscreen. Since I'm doing this in X, I figure I might as well use the mouse for something, so I tricked out my tmux to allow me to click from window to window and have mouse-draggable borders:
I use a bunch of GNU/screen styled hotkeys, because that's what I'm used to using, but you can use whatever makes you happy. I guess that if you suck, you can use dvtm by using the "urxvt -e dvtm" instead of tmux. Tmux is better, though, and you can use (C^a M^5) to make it auto-tile, or drag the boarders around, or use the splits (C^a [M^% or M^|}) to break it up however you need for a particular purpose.
I know, I know. Tmux is bloat, X is bloat, and .xinit is bloat....but this is the best way I've found to get all of the sweet functionality that I'd use in dwm, but without having to rebuild everything every time I want to change something.
Screenshots of nothingness: The Suck is Left, the Awesome is Right. Choose wisely.
So, I use a menu option for cwm to launch urxvt with tmux already booted up. Just append into your .cwmrc
Code: Select all
command tmux+urxvt "urxvt -e tmux"
You can set the size of urxvt through .Xresources via geometry (which will need to be sourced via .xinitrc on boot to create a nice, seamless boot) so that when you go to use it, it can be close to fullscreen. Since I'm doing this in X, I figure I might as well use the mouse for something, so I tricked out my tmux to allow me to click from window to window and have mouse-draggable borders:
Code: Select all
#Joe's Tmux Config
# Set the prefix to ^A.
unbind C-b
set -g prefix ^A
bind a send-prefix
# panes
set -g mouse-select-pane on
set -g pane-border-fg black
set -g pane-active-border-fg cyan
# resize panes with mouse (drag borders)
set -g mouse-select-pane on
set -g mouse-resize-pane on
# screen ^C c
unbind ^C
bind ^C new-window
unbind c
bind c new-window
# detach ^D d
unbind ^D
bind ^D detach
# displays *
unbind *
bind * list-clients
# next ^@ ^N sp n
unbind ^@
bind ^@ next-window
unbind ^N
bind ^N next-window
unbind " "
bind " " next-window
unbind n
bind n next-window
# title A
unbind A
bind A command-prompt "rename-window %%"
# other ^A
unbind ^A
bind ^A last-window
# prev ^H ^P p ^?
unbind ^H
bind ^H previous-window
unbind ^P
bind ^P previous-window
unbind p
bind p previous-window
unbind BSpace
bind BSpace previous-window
# windows ^W w
unbind ^W
bind ^W list-windows
unbind w
bind w list-windows
# quit \
unbind '\'
bind '\' confirm-before "kill-server"
# kill K k
unbind K
bind K confirm-before "kill-window"
unbind k
bind k confirm-before "kill-window"
# redisplay ^L l
unbind ^L
bind ^L refresh-client
unbind l
bind l refresh-client
# split -v |
unbind |
bind | split-window
# :kB: focus up
unbind Tab
bind Tab select-pane -t:.+
unbind BTab
bind BTab select-pane -t:.-
# " windowlist -b
unbind '"'
bind '"' choose-window
I know, I know. Tmux is bloat, X is bloat, and .xinit is bloat....but this is the best way I've found to get all of the sweet functionality that I'd use in dwm, but without having to rebuild everything every time I want to change something.
Screenshots of nothingness: The Suck is Left, the Awesome is Right. Choose wisely.