Tmux config added

This commit is contained in:
TheFlyingFool 2025-05-15 00:38:55 -05:00
parent a823971026
commit b874bdb8b6

117
.config/tmux/tmux.conf Normal file
View File

@ -0,0 +1,117 @@
# tmux config
# - Prefix Key - #
# Change prefix from C-b to C-a
unbind C-b
set -g prefix C-a
# Send C-a to application (press C-a, then a)
bind-key a send-prefix
# --- Window and Pane Numbering ---
# Start numbering at 1
set -g base-index 1
set-window-option -g pane-base-index 1
# --- Automatic Naming/Renumbering ---
# Rename window by program
set-window-option -g automatic-rename on
# Renumber windows on close
set -g renumber-windows on
# --- Terminal Title ---
# Set terminal title
set -g set-titles on
# --- Activity Monitoring ---
# Highlight window on activity
set-window-option -g monitor-activity on
set-option -g visual-activity on
# --- Aggressive Resize (Potentially Redundant) ---
set-window-option -g aggressive-resize on
set-option -g automatic-rename on
# --- Navigation ---
# Go to last window (C-a C-a)
bind-key C-a last-window
# --- Mouse Support ---
set-option -g mouse on
# --- Navigation (Continued) ---
# Go to previous window (C-a Backspace)
unbind BSpace
bind BSpace previous-window
# --- Splitting and New Windows ---
# Split horizontal in current path (C-a %)
bind % split-window -c "#{pane_current_path}" -h
# Split vertical in current path (C-a ")
bind '"' split-window -c "#{pane_current_path}" -v
# New window in current path (C-a c)
bind c new-window -c "#{pane_current_path}"
# --- Killing Windows/Server ---
# Kill window with confirm (C-a k)
bind-key k confirm kill-window
# Kill server with confirm (C-a K)
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]"
# 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]'
#start programs
new -s mysession -n "sys-mon" glances
neww -n "Log" "journalctl -f"
# neww -n "Music" if-shell -b '[[ "$TERM" == "xterm-kitty" ]]' "rmpc" if-shell -b '[["$TERM" == " != "kitty" ]] "ncmpcpp"
# neww -n "ARA Server" "bash -c 'cd ~/Repos/homelab-ansible && export ARA_SETTINGS="/home/nick/Repos/homelab-ansible/.ara/server/settings.yaml" && source .venv/bin/activate && ara-manage runserver'"
# neww -n "Deluge" deluge-console
neww
#reload tmux config
bind R source-file ~/.tmux.conf \; display-message "Config reloaded..."
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
# --- Function Keys ---
# F1-F12 send key to application
bind -n F1 send-keys F1
bind -n F2 send-keys F2
bind -n F3 send-keys F3
bind -n F4 send-keys F4
bind -n F5 send-keys F5
bind -n F6 send-keys F6
bind -n F7 send-keys F7
bind -n F8 send-keys F8
bind -n F9 send-keys F9
bind -n F10 send-keys F10
bind -n F11 send-keys F11
bind -n F12 send-keys F12
# C-a F1-F10 switch windows
bind F1 select-window -t :=1
bind F2 select-window -t :=2
bind F3 select-window -t :=3
bind F4 select-window -t :=4
bind F5 select-window -t :=5
bind F6 select-window -t :=6
bind F7 select-window -t :=7
bind F8 select-window -t :=8
bind F9 select-window -t :=9
bind F10 select-window -t :=10