Image of the glider from the Game of Life by John Conway
Skip to content

My Tmux Hardstatus Theme

Recently, I've made the switch from GNU Screen to Tmux for my remote terminal multiplexor. I still prefer GNU Screen for serial connections, however (something the Tmux developers don't seem to think is important). So, when getting it setup, I wanted my hardstatus line to imitate my GNU Screen hardstatus line as closely as possible. Well, I got it to that point, then took it even further to work with my custom Irssi and ZSH themes (I want everything to tie in nicely). The only thing left is getting Mutt in order, but that's for another post.

At any event, here is the configuration for the theme:

# hardstatus line theme
set-option -g status-fg white
set-option -g status-bg default
set-option -g status-justify centre
set-option -g status-left-length 13
set-option -g status-left '#[fg=green][ #[fg=black,bright]#h #[fg=green,nobright]][#[default]'
set-option -g status-right-length 16
set-option -g status-right '#[fg=green]][ #[fg=black,bright]%m/%d %H:%M #[fg=green,nobright]]#[fg=default]'
set-window-option -g window-status-current-format '#[fg=red,bg=default]( #[fg=white,bright,bg=default]#I:#W#[fg=red,nobright,bg=default] )#[fg=default]'
set-window-option -g window-status-alert-attr bold
set-window-option -g window-status-alert-fg yellow
set-window-option -g window-status-alert-bg default

Obviously, this won't look that great on a terminal with a white background (or really any color other than black). And here is the screenshot:

As you can clearly see, the active window you're under is bold white with red parentheses around the window name. The previous window you were in is marked with a dash '-' (by default). An alert in a terminal will change the text to bold yellow, so long as you're not in that window (as you can see with the "mutt" window). It ties in nicely with the 88_madcows.theme file for Irssi, and the ZSH theme I built.

I'm new to building Tmux hardstatus lines, so if there is something I should be doing differently, let me know.

{ 2 } Comments