From: Alexander Goussas Date: Fri, 27 Dec 2024 01:51:55 +0000 (-0500) Subject: add tmux configuration X-Git-Url: http://git.frustrated-labs.net/?a=commitdiff_plain;h=026c60e714d2700790a7d8713ca1cecc680d90ed;p=dotfiles.git add tmux configuration --- diff --git a/Makefile.common b/Makefile.common index 5fbf587..a572e94 100644 --- a/Makefile.common +++ b/Makefile.common @@ -1 +1 @@ -PKGS_COMMON := nvim zsh +PKGS_COMMON := nvim zsh tmux diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf new file mode 100644 index 0000000..5e38c92 --- /dev/null +++ b/tmux/.tmux.conf @@ -0,0 +1,94 @@ +# Initial setup +set -g default-terminal xterm-256color +set -g status-keys vi + +# use C-j and C-f for the prefix. +set-option -g prefix C-a +set-option -g prefix2 C-a +unbind-key C-j +bind-key C-a send-prefix +set -g base-index 1 + +# Use Alt-arrow keys without prefix key to switch panes +bind -n M-h select-pane -L +bind -n M-l select-pane -R +bind -n M-k select-pane -U +bind -n M-j select-pane -D + +# Set easier window split keys +bind-key v split-window -h +bind-key h split-window -v + +# Shift arrow to switch windows +bind -n S-Left previous-window +bind -n S-Right next-window + +# Easily reorder windows with CTRL+SHIFT+Arrow +bind-key -n C-S-Left swap-window -t -1 +bind-key -n C-S-Right swap-window -t +1 + +# Synchronize panes +bind-key y set-window-option synchronize-panes\; display-message "synchronize mode toggled." + +# Easy config reload +bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded." + +# Easy clear history +bind-key L clear-history + +# Key bindings for copy-paste +setw -g mode-keys vi +unbind p +bind p paste-buffer +bind-key -T copy-mode-vi 'v' send -X begin-selection +bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel + +# Mouse Mode +set -g mouse on + +# Lengthen the amount of time status messages are displayed +set-option -g display-time 3000 +set-option -g display-panes-time 3000 + +# Set the base-index to 1 rather than 0 +set -g base-index 1 +set-window-option -g pane-base-index 1 + +# Automatically set window title +set-window-option -g automatic-rename on +set-option -g set-titles on + +# Allow the arrow key to be used immediately after changing windows. +set-option -g repeat-time 0 + +# No delay for escape key press +set -sg escape-time 0 + +# Theme +set-window-option -g window-status-current-style bold,bg=blue,fg=colour234 +set-window-option -g window-status-style fg=colour35 +set -g window-status-activity-style bold,bg=colour234,fg=white +set-option -g message-style bg=colour237,fg=colour231 +set-option -g pane-border-style fg=colour36 +set-option -g pane-active-border-style fg=colour35 + +# Change background color of a tab when activity occurs +setw -g monitor-activity on + +# Do NOT reset the color of the tab after activity stops occuring +setw -g monitor-silence 0 + +# Disable bell +setw -g monitor-bell off + +# Disable visual text box when activity occurs +set -g visual-activity off + +# Status Bar +set -g status-justify centre +set -g status-bg black +set -g status-fg colour35 +set -g status-interval 60 +set -g status-left-length 50 +set -g status-left "#[bg=colour35]💻#[fg=colour234,bold] #H#[bg=colour34]#[bg=colour35,nobold]#[fg=colour234] [#S] $tmux_target_lower" +set -g status-right '#[bg=colour35] 🕔 #[fg=colour234,bold]%H:%M '