summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2018-07-02 09:46:13 -0700
committerBen Sima <ben@bsima.me>2018-07-02 09:46:13 -0700
commit358c68f482bf3f832f619571355a8b68b29beebd (patch)
tree29ce17e89f7335b279c16f81769f5637a73079dc
parentc6bb5f5fb1de3c26350cf0a740040df249cfc3ec (diff)
Add and configure tmux
-rw-r--r--home.nix4
-rw-r--r--packages.nix1
-rw-r--r--tmux99
3 files changed, 104 insertions, 0 deletions
diff --git a/home.nix b/home.nix
index 78fb797..6656cfb 100644
--- a/home.nix
+++ b/home.nix
@@ -17,6 +17,10 @@ in
(builtins.readFile ./mutt/solarized.muttrc);
target = ".muttrc";
};
+ tmux = {
+ source = ./tmux;
+ target = ".tmux.conf";
+ };
};
};
diff --git a/packages.nix b/packages.nix
index 08f6844..5b947fd 100644
--- a/packages.nix
+++ b/packages.nix
@@ -44,6 +44,7 @@ pkgs.shellcheck
pkgs.shutter # screenshot tool
pkgs.stack2nix
pkgs.tdesktop
+pkgs.tmux
pkgs.transmission-gtk
pkgs.tree
pkgs.unrar
diff --git a/tmux b/tmux
new file mode 100644
index 0000000..ff8fb5a
--- /dev/null
+++ b/tmux
@@ -0,0 +1,99 @@
+# vim: filetype=tmux
+
+# 0 is too far from ` ;)
+
+set -g base-index 1
+
+# Automatically set window title
+set-window-option -g automatic-rename on
+set-option -g set-titles on
+
+set -g default-terminal xterm-256color
+set -g status-keys vi
+set -g history-limit 10000
+
+setw -g mode-keys vi
+setw -g mouse on
+setw -g monitor-activity on
+
+bind-key v split-window -h
+bind-key s split-window -v
+
+bind-key J resize-pane -D 5
+bind-key K resize-pane -U 5
+bind-key H resize-pane -L 5
+bind-key L resize-pane -R 5
+
+bind-key M-j resize-pane -D
+bind-key M-k resize-pane -U
+bind-key M-h resize-pane -L
+bind-key M-l resize-pane -R
+
+# Vim style pane selection
+bind h select-pane -L
+bind j select-pane -D
+bind k select-pane -U
+bind l select-pane -R
+
+# Use Alt-vim keys without prefix key to switch panes
+bind -n M-h select-pane -L
+bind -n M-j select-pane -D
+bind -n M-k select-pane -U
+bind -n M-l select-pane -R
+
+# Use Alt-arrow keys without prefix key to switch panes
+bind -n M-Left select-pane -L
+bind -n M-Right select-pane -R
+bind -n M-Up select-pane -U
+bind -n M-Down select-pane -D
+
+# Shift arrow to switch windows
+bind -n S-Left previous-window
+bind -n S-Right next-window
+
+# No delay for escape key press
+set -sg escape-time 0
+
+# Reload tmux config
+bind r source-file ~/.tmux.conf
+
+# THEME (Solarized light)
+#
+# based on: https://github.com/seebi/tmux-colors-solarized/
+
+# default statusbar colors
+set-option -g status-bg white #base2
+set-option -g status-fg yellow #yellow
+set-option -g status-attr default
+set -g status-interval 60
+set -g status-left-length 30
+set -g status-left '#(whoami)@#(hostname) : '
+set -g status-right '#(cut -d " " -f 1-3 /proc/loadavg) ~%Y.%m.%d..%H.%M'
+
+# default window title colors
+set-window-option -g window-status-fg brightyellow #base00
+set-window-option -g window-status-bg default
+set-window-option -g window-status-attr dim
+
+# active window title colors
+set-window-option -g window-status-current-fg brightred #orange
+set-window-option -g window-status-current-bg default
+set-window-option -g window-status-current-attr bright
+
+# pane border
+set-option -g pane-border-fg white #base2
+set-option -g pane-active-border-fg brightcyan #base1
+
+# message text
+set-option -g message-bg white #base2
+set-option -g message-fg brightred #orange
+
+# pane number display
+set-option -g display-panes-active-colour blue #blue
+set-option -g display-panes-colour brightred #orange
+
+# clock
+set-window-option -g clock-mode-colour green #green
+
+# bell
+set-window-option -g window-status-bell-style fg=white,bg=red #base2, red