# ─────────────────────────────────────────────────────────────────────────── # General tmux Settings # ─────────────────────────────────────────────────────────────────────────── # ─< Enable 256 color support for tmux >────────────────────────────────────────────────── set-option -sa terminal-overrides ",xterm-256color*:Tc" set -s escape-time 3 # ─< Enable mouse support (for scrolling, resizing, etc.) >─────────────────────────────── set -g mouse on # Set the prefix key to C-Space instead of default C-b unbind C-b # unbind C-q # unbind C-w # unbind C-e # ─< set the prefix to "C-Space" >──────────────────────────────────────────────────────── set -g prefix C-Space bind C-Space send-prefix # ─< set the prefix2 to "C-b" >──────────────────────────────────────────────────────── # NOTE: for guacamole use set -g prefix2 C-b bind C-b send-prefix bind h copy-mode set -g visual-activity on set -g visual-bell on set -g status-keys vi # bind-key -n Tab previous-window # bind-key -n BTab next-window # right alt + [ 1, 2, 3, 4, 5, 6 ] bind-key -n ¹ select-window -t :1 bind-key -n ² select-window -t :2 bind-key -n ³ select-window -t :3 bind-key -n ¼ select-window -t :4 bind-key -n ½ select-window -t :5 bind-key -n ¬ select-window -t :6 # right alt + h/l bind -n ħ select-pane -L bind -n ł select-pane -R # ─< set v for starting selection in copy mode >────────────────────────────────────────── bind -T copy-mode-vi v send -X begin-selection # ─< Reload tmux configuration without restarting tmux >────────────────────────────────── bind r source-file ~/.tmux.conf \; display-message "Config reloaded!" # fullscreen bind -n C-f resize-pane -Z # 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 '  ' # # # prompt to display when tmux has synchronized panes # set -g @mode_indicator_sync_prompt '  ' # # # 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=#1d2021' # # # style values for copy prompt # set -g @mode_indicator_copy_mode_style 'bg=cyan,fg=#1d2021' # # # style values for sync prompt # set -g @mode_indicator_sync_mode_style 'bg=red,fg=#1d2021' # # # style values for empty prompt # set -g @mode_indicator_empty_mode_style 'bg=#fabd2f,fg=#1d2021' # ────────────────────────────────< 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 @plugin 'https://git.k4li.de/mirrors/tmux-gruvbox' # 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 "$USER@#h " # Hostname and tmux mode indicator # set -g @tmux-gruvbox-right-status-x '#[fg=yellow] %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 - rose-pine >──────────────────────────────── set -g @plugin 'rose-pine/tmux' set -g @rose_pine_variant 'moon' # Options are 'main', 'moon' or 'dawn' set -g @rose_pine_host 'on' # Enables hostname in the status bar # set -g @rose_pine_date_time '' # It accepts the date UNIX command format (man date for info) set -g @rose_pine_user 'on' # Turn on the username component in the statusbar set -g @rose_pine_directory 'on' # Turn on the current folder component in the status bar # set -g @rose_pine_bar_bg_disable '' # Disables background color, for transparent terminal emulators # # If @rose_pine_bar_bg_disable is set to 'on', uses the provided value to set the background color # # It can be any of the on tmux (named colors, 256-color set, `default` or hex colors) # # See more on http://man.openbsd.org/OpenBSD-current/man1/tmux.1#STYLES # set -g @rose_pine_bar_bg_disabled_color_option 'default' # set -g @rose_pine_only_windows '' # Leaves only the window module, for max focus and space set -g @rose_pine_disable_active_window_menu 'on' # Disables the menu that shows the active window on the left # # set -g @rose_pine_default_window_behavior 'on' # Forces tmux default window list behaviour # set -g @rose_pine_show_current_program 'on' # Forces tmux to show the current running program as window name # set -g @rose_pine_show_pane_directory 'on' # Forces tmux to show the current directory as window name # # Previously set -g @rose_pine_window_tabs_enabled # # # Example values for these can be: set -g @rose_pine_left_separator '  ' # The strings to use as separators are 1-space padded set -g @rose_pine_right_separator '  ' # Accepts both normal chars & nerdfont icons set -g @rose_pine_field_separator ' | ' # Again, 1-space padding, it updates with prefix + I set -g @rose_pine_window_separator ':' # Replaces the default `:` between the window number and name # # # These are not padded set -g @rose_pine_session_icon ' 󰊠 ' #  Changes the default icon to the left of the session name set -g @rose_pine_current_window_icon '' # Changes the default icon to the left of the active window name set -g @rose_pine_folder_icon '' # Changes the default icon to the left of the current directory folder set -g @rose_pine_username_icon '' # Changes the default icon to the right of the hostname set -g @rose_pine_hostname_icon '󰒋' # Changes the default icon to the right of the hostname set -g @rose_pine_date_time_icon '󰃰' # Changes the default icon to the right of the date module set -g @rose_pine_window_status_separator "  " # Changes the default icon that appears between window names # Very beta and specific opt-in settings, tested on v3.2a, look at issue #10 # set -g @rose_pine_prioritize_windows '' # Disables the right side functionality in a certain window count / terminal width # set -g @rose_pine_width_to_hide '80' # Specify a terminal width to toggle off most of the right side functionality # set -g @rose_pine_window_count '5' # Specify a number of windows, if there are more than the number, do the same as width_to_hide # ──────────────────────────────────< rose-pine - 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 # ─────────────────────────────────────────────────────────────────────────── # # ────────────────────────────────────< status configs >──────────────────────────────────── # ───────────────────────────────────────< 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'