Files
dotfiles/sources/tmux/.tmux.conf
T
2025-11-15 22:23:36 +01:00

93 lines
2.7 KiB
Bash

# Open in current director# Rebind Ctrl-b to Ctrl-a
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Start windows at index 1 instead of 0
set -g base-index 1
# Start panes at index 1 instead of 0
set -g pane-base-index 1
# Ensures that panes get reordered correctly when killing panes
set-option -g renumber-windows on
# VI-mode
set-window-option -g mode-keys vi
set-window-option -g status-keys vi
# Enable Vi copy commands
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel 'xclip -selection clipboard'
# Vim keybinding for resizing panes
bind -r C-h resize-pane -L # Control-a Control-h
bind -r C-j resize-pane -D # Control-a Control-j
bind -r C-k resize-pane -U # Control-a Control-k
bind -r C-l resize-pane -R # Control-a Control-l
# Vim keybinding for switching between panes
bind h select-pane -l # Control-a h
bind j select-pane -D # Control-a j
bind k select-pane -U # Control-a k
bind l select-pane -R # Control-a l
# Bind Control-a + X to kill a session
bind X kill-session
# Bind Control-a + C to create a new session
bind C new-session
# split panes using | and - and use the current working directory
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Create new window with current path
bind c new-window -c "#{pane_current_path}"
# Unbinding the old keybind for splitting the pane vertically
unbind '"'
# Unbinding the old keybind for splitting the pane horizontally
unbind %
# Disable completely the mouse
set -g mouse off
# Set the default terminal
set -s default-terminal 'tmux-256color'
# Longer workspace names
set -g status-left-length 20
# Reduce the escape time for Neovim
set-option -sg escape-time 10
# Enable focus event for Neovim
set-option -g focus-events on
# Terminal feature specific to Neovim
set-option -sa terminal-overrides ',tmux-256color:Tc'
set-option -as terminal-features ',xterm-kitty:RGB'
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0
# Tmux plugin to handle tmux plugins
set -g @plugin 'tmux-plugins/tpm'
# Tmux theme plugin
set -g @plugin 'jimeh/tmux-themepack'
# Tmux plugin to navigate easily between session
set -g @plugin 'tmux-plugins/tmux-sessionist'
# Tmux Tokyo Night Theme
set -g @plugin fabioluciano/tmux-tokyo-night
set -g @theme_variation 'night'
set -g @theme_plugins 'datetime,weather,playerctl,battery'
set -g @theme_plugin_datetime_format '%A %d %B %T'
set -g @theme_plugin_weather_format '%t+%c+%w+%h'
# Run the Tmux plugin manager
run '~/.tmux/plugins/tpm/tpm'