2
0
mirror of https://github.com/webgefrickel/dotfiles synced 2024-11-19 03:25:33 +00:00
steffen-dotfiles/tmux.conf
2014-09-24 15:01:38 +02:00

104 lines
3.8 KiB
Plaintext

# Use a 256 color terminal
set -g default-terminal "screen-256color-italic"
# zsh
set-option -g default-shell $SHELL
# bind default prefix to ctrl-a
set -g prefix C-a
unbind-key C-b
bind-key a send-prefix
# reparing copy & paste by default
set-option -g default-command "reattach-to-user-namespace -l zsh"
# more history
set-option -g history-limit 10000
# Fix for sending keys to Vim
setw -g xterm-keys on
# set esc-timeout to 50ms (better vim)
set -sg escape-time 50
# use vim motions :-)
setw -g mode-keys vi
# reparing copy & paste
# Setup 'v' to begin selection as in Vim
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
# Force a reload of te config file
unbind-key r
bind-key r source-file ~/.tmux.conf \; display-message "Configuration reloaded!"
# Saner window splitting / new windows
bind-key \ split-window -h -c "#{pane_current_path}"
bind-key - split-window -v -c "#{pane_current_path}"
bind-key c new-window -c "#{pane_current_path}"
# Easier resizing
unbind-key -n C-j
unbind-key -n C-k
unbind-key -n C-h
unbind-key -n C-l
bind-key -r C-j resize-pane -D
bind-key -r C-k resize-pane -U
bind-key -r C-h resize-pane -L
bind-key -r C-l resize-pane -R
# Smart pane switching with awareness of vim splits
bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys C-h) || tmux select-pane -L"
bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys C-j) || tmux select-pane -D"
bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys C-k) || tmux select-pane -U"
bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys C-l) || tmux select-pane -R"
bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys 'C-\\') || tmux select-pane -l"
# Mouse support
set -g mode-mouse on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on
set-option -g mouse-resize-pane on
# counting panes starts at 1
set -g base-index 1
setw -g pane-base-index 1
# How long should we show any messages?
set -g display-time 2000
# statusbar colors solarized dark
set-option -g status-bg black
set-option -g status-fg yellow
set-option -g status-attr default
set-window-option -g window-status-fg brightblue
set-window-option -g window-status-bg default
set-window-option -g window-status-current-fg brightred
set-window-option -g window-status-current-bg default
set-option -g pane-border-fg black
set-option -g pane-active-border-fg brightgreen
set-option -g message-bg black
set-option -g message-fg brightred
set-option -g display-panes-active-colour blue
set-option -g display-panes-colour brightred
set-window-option -g clock-mode-colour green
# Custom status bar - with Powerline symbols: ⮂ ⮃ ⮀ ⮁ ⭤
set -g status-left-length 32
set -g status-right-length 150
set -g status-interval 5
set -g status-left-length 60
set -g status-left '#[fg=colour235,bg=colour252,bold] ❐ #S #[fg=colour252,bg=colour238,nobold]⮀#[fg=colour245,bg=colour238,bold] ⣿ #P #[fg=colour238,bg=default,nobold]⮀'
set -g status-right '#[fg=colour238,bg=default,nobold]⮂#[fg=colour245,bg=colour238] #(whoami)@#h #[fg=colour252]⮂#[fg=colour235,bg=colour252,bold] ○ #(date +"%H:%M") '
set -g window-status-format "#[fg=base0,bg=default] #I #W "
set -g window-status-current-format "#[fg=black,bg=brightred]⮀#[fg=colour251,bg=brightred,noreverse,bold] #I ⮁ #W #[fg=brightred,bg=black,nobold]⮀"