points/.tmux.conf

151 lines
3.8 KiB
Plaintext

# => Use C-b R to reload that file
#
# To override what a plugin does, set config after the call to TPM
#***
#** Plugins
#*
# https://github.com/tmux-plugins/list
#
# TODO
# https://github.com/erikw/tmux-powerline/issues/189
## Copy
# - easymotion (normale mode: C-b S / copy mode: s / S S / S j / S k / S n),
# - path, filenames, URLs: C-b Q
# - URLs in browser: C-b P
# - Lines: C-b W
set -g @plugin 'CrispyConductor/tmux-copy-toolkit'
set -g @copytk-label-chars "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
set -g @copytk-color-labelchar "black:cyan"
set -g @copytk-color-highlight "cyan:blue"
## Sensible Defaults
#
set -g @plugin 'tmux-plugins/tmux-sensible'
#***
#** TPM
#*
#
set -g @plugin 'tmux-plugins/tpm'
if "test ! -d ~/.tmux/plugins/tpm" \
"run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'"
run '~/.tmux/plugins/tpm/tpm'
#***
#** Options
#*
#
set-option -g mode-keys vi
set-option -g mouse on
set-option -g repeat-time 800
set-option -g status-keys vi
#***
#** Root Keys
#*
#
# Start copy mode with Shift-PageUp
bind-key -T root S-PPage { copy-mode -e; send-keys PPage }
#***
#** Prefix Keys
#*
# Re-usable keys:
# 'it
# $&().
bind-key ? list-keys -T prefix
bind-key M-k { send-keys -R; clear-history } # Clear current pane
bind-key M-m command-prompt -p "man page:" { split-window -fh man '%%' }
bind-key M-M split-window -fh man tmux
###
## Buffers
#
# - Delete the most recently copied buffer of text.
# = Choose which buffer to paste interactively from a list.
###
## Panes
#
# ; Move to the previously active pane [last-pane]
# m Mark the current pane [select-pane -m]
# M Clear the marked pane [select-pane -M]
# o Select the next pane in the current window [select-pane -t :.+]
# q Briefly display pane indexes [display-panes]
bind-key -r C-h select-pane -L
bind-key -r C-Left select-pane -L
bind-key -r C-j select-pane -D
bind-key -r C-Down select-pane -D
bind-key -r C-k select-pane -U
bind-key -r C-Up select-pane -U
bind-key -r C-l select-pane -R
bind-key -r C-Right select-pane -R
bind-key -r H resize-pane -L 5
bind-key -r Left resize-pane -L
bind-key -r J resize-pane -D 5
bind-key -r Down resize-pane -D
bind-key -r K resize-pane -U 5
bind-key -r Up resize-pane -U
bind-key -r L resize-pane -R 5
bind-key -r Right resize-pane -R
bind-key \\ split-window -fh -c "#{pane_current_path}"
bind-key _ split-window -fv -c "#{pane_current_path}"
bind-key '%' split-window -h -c "#{pane_current_path}"
bind-key '"' split-window -v -c "#{pane_current_path}"
#bind-key j command-prompt -p "join pane from:" "join-pane -h -s '%%'"
#bind-key s command-prompt -p "send pane to:" "join-pane -h -t '%%'"
#bind-key j "join-pane -s !" will join the last active pane/window to the current window.
###
## Windows
#
# , Rename the current window.
# . Prompt for an index to move the current window.
# l Move to the previously selected window.
###
## Layouts: default shortcuts adapted to Azerty keyboards
#
bind-key -N "M-1" "M-&" select-layout even-horizontal
bind-key -N "M-3" 'M-"' select-layout main-horizontal
bind-key -N "M-4" "M-'" select-layout main-vertical
bind-key -N "M-5" "M-(" select-layout tiled
###
## Sessions
#
# D Choose a client to detach.
# L Switch the attached client back to the last session.
# r Force redraw of the attached client.
# f Prompt to search for text in open windows.
#***
#** Copy-mode Keys
#*
# TODO Better Buffers select
bind-key -T copy-mode-vi Space send-keys -X page-down
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi S-NPage send-keys -X page-down