From 374572486f07d375ad11ff9049e42b3bfe406d92 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 23 Apr 2016 02:50:12 +1200 Subject: Allow specifying color for tmux --- tmux/tmux.conf.m4 | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 tmux/tmux.conf.m4 (limited to 'tmux/tmux.conf.m4') diff --git a/tmux/tmux.conf.m4 b/tmux/tmux.conf.m4 new file mode 100644 index 00000000..ac19ebe3 --- /dev/null +++ b/tmux/tmux.conf.m4 @@ -0,0 +1,137 @@ +# My tmux session is no-display land because I attach to it with all sorts of +# terminal clients, including PuTTY, so I don't always have X forwarding +# available and therefore it's not appropriate to set the display +set-environment -gru DISPLAY + +# Force the browser to be Lynx in case we inherited a non-null DISPLAY +set-environment -g BROWSER 'lynx' + +# The only environment variables I want tmux to update for me are SSH_CLIENT +# and SSH_CONNECTION, both of which are occasionally useful +set-option -g update-environment 'SSH_CLIENT SSH_CONNECTION' + +# Setting this prevents each new pane being a login shell, purely for +# efficiency reasons; I've not yet encountered a situation where I need tmux to +# create login shells +set-option -g default-command "$SHELL" + +# All of my terminals are 256 colors, so use the appropriate termcap/terminfo, +# and unset COLORFGBG and COLORTERM to stop programs getting confused +set-option -g default-terminal 'screen-256color' +set-environment -gru COLORFGBG +set-environment -gru COLORTERM + +# Change the prefix to ^A rather than the default of ^B, because I'm a godless +# GNU Screen refugee, and also I like using ^B in my shell and in Vim more +unbind-key C-b +set-option -g prefix C-a +bind-key a send-prefix + +# Repeating the prefix switches to the last window and back, a GNU Screen +# feature that's hardwired into my brain now +bind-key C-a last-window + +# Quick ways to kill single windows and the whole server +bind-key '/' confirm-before 'kill-window' +bind-key '\' confirm-before 'kill-server' + +# Slightly more intuitive way to split windows +bind-key '_' split-window -v +bind-key '|' split-window -h + +# Switch to the last active pane +bind-key Tab last-pane + +# Use the vi mode for tmux interaction behaviour in copy and choice modes +set-window-option -g mode-keys vi + +# Detach with Alt-M, no prefix required +bind-key -n M-m detach + +# Vim-like pane resizing +bind-key -r '+' resize-pane -U 5 +bind-key -r '-' resize-pane -D 5 +bind-key -r '<' resize-pane -L 5 +bind-key -r '>' resize-pane -R 5 + +# Vim-like pane switching +bind-key h select-pane -L +bind-key j select-pane -D +bind-key k select-pane -U +bind-key l select-pane -R + +# Vim-like keys for visual mode and yanking therefrom +bind-key -t vi-copy 'v' begin-selection +bind-key -t vi-copy 'y' copy-selection +bind-key -t vi-copy Escape cancel + +# Join and break panes +bind-key J choose-window "join-pane -h -s '%%'" +bind-key B break-pane -d + +# Select only sessions in the choose-tree menu, not the whole tree of sessions +# and windows, I prefer to drill down +bind-key s choose-session + +# Session title on the left side of the status bar +set-option -g status-left '[#S] ' + +# Hostname and the current date on the right side of the status bar +set-option -g status-right ' [#H] #(date +"%F %T")' + +# Update the status bar every second +set-option -g status-interval 1 + +# The first window in a session has index 1, rather than 0 +set-option -g base-index 1 + +# Don't worry about timeouts for key combinations, as I don't use Escape as +# meta and prefer things to be snappier +set-option -g escape-time 0 + +# Keep plenty of history +set-option -g history-limit 100000 + +# Don't interfere with my system clipboard +set-option -g set-clipboard off + +# Only force individual windows to the smallest attached terminal size, not +# whole sessions +set-window-option -g aggressive-resize on + +# If I don't set a title on a window, use the program name for the window title +set-window-option -g automatic-rename on + +# However, don't let terminal escape sequences rename my windows +set-window-option -g allow-rename off + +# Window titles are the window index, a colon, the window or command name, and +# any activity or alert indicators +set-window-option -g window-status-format "#I:#W#F" + +# Message dialogs are white on blue +set-option -g message-style "bg=colour18,fg=colour231" + +# Window choosers are white on blue +set-window-option -g mode-style "bg=colour18,fg=colour231" + +# Pane borders are always in dark gray +set-option -g pane-border-style "fg=TMUX_COLOR" +set-option -g pane-active-border-style "fg=TMUX_COLOR" + +# Inactive windows have a slightly grayed-out background and default text +set-option -g window-style "bg=colour232,fg=colour248" +set-option -g window-active-style "bg=colour0,fg=colour15" + +# The status bar defaults to light gray on dark gray, which applies to the left +# and right status bar sections described in status-left and status-right above +set-option -g status-style "bg=TMUX_COLOR,fg=colour248" + +# Titles of windows default to black text with no embellishment +set-window-option -g window-status-style "fg=colour16" + +# The title of the active window is in white rather than black +set-window-option -g window-status-current-style "fg=colour231" + +# A window with a bell has a title with a red background until cleared +set-window-option -g window-status-bell-style "bg=colour9" -- cgit v1.2.3