Last active
June 16, 2023 07:25
-
-
Save pagpires/2bf9cd84cddd5b8f89d745a48779d467 to your computer and use it in GitHub Desktop.
tmux configuration
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
unbind C-b | |
set -g prefix C-s | |
bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded" | |
# set default terminal model to 256 color mode | |
set -g default-terminal "screen-256color" | |
bind-key -n C-h select-pane -L | |
bind-key -n C-l select-pane -R | |
bind-key -n C-k select-pane -U | |
bind-key -n C-j select-pane -D | |
bind-key - split-window -v -c '#{pane_current_path}' | |
bind-key \\ split-window -h -c '#{pane_current_path}' | |
#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 | |
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 | |
# create new window under current path | |
unbind n | |
bind n new-window -c '#{pane_current_path}' | |
set-option -g base-index 1 | |
set-option -g pane-base-index 1 | |
set-option -g renumber-windows on | |
# move current pane into a window and detach | |
bind-key b break-pane -d | |
# bind-key C-j choose-tree | |
# Use vim keybindings in copy mode | |
setw -g mode-keys vi | |
# Setup 'v' to begin selection as in Vim | |
bind-key -T copy-mode-vi v send -X begin-selection | |
# this is specific to Win, should use if-shell to separate this config | |
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "tmux show-buffer | clip.exe" | |
unbind p | |
bind p paste-buffer | |
# capture buffer in whole pane | |
bind-key M-s capture-pane \; save-buffer '#{pane_current_path}/buffer.tmp' | |
# Update default binding of `Enter` to also use copy-pipe | |
unbind -T copy-mode-vi Enter | |
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "tmux show-buffer | clip.exe" | |
# panw with htop, keybinding | |
bind-key h split-window -h "htop" | |
bind-key w split-window -h -c ~/scratch "vim +CtrlP" | |
bind C-j split-window -v "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^$(tmux display-message -p '#S')\$\" | fzf --reverse | xargs tmux switch-client -t" | |
bind-key C-b send-keys 'tat && exit' 'C-m' | |
bind-key K run-shell 'tmux switch-client -n \; kill-session -t "$(tmux display-message -p "#S")" || tmux kill-session' | |
set -g mouse on | |
# coloring | |
set -g status-style fg=white,bold,bg=black | |
setw -g window-status-current-style fg=white,bold,bg=red | |
setw -g pane-border-style fg=green,bg=black | |
setw -g pane-active-border-style fg=white,bg=yellow | |
# active pane normal, others shaded | |
setw -g window-style fg=colour240,bg=colour235 | |
setw -g window-active-style fg=white,bg=black | |
# status bar | |
set -g status-left-length 40 | |
set -g status-left "#[fg=green]Session:#S #[fg=yellow]#I " | |
set -g status-right "#H: %Y/%m/%d %H:%M" | |
# save pane to log | |
bind P pipe-pane -o "cat >> ~/#W.log" \; display "Toggled logging to ~#W.log" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment