some tmux changes
This commit is contained in:
parent
511c7cd548
commit
9baedc315f
1 changed files with 125 additions and 83 deletions
208
.tmux.conf
208
.tmux.conf
|
@ -2,103 +2,145 @@
|
||||||
# General tmux Settings
|
# General tmux Settings
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
# ───────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
# Enable 256 color support for tmux
|
# ─< Enable 256 color support for tmux >──────────────────────────────────────────────────
|
||||||
set-option -sa terminal-overrides ",xterm-256color*:Tc"
|
set-option -sa terminal-overrides ",xterm-256color*:Tc"
|
||||||
|
|
||||||
# Enable mouse support (for scrolling, resizing, etc.)
|
# ─< Enable mouse support (for scrolling, resizing, etc.) >───────────────────────────────
|
||||||
set -g mouse on
|
set -g mouse on
|
||||||
|
|
||||||
|
# ─< set the prefix to "C-Space" >────────────────────────────────────────────────────────
|
||||||
|
set -g prefix C-Space
|
||||||
|
bind C-Space send-prefix
|
||||||
|
|
||||||
|
# Ensure that when prefix is pressed, the mode indicator is shown
|
||||||
|
set -g mode-keys vi # Use vi keybindings in copy mode
|
||||||
|
set -g status-left-length 30 # Limit length of the left status line
|
||||||
|
set -g status-right-length 60 # Limit length of the right status line
|
||||||
|
|
||||||
|
# ─< Start windows and panes at index 1 instead of 0 >────────────────────────────────────
|
||||||
|
set -g base-index 1
|
||||||
|
set -g pane-base-index 1
|
||||||
|
set-window-option -g pane-base-index 1
|
||||||
|
set-option -g renumber-windows on
|
||||||
|
|
||||||
|
# set -g status-right '#{prefix_highlight} | %d.%m.%Y | %H:%M'
|
||||||
|
|
||||||
|
# prompt to display when tmux prefix key is pressed
|
||||||
|
set -g @mode_indicator_prefix_prompt ' '
|
||||||
|
|
||||||
|
# prompt to display when tmux is in copy mode
|
||||||
|
set -g @mode_indicator_copy_prompt ' COPY '
|
||||||
|
|
||||||
|
# prompt to display when tmux has synchronized panes
|
||||||
|
set -g @mode_indicator_sync_prompt ' SYNC '
|
||||||
|
|
||||||
|
# prompt to display when tmux is in normal mode
|
||||||
|
set -g @mode_indicator_empty_prompt ' '
|
||||||
|
|
||||||
|
# style values for prefix prompt
|
||||||
|
set -g @mode_indicator_prefix_mode_style 'bg=#fe8019,fg=black'
|
||||||
|
|
||||||
|
# style values for copy prompt
|
||||||
|
set -g @mode_indicator_copy_mode_style 'bg=yellow,fg=black'
|
||||||
|
|
||||||
|
# style values for sync prompt
|
||||||
|
set -g @mode_indicator_sync_mode_style 'bg=red,fg=black'
|
||||||
|
|
||||||
|
# style values for empty prompt
|
||||||
|
set -g @mode_indicator_empty_mode_style 'bg=#fabd2f,fg=black'
|
||||||
|
|
||||||
|
# ────────────────────────────────< theme - minimal config >────────────────────────────────
|
||||||
|
# set -g @plugin 'niksingh710/minimal-tmux-status'
|
||||||
|
# set -g @minimal-tmux-fg "#1d2021"
|
||||||
|
# set -g @minimal-tmux-bg "#fabd2f"
|
||||||
|
# set -g @minimal-tmux-indicator-str " $USER "
|
||||||
|
# set -g @minimal-tmux-indicator true
|
||||||
|
# set -g @minimal-tmux-status "bottom"
|
||||||
|
#
|
||||||
|
# # Enables or disables the left and right status bar
|
||||||
|
# set -g @minimal-tmux-right true
|
||||||
|
# set -g @minimal-tmux-left true
|
||||||
|
#
|
||||||
|
# # expanded icon (fullscreen icon)
|
||||||
|
# set -g @minimal-tmux-expanded-icon " "
|
||||||
|
#
|
||||||
|
# # on all tabs (default is false)
|
||||||
|
# # false will make it visible for the current tab only
|
||||||
|
# set -g @minimal-tmux-show-expanded-icons-for-all-tabs true
|
||||||
|
#
|
||||||
|
# # To make the selection box rounded () or edged <>
|
||||||
|
# # Default is nothing, when set to true default is edged
|
||||||
|
# set -g @minimal-tmux-use-arrow false
|
||||||
|
# set -g @minimal-tmux-right-arrow "#[fg=#fabd2f]#[bg=#1d2021]"
|
||||||
|
# set -g @minimal-tmux-left-arrow "#[fg=#fabd2f]#[bg=#1d2021]"
|
||||||
|
#
|
||||||
|
# # Not recommended to change these values
|
||||||
|
# set -g @minimal-tmux-status-right "#[fg=#fabd2f]#[bg=#1d2021]#[fg=#1d2021]#[bg=#fabd2f] %d.%m.%Y - %H:%M#[fg=#fabd2f]#[bg=black]"
|
||||||
|
# # set -g @minimal-tmux-status-right "%d.%m.%Y"
|
||||||
|
# # set -g @minimal-tmux-status-left "refer to code"
|
||||||
|
#
|
||||||
|
# # To add or remove extra text in status bar
|
||||||
|
# set -g @minimal-tmux-status-right-extra "#[fg=#fb4934] #S"
|
||||||
|
# set -g @minimal-tmux-status-left-extra ""
|
||||||
|
#
|
||||||
|
# # If getting strings cut in left status or right
|
||||||
|
# # Here 20 is the length of the characters in the string
|
||||||
|
# set -g status-right-length 20
|
||||||
|
# set -g status-left-length 20
|
||||||
|
# ───────────────────────────────────< minimal --- end >─────────────────────────────────
|
||||||
|
|
||||||
|
# ────────────────────────────────< theme - gruvbox config >────────────────────────────────
|
||||||
|
set -g @plugin 'egel/tmux-gruvbox' # Gruvbox theme for tmux
|
||||||
|
set -g @tmux-gruvbox 'dark256' # Can be 'dark', 'dark256', 'light', 'light256'
|
||||||
|
set -g @tmux-gruvbox-left-status-a '#{tmux_mode_indicator}'
|
||||||
|
set -g @tmux-gruvbox-right-status-z '#h' # Hostname and tmux mode indicator
|
||||||
|
set -g @tmux-gruvbox-right-status-x ' %H:%M' # Time format 24H
|
||||||
|
set -g @tmux-gruvbox-right-status-y ' %d.%m.%Y' # Date format (e.g., 30.01.2024)
|
||||||
|
|
||||||
|
# ───────────────────────────────────< gruvbox --- end >─────────────────────────────────
|
||||||
|
|
||||||
|
# ──────────────────────────────< theme - gruvbox 2 - config >──────────────────────────────
|
||||||
|
# set -g @plugin 'l-lin/tmux-colorscheme'
|
||||||
|
|
||||||
|
# set -g @tmux-colorscheme-show-upload-speed true
|
||||||
|
# set -g @tmux-colorscheme-show-download-speed true
|
||||||
|
# set -g @tmux-colorscheme-show-prefix-highlight true
|
||||||
|
# set -g @tmux-colorscheme-show-battery true
|
||||||
|
# set -g @tmux-colorscheme-show-cpu true
|
||||||
|
# set -g @tmux-colorscheme-show-cpu-temp true
|
||||||
|
# set -g @tmux-colorscheme-show-ram true
|
||||||
|
|
||||||
|
# set -g @tmux-colorscheme "gruvbox-dark"
|
||||||
|
# ──────────────────────────────────< gruvbox 2 --- end >────────────────────────────────
|
||||||
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
# ───────────────────────────────────────────────────────────────────────────
|
||||||
# Key Bindings
|
# Key Bindings
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
# ───────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
# Set the prefix key to C-Space instead of default C-b
|
# Set the prefix key to C-Space instead of default C-b
|
||||||
unbind C-b
|
unbind C-b
|
||||||
set -g prefix C-Space
|
|
||||||
bind C-Space send-prefix
|
|
||||||
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
# ─< Use C-h and C-l to switch between panes >────────────────────────────────────────────
|
||||||
# Window and Pane Indexing
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Start windows and panes at index 1 instead of 0
|
|
||||||
set -g base-index 1
|
|
||||||
set -g pane-base-index 1
|
|
||||||
set-window-option -g pane-base-index 1
|
|
||||||
set-option -g renumber-windows on
|
|
||||||
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
# Split Panes in the Current Directory
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Split horizontally or vertically while preserving the current directory
|
|
||||||
bind h split-window -h -c "#{pane_current_path}"
|
|
||||||
bind j split-window -v -c "#{pane_current_path}"
|
|
||||||
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
# Make Pane Fullscreen
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Toggle the current pane between normal and fullscreen mode
|
|
||||||
bind -n C-f resize-pane -Z
|
|
||||||
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
# Navigation between Panes
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Use C-h and C-l to switch between panes
|
|
||||||
bind -n C-h select-pane -L
|
bind -n C-h select-pane -L
|
||||||
bind -n C-l select-pane -R
|
bind -n C-l select-pane -R
|
||||||
|
bind -n C-f resize-pane -Z
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
# Plugins
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Use TPM (Tmux Plugin Manager) to manage plugins
|
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
|
||||||
|
|
||||||
# List of Plugins to Install
|
|
||||||
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
|
|
||||||
set -g @plugin 'egel/tmux-gruvbox' # Gruvbox theme for tmux
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-sensible' # Sensible tmux defaults
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-yank' # Yank (copy-paste) support
|
|
||||||
set -g @plugin 'b0o/tmux-autoreload' # Auto-reload tmux config when updated
|
|
||||||
|
|
||||||
# Initialize TPM (Tmux Plugin Manager)
|
|
||||||
run '~/.tmux/plugins/tpm/tpm'
|
|
||||||
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
# Gruvbox Theme Configuration
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Gruvbox color scheme settings
|
|
||||||
set -g @tmux-gruvbox 'dark256' # Can be 'dark', 'dark256', 'light', 'light256'
|
|
||||||
set -g @tmux-gruvbox-right-status-z '#h #{tmux_mode_indicator}' # Hostname and tmux mode indicator
|
|
||||||
set -g @tmux-gruvbox-right-status-x '%d.%m.%Y' # Date format (e.g., 30.01.2024)
|
|
||||||
# Customize status line to show the mode indicator when in prefix mode
|
|
||||||
set -g status on
|
|
||||||
set -g status-interval 2 # Refresh every 2 seconds
|
|
||||||
|
|
||||||
# Ensure that when prefix is pressed, the mode indicator is shown
|
|
||||||
set -g mode-keys vi # Use vi keybindings in copy mode
|
|
||||||
set -g status-left-length 30 # Limit length of the left status line
|
|
||||||
set -g status-right-length 60 # Limit length of the right status line
|
|
||||||
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
# Additional Settings (Optional)
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Allow pane splitting and navigation using Emacs-like bindings
|
|
||||||
# 'C-h' (left) and 'C-l' (right) to switch between panes.
|
|
||||||
# This is already defined earlier in the config.
|
|
||||||
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
# Auto-reload tmux config on changes (with TPM)
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
|
||||||
|
|
||||||
# Reload tmux configuration without restarting tmux
|
# Reload tmux configuration without restarting tmux
|
||||||
bind r source-file ~/.tmux.conf \; display-message "Config reloaded!"
|
bind r source-file ~/.tmux.conf \; display-message "Config reloaded!"
|
||||||
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
# # ────────────────────────────────────< status configs >────────────────────────────────────
|
||||||
# Other customizations or plugins can go below as needed.
|
|
||||||
# ───────────────────────────────────────────────────────────────────────────
|
# ───────────────────────────────────────< plugins >─────────────────────────────────────
|
||||||
|
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-sensible' # Sensible tmux defaults
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-yank' # Yank (copy-paste) support
|
||||||
|
set -g @plugin 'b0o/tmux-autoreload' # Auto-reload tmux config when updated
|
||||||
|
set -g @plugin 'MunifTanjim/tmux-mode-indicator'
|
||||||
|
# set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
|
||||||
|
if "test ! -d ~/.tmux/plugins/tpm" \
|
||||||
|
"run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'"
|
||||||
|
|
||||||
|
# Initialize TPM (Tmux Plugin Manager)
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue