My dotfiles for my Linux rice managed with stow and make
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.4 KiB

# zsh time for now :)
set-option -g default-shell /bin/zsh
# make tmux display things in 256 colors
set -g default-terminal "tmux-256color"
# set scrollback history to 10000 (10k)
set -g history-limit 10000
# set Ctrl-a as the default prefix key combination
# and unbind C-b to free it up
set -g prefix C-q
unbind C-b
# use send-prefix to pass C-a through to application
bind C-q send-prefix
# shorten command delay
set -sg escape-time 1
# set window and pane index to 1 (0 by default)
set-option -g base-index 1
setw -g pane-base-index 1
# allow mouse scrolling
bind m set -g mouse\; display "Mouse Toggled"
set -g mouse on
# bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"
# reload $XDG_CONFIG_HOME/tmux/tmux.conf using PREFIX r
bind r source-file $XDG_CONFIG_HOME/tmux/tmux.conf \; display "Reloaded!"
# use PREFIX | to split window horizontally and PREFIX - to split vertically
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Make the current window the first window
bind T swap-window -t 1
# map Vi movement keys as pane movement keys
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# and use C-h and C-l to cycle thru panes
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+
# resize panes using PREFIX H, J, K, L
bind H resize-pane -L 5
bind J resize-pane -D 5
bind K resize-pane -U 5
bind L resize-pane -R 5
# window creation and deletion
bind C-N new-window -c "#{pane_current_path}"
bind N new-window
bind D kill-window
# kill session completely
bind q kill-session
# ---------------------
# Copy & Paste
# ---------------------
# provide access to the clipboard for pbpaste, pbcopy
set-window-option -g automatic-rename on
# use vim keybindings in copy mode
setw -g mode-keys vi
# setup native copy and paste support
bind P paste-buffer
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard"
# update default binding of 'Enter' to also use copy-pipe
#unbind -t vi-copy Enter
# ----------------------
# Status Bar
# -----------------------
set -g message-style bg="colour0",fg="colour6"
set -g message-command-style bg="colour0",fg="colour6"
set -g pane-active-border-style fg="colour1"
set -g pane-border-style fg="colour0"
set -g status "on"
set -g status-style "none"
set -g status-bg "colour0"
set -g status-justify "left"
set -g status-left "#[fg=colour232,bg=colour1] #S #[fg=colour1,bg=colour0,nobold,nounderscore,noitalics]"
set -g status-left-style "none"
set -g status-left-length "100"
set -g status-right "#[fg=colour1,bg=colour0,nobold,nounderscore,noitalics]#[fg=colour232,bg=colour1] %R "
set -g status-right-style "none"
set -g status-right-length "100"
setw -g window-status-activity-style bg="colour0",fg="colour1","none"
setw -g window-status-style bg="colour0",fg="colour7","none"
setw -g window-status-current-format "#[fg=colour0,bg=colour0,nobold,nounderscore,noitalics]#[fg=colour6,bg=colour0] #I #W #[fg=colour0,bg=colour0,nobold,nounderscore,noitalics]"
setw -g window-status-format "#[fg=colour0,bg=colour0,nobold,nounderscore,noitalics]#[default] #I #W #[fg=colour0,bg=colour0,nobold,nounderscore,noitalics]"
setw -g window-status-separator ""