Files
nixfiles/home/apps/tmux/tmux.conf
2025-12-17 21:43:32 +05:00

89 lines
3.0 KiB
Bash

### Misc
set -as terminal-features "*:RGB"
set -g base-index 1
setw -g pane-base-index 1
set -g buffer-limit 16
### Appearance
set -g status-position "top"
set -g status-style "bg=#181820,fg=#dcd7ba"
set -g status on
set -g status-format[0] \
"\
#[align=left]\
#{?#{==:#{client_key_table},root},#{l:#[bg=#c5c9c5,fg=#0d0c0c]} NORMAL ,}\
#{?#{==:#{client_key_table},prefix},#{l:#[bg=#6e915f,fg=#0d0c0c]} PREFIX ,}\
#{?#{==:#{client_key_table},create},#{l:#[bg=#ffa066,fg=#0d0c0c]} CREATE ,}\
#{?#{==:#{client_key_table},delete},#{l:#[bg=#e46876,fg=#0d0c0c]} DELETE ,}\
#{?#{==:#{client_key_table},choose},#{l:#[bg=#b8b4d0,fg=#0d0c0c]} CHOOSE ,}\
#[default]\
#{W:#{?#{window_active},#{l:#[bg=#393836,fg=#dcd7ba]},#{l:#[bg=#282727,fg=#625e5a]}} #{window_index}:#{window_name} }\
#[align=right]\
#{?#{client_readonly},#{l:#[bg=#ff5d62,fg=#0d0c0c] R },}\
#{?#{session_many_attached},#{l:#[bg=#8ea4a2,fg=#0d0c0c] M },}\
#{?#{window_zoomed_flag},#{l:#[bg=#957fb8,fg=#0d0c0c] Z },}\
#{?#{window_bigger},#{l:#[bg=#dca561,fg=#0d0c0c] S },}\
#[default] %I:%M%P %D \
#[bg=#282727,fg=#dcd7ba] #{session_name} #[default] \
\
"
# Does not work atm: #{?#{==:#{client_key_table},copy-mode-vi},#{l:#[bg=#957fb8,fg=#0d0c0c]} VISUAL ,}\
set -g message-line 0
set -g message-style "bg=#181616,fg=#98bb6c"
set -g message-command-style "bg=#181616,fg=#7e9cd8" # vi normal mode
set -g pane-border-lines single
set -g pane-active-border-style "fg=#54546d"
set -g pane-border-style "fg=#363646"
set -g popup-border-style "fg=#54546d"
set -g popup-border-lines single
### Shortcuts
unbind-key -a
bind-key C-b send-prefix
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
bind-key 1 select-window -t:=1
bind-key 2 select-window -t:=2
bind-key 3 select-window -t:=3
bind-key 4 select-window -t:=4
bind-key 5 select-window -t:=5
bind-key 6 select-window -t:=6
bind-key 7 select-window -t:=7
bind-key 8 select-window -t:=8
bind-key 9 select-window -t:=9
bind-key 0 select-window -t:=10
bind-key r command-prompt -I "#W" { rename-window "%%" }
bind-key R command-prompt -I "#S" { rename-session "%%" }
bind-key z resize-pane -Z
bind-key : command-prompt
bind-key Space last-pane
bind-key y copy-mode
bind-key p paste-buffer -p
bind-key P choose-buffer -Z
bind-key q detach-client
bind-key '"' list-buffers
bind-key n switch-client -T create
bind-key -T create h { split-window -h; swap-pane -U }
bind-key -T create j split-window
bind-key -T create k { split-window; swap-pane -U }
bind-key -T create l split-window -h
bind-key -T create n new-window
bind-key -T create b break-pane
bind-key d switch-client -T delete
bind-key -T delete d confirm-before -p "Kill pane #P?" kill-pane
bind-key -T delete w confirm-before -p "Kill window #W?" kill-window
bind-key -T delete s confirm-before -p "Kill session #S?" kill-session
bind-key -T delete S confirm-before -p "Kill server?" kill-server
bind-key f switch-client -T choose
bind-key -T choose s choose-tree -Zs
bind-key -T choose w choose-tree -Zw