103 lines
2.6 KiB
Bash
103 lines
2.6 KiB
Bash
# tmux config - screen-like key bindings
|
|
# ============================================
|
|
|
|
# mkdir -p $HOME/.config/tmux
|
|
# curl https://git.fnet.cz/lachtan/get/raw/branch/master/conf/tmux.conf -o $HOME/.config/tmux/tmux.conf
|
|
|
|
# Searched in this oreder
|
|
# /etc/tmux.conf
|
|
# ~/.config/tmux/tmux.conf
|
|
# ~/.tmux.conf
|
|
|
|
# Extended keys (required for pi Shift+Enter etc.)
|
|
set -g extended-keys on
|
|
set -g extended-keys-format csi-u
|
|
|
|
# Prefix: Ctrl+a (like screen)
|
|
unbind C-b
|
|
set -g prefix C-a
|
|
bind C-a send-prefix
|
|
|
|
# Reload config
|
|
bind R source-file ~/.tmux.conf \; display "Config reloaded!"
|
|
|
|
# Windows
|
|
bind c new-window -c "#{pane_current_path}"
|
|
bind d detach-client
|
|
bind n next-window
|
|
bind p previous-window
|
|
bind Space next-window
|
|
bind BSpace previous-window
|
|
bind 0 select-window -t :=0
|
|
bind 1 select-window -t :=1
|
|
bind 2 select-window -t :=2
|
|
bind 3 select-window -t :=3
|
|
bind 4 select-window -t :=4
|
|
bind 5 select-window -t :=5
|
|
bind 6 select-window -t :=6
|
|
bind 7 select-window -t :=7
|
|
bind 8 select-window -t :=8
|
|
bind 9 select-window -t :=9
|
|
|
|
# Switch to last window (double C-a like screen)
|
|
bind C-a last-window
|
|
|
|
# Rename window (like screen A)
|
|
bind A command-prompt -I "#W" "rename-window '%%'"
|
|
|
|
# Panes (splits) - screen style
|
|
bind - split-window -v -c "#{pane_current_path}"
|
|
bind | split-window -h -c "#{pane_current_path}"
|
|
|
|
# Pane navigation / rotation
|
|
bind Tab select-pane -t :.+
|
|
bind o select-pane -t :.+
|
|
bind C-o rotate-window
|
|
|
|
# Kill / remove
|
|
bind k confirm-before -p "kill-window #W? (y/n)" kill-window
|
|
bind x confirm-before -p "kill-pane #P? (y/n)" kill-pane
|
|
bind X confirm-before -p "kill-server? (y/n)" kill-server
|
|
|
|
# Copy / paste / scroll
|
|
bind [ copy-mode
|
|
bind ] paste-buffer
|
|
bind Escape copy-mode
|
|
|
|
# Misc screen-like bindings
|
|
bind r refresh-client
|
|
bind t clock-mode
|
|
bind ? list-keys
|
|
bind : command-prompt
|
|
bind . command-prompt "move-window -t '%%'"
|
|
bind w choose-window
|
|
bind s choose-session
|
|
|
|
# Pane resizing (screen-ish arrows)
|
|
bind -r C-Left resize-pane -L 2
|
|
bind -r C-Right resize-pane -R 2
|
|
bind -r C-Up resize-pane -U 2
|
|
bind -r C-Down resize-pane -D 2
|
|
|
|
# ============================================
|
|
# Appearance (optional but handy)
|
|
# ============================================
|
|
set -g base-index 1
|
|
setw -g pane-base-index 1
|
|
set -g renumber-windows on
|
|
set -g history-limit 10000
|
|
setw -g aggressive-resize on
|
|
|
|
# Enable mouse support (clickable panes, scroll)
|
|
set -g mouse on
|
|
|
|
# Status bar tweaks
|
|
set -g status-interval 5
|
|
#set -g status-left "#H [#S] "
|
|
set -g status-left "#H/#S "
|
|
set -g status-right " %H:%M %d-%b-%y"
|
|
|
|
# Claude Code support
|
|
set -g allow-passthrough on
|
|
set -as terminal-features 'xterm*:extkeys'
|