dotfiles/.tmux.conf
2025-03-18 17:55:27 -05:00

111 lines
3.2 KiB
Plaintext

# Switch to screen prefix
# Ctrl-a
unbind C-b
set -g prefix C-a
bind-key b send-prefix
set -g base-index 1 # start windows numbering at 1
set-window-option -g pane-base-index 1 # make pane numbering consistent with windows
set-window-option -g automatic-rename on # rename window to reflect current program
set -g renumber-windows on # renumber windows when a window is closed
set -g set-titles on # set terminal title
## Commonly found settings not 100% sure on the point
set-window-option -g monitor-activity on
set-option -g visual-activity on
#Double cntl-a goes to last window
bind-key C-a last-window
# Turn on mouse support
set-option -g mouse on
bind-key -n C-S-Left swap-pane -t :-
bind-key -n C-S-Right swap-pane -t :+
#Cntl-a Backspace goes to previous window
unbind BSpace
bind BSpace previous-window
#Splitting to current $PWD
bind % split-window -c "#{pane_current_path}" -h
bind '"' split-window -c "#{pane_current_path}" -v
bind c new-window -c "#{pane_current_path}"
#kill window/server with confirm
bind-key k confirm kill-window
bind-key K confirm kill-server
# Status bar
# Enable two lines for the status bar
set-option -g status 2
set-option -g status-position bottom
# First line: Center (Window List)
set-option -g status-format[0] '#[align=centre]#{W:#{E:window-status-format} ,#{E:window-status-current-format} }'
# Second line: Center (Time/Date, ACPI, CPU/Mem, Hostname)
set-option -g status-format[1] "#[align=centre]#[fg=red][Pending Updates: #(checkupdates | wc -l || echo "N/A")] #[fg=cyan][%H:%M %d-%b-%y] #[fg=yellow][#(acpi -b | awk -F', ' '{print $2, $3}')] #[fg=green,bg=default,bright][#(tmux-mem-cpu-load)] #[fg=blue][#h]"
# Ensure window list is properly justified
# set-option -g status-justify centre # Changed to centre
# Background color for status bar (Blue)
set -g status-bg colour24
set -g status-fg colour231
# Window list formatting
set-window-option -g window-status-format '#[fg=colour117,bg=colour24] #I:#W #[fg=colour24,bg=colour24]'
set-window-option -g window-status-current-format '#[fg=colour16,bg=colour231] #I:#W #[fg=colour24,bg=colour24]'
# Bind function keys to windows
bind -n F1 select-window -t 1
bind -n F2 select-window -t 2
bind -n F3 select-window -t 3
bind -n F4 select-window -t 4
bind -n F5 select-window -t 5
bind -n F6 select-window -t 6
bind -n F7 select-window -t 7
bind -n F8 select-window -t 8
bind -n F9 select-window -t 9
bind -n F10 select-window -t 10
#start programs
new -s mysession -n "sys-mon" glances
neww -n "Log" "journalctl -f"
#neww -n "ARA Server" "source ~/Repos/homelab/.venv/bin/activate && ara-manage runserver"
neww
#neww -n "Music" ncmpcpp
#neww -n "Deluge" deluge-console
#reload tmux config
bind R source-file ~/.tmux.conf \; display-message "Config reloaded..."
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
#vi keybindings
set -g mode-keys vi
#send actual f keys
bind F1 send-keys F1
bind F2 send-keys F2
bind F3 send-keys F3
bind F4 send-keys F4
bind F5 send-keys F5
bind F6 send-keys F6
bind F7 send-keys F7
bind F8 send-keys F8
bind F9 send-keys F9
bind F10 send-keys F10
bind F11 send-keys F11
bind F12 send-keys F12
set -g history-limit 50000
set-window-option -g aggressive-resize on
set-option -g automatic-rename on