first commit
This commit is contained in:
+182
@@ -0,0 +1,182 @@
|
||||
######################
|
||||
### SETTINGS ###
|
||||
######################
|
||||
# loud or quiet?
|
||||
set -g visual-activity off
|
||||
set -g visual-bell off
|
||||
set -g visual-silence off
|
||||
setw -g monitor-activity off
|
||||
set -g bell-action none
|
||||
|
||||
# enable vi mode keys
|
||||
setw -g mode-keys vi
|
||||
|
||||
# mouse control (clickable windows, panes, resizable panes)
|
||||
setw -g mouse on
|
||||
set -g mouse on
|
||||
|
||||
# clipboard control
|
||||
set -g set-clipboard on
|
||||
set -g history-limit 20000
|
||||
|
||||
# screen colors
|
||||
set -g default-terminal "tmux-256color"
|
||||
|
||||
# Start with index 1
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# Automatically set window title
|
||||
set-window-option -g automatic-rename on
|
||||
set-option -g set-titles on
|
||||
|
||||
######################
|
||||
### KEYBINDS ###
|
||||
######################
|
||||
# Config that is very close to a i3 window manager's keybinding.
|
||||
|
||||
# Set new prefix
|
||||
# Note : you can press super key by set M.
|
||||
# (tested with tty only)
|
||||
set -g prefix C-a
|
||||
bind C-a send-prefix
|
||||
|
||||
# First remove *all* keybindings
|
||||
unbind -a
|
||||
|
||||
# Basic bindings
|
||||
bind ? list-keys
|
||||
bind d detach-client
|
||||
bind D choose-client
|
||||
bind : command-prompt
|
||||
#bind \ show-messages
|
||||
|
||||
# Copy mode
|
||||
bind c copy-mode
|
||||
|
||||
# clipboard control
|
||||
bind P paste-buffer
|
||||
bind -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind -T copy-mode-vi y send-keys -X copy-selection
|
||||
bind -T copy-mode-vi r send-keys -X rectangle-toggle
|
||||
bind y run-shell -b "tmux show-buffer | xclip -sel clip" \; display-message "Copied tmux buffer to system clipboard"
|
||||
|
||||
# Refresh client
|
||||
bind R refresh-client \; display-message "Refresh already"
|
||||
|
||||
# Rename window
|
||||
bind , command-prompt "rename-window %%"
|
||||
|
||||
# Clock mode
|
||||
bind t clock-mode
|
||||
|
||||
# Show pane info
|
||||
bind i display-panes
|
||||
|
||||
# Config Reloads
|
||||
bind r source-file ~/.tmux.conf \; display-message "Config reloaded"
|
||||
|
||||
# resize controls
|
||||
bind -r h resize-pane -L 2 \; display-message "Resize left"
|
||||
bind -r l resize-pane -R 2 \; display-message "Resize right"
|
||||
bind -r k resize-pane -U 2 \; display-message "Resize up"
|
||||
bind -r j resize-pane -D 2 \; display-message "Resize down"
|
||||
|
||||
# zoom control
|
||||
bind -n M-f resize-pane -Z
|
||||
|
||||
# split panes using | and -, make sure they open in the same path
|
||||
bind | split-window -h -c "#{pane_current_path}"
|
||||
bind - split-window -v -c "#{pane_current_path}"
|
||||
|
||||
# Change layouts
|
||||
bind o rotate-window
|
||||
bind Space next-layout
|
||||
bind K swap-pane -s {up-of}
|
||||
bind J swap-pane -s {down-of}
|
||||
bind H swap-pane -s {left-of}
|
||||
bind L swap-pane -s {right-of}
|
||||
|
||||
# Choose Window
|
||||
bind w choose-window
|
||||
|
||||
# Change current pane to next window
|
||||
bind 1 join-pane -t :1
|
||||
bind 2 join-pane -t :2
|
||||
bind 3 join-pane -t :3
|
||||
bind 4 join-pane -t :4
|
||||
bind 5 join-pane -t :5
|
||||
bind 6 join-pane -t :6
|
||||
bind 7 join-pane -t :7
|
||||
bind 8 join-pane -t :8
|
||||
bind 9 join-pane -t :9
|
||||
bind 0 join-pane -t :10
|
||||
|
||||
# Switch windows alt+number
|
||||
bind -n M-1 if-shell 'tmux select-window -t :1' '' 'new-window -t :1'
|
||||
bind -n M-2 if-shell 'tmux select-window -t :2' '' 'new-window -t :2'
|
||||
bind -n M-3 if-shell 'tmux select-window -t :3' '' 'new-window -t :3'
|
||||
bind -n M-4 if-shell 'tmux select-window -t :4' '' 'new-window -t :4'
|
||||
bind -n M-5 if-shell 'tmux select-window -t :5' '' 'new-window -t :5'
|
||||
bind -n M-6 if-shell 'tmux select-window -t :6' '' 'new-window -t :6'
|
||||
bind -n M-7 if-shell 'tmux select-window -t :7' '' 'new-window -t :7'
|
||||
bind -n M-8 if-shell 'tmux select-window -t :8' '' 'new-window -t :8'
|
||||
bind -n M-9 if-shell 'tmux select-window -t :9' '' 'new-window -t :9'
|
||||
bind -n M-0 if-shell 'tmux select-window -t :10' '' 'new-window -t :10'
|
||||
|
||||
# Kill Selected Pane
|
||||
bind Q kill-pane
|
||||
|
||||
# present a menu of URLs to open from the visible pane. sweet.
|
||||
bind u capture-pane \;\
|
||||
save-buffer /tmp/tmux-buffer \;\
|
||||
split-window -l 10 "urlview /tmp/tmux-buffer"
|
||||
|
||||
# Smart pane switching with awareness of Vim splits.
|
||||
# See: https://github.com/christoomey/vim-tmux-navigator
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
bind-key -n M-h if-shell "$is_vim" "send-keys M-h" "select-pane -L"
|
||||
bind-key -n M-j if-shell "$is_vim" "send-keys M-j" "select-pane -D"
|
||||
bind-key -n M-k if-shell "$is_vim" "send-keys M-k" "select-pane -U"
|
||||
bind-key -n M-l if-shell "$is_vim" "send-keys M-l" "select-pane -R"
|
||||
#bind-key -n M-\ if-shell "$is_vim" "send-keys M-\\" "select-pane -l"
|
||||
bind-key -T copy-mode-vi M-h select-pane -L
|
||||
bind-key -T copy-mode-vi M-j select-pane -D
|
||||
bind-key -T copy-mode-vi M-k select-pane -U
|
||||
bind-key -T copy-mode-vi M-l select-pane -R
|
||||
#bind-key -T copy-mode-vi M-\ select-pane -l
|
||||
|
||||
# fzf binding
|
||||
set -g @tmux-fzf-launch-key 'f'
|
||||
|
||||
######################
|
||||
### DESIGN CHANGES ###
|
||||
######################
|
||||
|
||||
# various plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'sainnhe/tmux-fzf'
|
||||
# note: fzf bound to 'F'
|
||||
set -g @plugin 'odedlaz/tmux-onedark-theme'
|
||||
|
||||
# solarized plugin and options
|
||||
# set -g @plugin 'seebi/tmux-colors-solarized'
|
||||
# set -g @colors-solarized '256' (the default)
|
||||
# set -g @colors-solarized 'dark'
|
||||
# set -g @colors-solarized 'light'
|
||||
# set -g @colors-solarized 'base16'
|
||||
|
||||
# tmux themepack
|
||||
# set -g @plugin 'jimeh/tmux-themepack'
|
||||
# set -g @themepack 'basic'
|
||||
# set -g @themepack 'powerline/default/yellow'
|
||||
# set -g @themepack 'powerline/default/orange'
|
||||
# set -g @themepack 'powerline/block/blue'
|
||||
# set -g @themepack 'powerline/block/cyan'
|
||||
# set -g @themepack 'powerline/default/gray'
|
||||
# set -g @themepack 'powerline/double/yellow'
|
||||
|
||||
# keep at bottom
|
||||
run -b '~/.tmux/plugins/tpm/tpm'
|
||||
Reference in New Issue
Block a user