Created
June 7, 2022 18:05
-
-
Save quyleanh/a6b3019bed394d5aa2570bda0a60b8b3 to your computer and use it in GitHub Desktop.
Default config for tmux
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Bind escape to copy mode | |
#unbind [ | |
#bind Escape copy-mode | |
# p = paste | |
unbind p | |
bind p paste-buffer | |
# no escape delay | |
set -sg escape-time 0 | |
# remap prefix to Control + a | |
set -g prefix C-a | |
unbind C-b | |
bind C-a send-prefix | |
# Start window numbering at 1 (default => 0) | |
set -g base-index 1 | |
set -g clock-mode-style 24 | |
# Renumber windows after removing one | |
set -g renumber-windows on | |
# use 256 colors | |
#set -g default-terminal "tmux-256color-italic" | |
#set-option -ga terminal-overrides ",xterm-256color-italic:Tc" | |
#set -g default-terminal "tmux-256color-italic" | |
#set -g default-terminal "tmux-256color" | |
# checkhealth | |
set -g default-terminal "screen-256color" | |
set-option -sa terminal-overrides ',XXX:RGB' | |
# change tmux bar colors | |
#set -g status-bg '#222222' | |
#set -g status-fg '#aaaaaa' | |
# Keep plenty of history for scrollback | |
set -g history-limit 50000 | |
# mouse | |
set -g mouse off | |
bind m split-window -h 'reattach-to-user-namespace mutt' | |
# Act like vim in copy mode | |
set -g status-keys vi | |
setw -g mode-keys vi | |
bind-key -Tcopy-mode-vi 'v' send -X begin-selection | |
bind-key -Tcopy-mode-vi 'y' send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" | |
# 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 C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" | |
bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" | |
bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" | |
bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" | |
#bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" | |
# Secondary binding for C-l to retain redraw | |
bind C-l send-keys 'C-l' | |
# Easy rotating of panes | |
bind C-k swap-pane -U | |
# increase display time | |
set -g display-panes-time 1200 | |
# status bar stuff | |
#set -g status-left-length 40 | |
# Simplify status bar display. | |
#set -g status-left '[#S]' | |
#set -g status-right "%I:%M %p " | |
# set -g status-right "#[fg=red][44%%]#[default] - %I:%M %p " | |
# Dismiss current pane to background window | |
bind b break-pane -d | |
bind-key j command-prompt -p "join pane from: " "join-pane -h -s '%%'" | |
# more intuitive keybindings for splitting | |
#bind \ split-window -h -c "#{pane_current_path}" | |
bind - split-window -v -c "#{pane_current_path}" | |
# Easy return to Vim from tmux runner zoom runner pane | |
bind C-p run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim$' && tmux send-keys ':VtrZoomRunnerPane' 'C-m') || tmux send-keys 'C-c' && tmux select-pane -l" | |
# Make C-j display a selectable list of sessions | |
bind C-j choose-tree | |
# Keep window names as I set them | |
setw -g automatic-rename off | |
# Reload tmux.conf with prefix-r | |
bind C-r source-file ~/.tmux.conf \; display "Reloaded ~/.tmux.conf" | |
# Provide access to the clipboard for pbpaste, pbcopy (details: http://goo.gl/DN82E) | |
#set-option -g default-command "reattach-to-user-namespace -l zsh -l" | |
set-window-option -g automatic-rename on | |
# Enable VI mode | |
set-window-option -g mode-keys vi | |
# Set ability to capture on start and restore on exit window data when running an application | |
setw -g alternate-screen on | |
# bind resizing of panes to H,J,K,L (resizes by steps of 10 lines/columns) | |
# # Note, bindings are repeatable (within the default 500ms time limit) so that | |
# # you don't have to keep entering the prefix. (Prefix-H-H-H resizes by 15) | |
bind -n S-Left resize-pane -L 2 | |
bind -n S-Right resize-pane -R 2 | |
bind -n S-Down resize-pane -D 1 | |
bind -n S-Up resize-pane -U 1 | |
unbind -n C-Left | |
unbind -n C-Down | |
unbind -n C-Up | |
unbind -n C-Right | |
bind -n C-Left resize-pane -L 10 | |
bind -n C-Right resize-pane -R 10 | |
bind -n C-Down resize-pane -D 5 | |
bind -n C-Up resize-pane -U 5 | |
#source-file ~/.tmux/themes/themepack/basic.tmuxtheme | |
#run-shell ~/.tmux/plugins/tmux-copycat/copycat.tmux | |
#run-shell ~/.tmux/plugins/tmux-cpu/cpu.tmux | |
#run-shell ~/.tmux/plugins/tmux-better-mouse-mode/scroll_copy_mode.tmux | |
#run-shell ~/.tmux/plugins/tmux-sidebar/sidebar.tmux | |
#set -g @sidebar-tree-command 'tree -C' | |
# basic.tmuxtheme | |
# Status update interval | |
set -g status-interval 1 | |
# Basic status bar colors | |
set -g status-style bg=black,fg=cyan | |
# Left side of status bar | |
set -g status-left-style bg=black,fg=green | |
set -g status-left-length 40 | |
set -g status-left "#S #[fg=white]» #[fg=yellow]#I #[fg=cyan]#P" | |
# Right side of status bar | |
set -g status-right-style bg=black,fg=cyan | |
set -g status-right-length 40 | |
set -g status-right "#(free | grep Mem | awk '{printf(\"%.2f%\", 100*$3/$2)}') « #[fg=yellow]%H:%M:%S %d-%b-%y" | |
#set -g status-right "CPU: #{cpu_temp_icon} #{cpu_temp} #H #[fg=white]« #[fg=yellow]%H:%M:%S #[fg=green]%d-%b-%y" | |
# Window status | |
set -g window-status-format " #I:#W#F " | |
set -g window-status-current-format " #I:#W#F " | |
# Current window status | |
set -g window-status-current-style bg=red,fg=black | |
# Window with activity status | |
set -g window-status-activity-style bg=black,fg=yellow | |
# Window separator | |
set -g window-status-separator "" | |
# Window status alignment | |
set -g status-justify centre | |
# Pane border | |
set -g pane-border-style bg=black,fg=default | |
# Active pane border | |
set -g pane-active-border-style bg=black,fg=green | |
# Pane number indicator | |
set -g display-panes-colour black | |
set -g display-panes-active-colour black | |
# Clock mode | |
set -g clock-mode-colour red | |
set -g clock-mode-style 24 | |
# Message | |
set -g message-style bg=black,fg=default | |
# Command message | |
set -g message-command-style bg=black,fg=default | |
# Mode | |
set -g mode-style bg=red,fg=default |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment