Files
2026-01-19 16:02:32 +01:00

166 lines
6.8 KiB
Bash

# ╭──────────────────────────────────────────────────────────────────────────────╮
# │ NNTmux Tmux Configuration │
# │ Modern styling with Nerd Font icons and Catppuccin-inspired colors │
# │ Requires: Nerd Font (FiraCode, JetBrains Mono, etc.) │
# ╰──────────────────────────────────────────────────────────────────────────────╯
# GNU-Screen compatible prefix
set -g prefix2 C-a
bind C-a send-prefix -2
# Set copy mode to use VI keys - Activates PgUp/PgDn buttons
setw -g mode-keys vi
# Allows for faster key repetition
set -s escape-time 0
# Set 256 color display with true color support
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",xterm-256color:Tc"
# Always select window 0 when attaching
set-hook -g client-attached 'select-window -t 0; select-pane -t 0.0'
#==============================================================================
# 🎨 COLOR PALETTE - Catppuccin Mocha Inspired
#==============================================================================
# Base colors
# bg_dark = colour234 (crust)
# bg = colour235 (base)
# bg_light = colour237 (surface0)
# fg = colour255 (text)
# fg_dim = colour250 (subtext0)
# accent = colour75 (sapphire)
# green = colour114 (green)
# yellow = colour221 (yellow)
# red = colour210 (red)
# purple = colour141 (mauve)
# pink = colour218 (pink)
# peach = colour215 (peach)
# teal = colour116 (teal)
#==============================================================================
# 📊 STATUS BAR - Modern Glassmorphism Style
#==============================================================================
# Status bar colors - darker base for contrast
set -g status-bg colour234
set -g status-fg colour255
# Status bar positioning and update interval
set -g status-position bottom
set -g status-interval 5
set -g status-justify left
# Left status - Session name with rounded powerline and icon
set -g status-left-length 50
set -g status-left "#[fg=colour234,bg=colour75,bold] #S #[fg=colour75,bg=colour237]#[fg=colour255,bg=colour237] #{session_windows} #[fg=colour237,bg=colour234]"
# Right status - System info with modern icons
# Shows: RAM | Current Load | Avg Load (5m) | Uptime | Time | Date
set -g status-right-length 200
set -g status-right "#[fg=colour237,bg=colour234]#[fg=colour116,bg=colour237] #(free -h | grep 'Mem' | awk '{print $3\"/\"$2}') #[fg=colour238,bg=colour237]│#[fg=colour221,bg=colour237] #(cat /proc/loadavg | awk '{print $1}') #[fg=colour238,bg=colour237]│#[fg=colour215,bg=colour237] 󰇙 #(cat /proc/loadavg | awk '{print $2}') #[fg=colour238,bg=colour237]│#[fg=colour114,bg=colour237] 󰥔 #(uptime -p | sed 's/up //' | sed 's/,.*//') #[fg=colour75,bg=colour237]#[fg=colour234,bg=colour75,bold] %H:%M %d %b "
# Window status format - inactive windows
setw -g window-status-format "#[fg=colour234,bg=colour236]#[fg=colour250,bg=colour236] #I #W #[fg=colour236,bg=colour234]"
# Window status format - active window with accent color
setw -g window-status-current-format "#[fg=colour234,bg=colour75]#[fg=colour234,bg=colour75,bold] #I #W #[fg=colour75,bg=colour234]"
# Window status separator
setw -g window-status-separator " "
#==============================================================================
# 🔲 PANE BORDERS - Modern Rounded Style with Icons
#==============================================================================
# Use rounded corners for pane borders (requires font with box-drawing chars)
set -g pane-border-lines heavy
# Pane border colors - subtle inactive, vibrant active
set -g pane-border-style fg=colour238
set -g pane-active-border-style fg=colour75
# Pane border format with status indicator and icons (requires tmux 3.2+)
set -g pane-border-format "#{?pane_active,#[fg=colour75]#[bg=colour235] ,#[fg=colour245]#[bg=colour235] }#[bold]#{pane_index}#[nobold] │ #{pane_title} #{?pane_active,#[fg=colour114]●,#[fg=colour238]○} "
set -g pane-border-status top
#==============================================================================
# 💬 MESSAGE STYLING
#==============================================================================
# Command message styling - accent color with bold
set -g message-style bg=colour75,fg=colour234,bold
# Command prompt styling
set -g message-command-style bg=colour237,fg=colour255
#==============================================================================
# 🪟 WINDOW OPTIONS
#==============================================================================
# Constrain window size to the maximum size of any client connected to that window
setw -g aggressive-resize on
# Activity monitoring with visual notification
setw -g monitor-activity on
set -g visual-activity off
# Window status activity styling - subtle notification
setw -g window-status-activity-style fg=colour221,bg=colour236,none
# Window status bell styling
setw -g window-status-bell-style fg=colour210,bg=colour236,bold
#==============================================================================
# 🔄 COPY MODE STYLING
#==============================================================================
# Copy mode colors
setw -g mode-style bg=colour75,fg=colour234,bold
#==============================================================================
# 🖱️ MOUSE & HISTORY
#==============================================================================
# Enable mouse support
set -g mouse on
# Scrollback line buffer per pane
set -g history-limit 6000
# Keep pane open after process ends - required for monitor.php re-spawns
set -g remain-on-exit on
#==============================================================================
# ⌨️ KEY BINDINGS
#==============================================================================
# Rename pane
bind t command-prompt -p " (rename-pane)" -I "#T" "select-pane -T '%%'"
# Reload config
bind r source-file ~/.tmux.conf \; display-message " Config reloaded!"
# Split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# Switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
#==============================================================================
# 📦 POPUP STYLING (tmux 3.2+)
#==============================================================================
# Popup border style
set -g popup-border-style fg=colour75
set -g popup-border-lines rounded