201 lines
8.9 KiB
Bash
201 lines
8.9 KiB
Bash
unbind r
|
|
|
|
bind -n M-H previous-window
|
|
bind -n M-L next-window
|
|
|
|
set -g prefix C-s
|
|
set -g mouse on
|
|
|
|
bind _ split-window -h # Split vertical using prefix + |
|
|
bind - split-window -v # Split horizontal using prefix + -
|
|
|
|
# Reloading
|
|
bind r source-file ~/.tmux.conf \; display "Config Reloaded!"
|
|
|
|
# Start windows and panes at 1, not 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
|
|
|
|
# Allow Kitty graphics protocol to pass through
|
|
set -gq allow-passthrough on
|
|
|
|
# Tell applications we're running in Kitty
|
|
set -g default-terminal "tmux-256color"
|
|
set -as terminal-features ',kitty:RGB'
|
|
set -as terminal-overrides ',kitty:Tc'
|
|
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm'
|
|
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m'
|
|
|
|
# Pi integration
|
|
set -g extended-keys on
|
|
set -g extended-keys-format csi-u
|
|
|
|
bind-key h select-pane -L
|
|
bind-key j select-pane -D
|
|
bind-key k select-pane -U
|
|
bind-key l select-pane -R
|
|
|
|
# # Configure Catppuccin
|
|
# set -g @catppuccin_flavor "mocha"
|
|
# set -g @catppuccin_status_background "none"
|
|
# set -g @catppuccin_window_status_style "none"
|
|
# set -g @catppuccin_pane_status_enabled "off"
|
|
# set -g @catppuccin_pane_border_status "off"
|
|
#
|
|
# Configure Online
|
|
set -g @online_icon "ok"
|
|
set -g @offline_icon "nok"
|
|
|
|
# status left look and feel
|
|
set -g status-left-length 100
|
|
set -g status-left ""
|
|
set -ga status-left "#{?client_prefix,#{#[bg=#{@thm_red},fg=#{@thm_bg},bold] #S },#{#[bg=#{@thm_bg},fg=#{@thm_green}] #S }}"
|
|
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
|
|
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_maroon}] #{pane_current_command} "
|
|
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
|
|
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_blue}] #{=/-32/...:#{s|$USER|~|:#{b:pane_current_path}}} "
|
|
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]#{?window_zoomed_flag,│,}"
|
|
set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_yellow}]#{?window_zoomed_flag, zoom ,}"
|
|
|
|
# status right look and feel
|
|
set -g status-right-length 100
|
|
set -g status-right ""
|
|
set -ga status-right "#{?#{e|>=:10,#{battery_percentage}},#{#[bg=#{@thm_red},fg=#{@thm_bg}]},#{#[bg=#{@thm_bg},fg=#{@thm_pink}]}} #{battery_icon} #{battery_percentage} "
|
|
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
|
|
|
|
# Configure Tmux
|
|
set -g status-position top
|
|
set -g status-style "bg=#{@thm_bg}"
|
|
set -g status-justify "absolute-centre"
|
|
|
|
# continuum
|
|
set -g @continuum-restore 'on'
|
|
|
|
# pane border look and feel
|
|
setw -g pane-border-status top
|
|
setw -g pane-border-format ""
|
|
setw -g pane-active-border-style "bg=#{@thm_bg},fg=#{@thm_overlay_0}"
|
|
setw -g pane-border-style "bg=#{@thm_bg},fg=#{@thm_surface_0}"
|
|
setw -g pane-border-lines single
|
|
|
|
# window look and feel
|
|
set -wg automatic-rename on
|
|
set -g automatic-rename-format "Window"
|
|
|
|
set -g window-status-format " #I#{?#{!=:#{window_name},Window},: #W,} "
|
|
set -g window-status-style "bg=#{@thm_bg},fg=#{@thm_rosewater}"
|
|
set -g window-status-last-style "bg=#{@thm_bg},fg=#{@thm_peach}"
|
|
set -g window-status-activity-style "bg=#{@thm_red},fg=#{@thm_bg}"
|
|
set -g window-status-bell-style "bg=#{@thm_red},fg=#{@thm_bg},bold"
|
|
set -gF window-status-separator "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}]│"
|
|
|
|
set -g window-status-current-format " #I#{?#{!=:#{window_name},Window},: #W,} "
|
|
set -g window-status-current-style "bg=#{@thm_peach},fg=#{@thm_bg},bold"
|
|
|
|
# set vi-mode
|
|
set-window-option -g mode-keys vi
|
|
# key binds
|
|
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
|
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
|
bind-key -T copy-mode-vi y send-keys -X copy-selections-and-cancel
|
|
|
|
## tmux in yazy
|
|
set -g allow-passthrough on
|
|
set -ga update-environment TERM
|
|
set -ga update-environment TERM_PROGRAM
|
|
|
|
# List of plugins
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
set -g @plugin 'tmux-plugins/tmux-battery'
|
|
set -g @plugin 'catppuccin/tmux'
|
|
set -g @plugin 'christoomey/vim-tmux-navigator'
|
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
|
set -g @plugin 'sainnhe/tmux-fzf'
|
|
set -g @plugin 'alexwforsythe/tmux-which-key'
|
|
# set -g @plugin 'tmux-plugins/tmux-resurrect'
|
|
# set -g @plugin 'tmux-plugins/tmux-continuum'
|
|
set -g @plugin 'YlanAllouche/tmux-task-monitor'
|
|
set -g @plugin 'rickstaa/tmux-notify'
|
|
set -g @plugin 'TheSast/tmux-nav-master'
|
|
set -g @plugin 'omerxx/tmux-sessionx'
|
|
# set -g @plugin 'egel/tmux-gruvbox'
|
|
set -g @plugin 'rose-pine/tmux'
|
|
# set desired theme options...
|
|
# set -g @tmux-gruvbox 'dark' # or 'dark256', 'light', 'light256'
|
|
set -g @rose_pine_variant 'moon' # Options are 'main', 'moon' or 'dawn'
|
|
|
|
# Other examples:
|
|
# set -g @plugin 'github_username/plugin_name'
|
|
# set -g @plugin 'github_username/plugin_name#branch'
|
|
# set -g @plugin 'git@github.com:user/plugin'
|
|
# set -g @plugin 'git@bitbucket.com:user/plugin'
|
|
|
|
# bind-key "T" run-shell "sesh connect \"$(
|
|
# sesh list --icons | fzf-tmux -p 80%,70% \
|
|
# --no-sort --ansi --border-label ' sesh ' --prompt '⚡ ' \
|
|
# --header ' ^a all ^t tmux ^g configs ^x zoxide ^d tmux kill ^f find' \
|
|
# --bind 'tab:down,btab:up' \
|
|
# --bind 'ctrl-a:change-prompt(⚡ )+reload(sesh list --icons)' \
|
|
# --bind 'ctrl-t:change-prompt(🪟 )+reload(sesh list -t --icons)' \
|
|
# --bind 'ctrl-g:change-prompt(⚙️ )+reload(sesh list -c --icons)' \
|
|
# --bind 'ctrl-x:change-prompt(📁 )+reload(sesh list -z --icons)' \
|
|
# --bind 'ctrl-f:change-prompt(🔎 )+reload(fd -H -d 2 -t d -E .Trash . ~)' \
|
|
# --bind 'ctrl-d:execute(tmux kill-session -t {2..})+change-prompt(⚡ )+reload(sesh list --icons)' \
|
|
# --preview-window 'right:55%' \
|
|
# --preview 'sesh preview {}'
|
|
# )\""# set -g allow-passthrough on
|
|
|
|
# tmux-fzf config
|
|
# Default value in tmux < 3.2
|
|
TMUX_FZF_OPTIONS="-m"
|
|
|
|
# Default value in tmux >= 3.2
|
|
TMUX_FZF_OPTIONS="-p -w 100% -h 50% -m"
|
|
|
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
|
set -g @rose_pine_host 'on' # Enables hostname in the status bar
|
|
set -g @rose_pine_hostname_short 'on' # Makes the hostname shorter by using tmux's '#h' format
|
|
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 'on' # 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'
|
|
|
|
# Some of these are mutually exclusive, recommended to test which one you like
|
|
set -g @rose_pine_only_windows 'on' # Leaves only the window module, for max focus and space
|
|
set -g @rose_pine_window_status_separator " " # Changes the default icon that appears between window names
|
|
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 ' ' # Default is two-space-padded, but can be set to anything
|
|
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
|
|
#
|
|
# Very beta and specific opt-in settings, tested on v3.2a, look at issue #10
|
|
set -g @rose_pine_prioritize_windows 'on' # 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
|
|
|
|
run '~/.tmux/plugins/tpm/tpm'
|