mirror of
https://github.com/gyoder/dots.git
synced 2026-07-17 18:19:58 +00:00
90 lines
4.5 KiB
Bash
90 lines
4.5 KiB
Bash
# TMUX_COLORTAG_ROUNDED_POWERLINE=yes
|
|
set-environment -g PATH "/Users/gyoder/.local/nvim-macos-arm64/bin:/opt/homebrew/Cellar/universal-ctags/HEAD-43ca055/bin:/Users/gyoder/.local/xonsh-env/xbin:/Users/gyoder/.local/xonsh-env/xbin:/opt/homebrew/opt/icu4c@76/sbin:/opt/homebrew/opt/icu4c@76/bin:/opt/homebrew/opt/llvm/bin:/Users/gyoder/.dotnet/tools:/Users/gyoder/.local/bin:/Users/gyoder/Library/Python/3.9/bin:/opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/emulators:/opt/homebrew/bin/iodine:/opt/homebrew/bin:/opt/homebrew/opt/zig@0.14/bin:/Users/gyoder/.platformio/penv/bin/:/Users/gyoder/.cargo/bin:/Users/gyoder/.local/xonsh-env/xbin:/Users/gyoder/go/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/bin:/sbin:/opt/homebrew/opt/coreutils/libexec/gnubin:/opt/homebrew/opt/binutils/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/pkg/env/global/bin:/usr/local/share/dotnet:~/.dotnet/tools:/opt/homebrew/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Ghostty.app/Contents/MacOS:/Users/gyoder/.lmstudio/bin:$PATH"
|
|
set-environment -g TMUX_POWERLINE_THEME bubble
|
|
# Options
|
|
set -g mouse on
|
|
# set -g default-terminal "screen-256color"
|
|
set -g default-terminal "xterm-ghostty"
|
|
# set-option -sa terminal-overrides ',xterm-256color:Tc,xterm-*:allow-passthrough'
|
|
set -ga terminal-overrides ",xterm-ghostty:Tc"
|
|
|
|
set-window-option -g mode-keys vi
|
|
set -g status-position top
|
|
set-option -g set-clipboard on
|
|
set-option -g get-clipboard request
|
|
set -g set-titles on
|
|
set -g set-titles-string "#{session_name}"
|
|
set -g @yank_action "copy-pipe"
|
|
set -g @yank_clipboard 'osc52'
|
|
set -g base-index 1
|
|
setw -g pane-base-index 1
|
|
|
|
|
|
set -g allow-passthrough all
|
|
set -as terminal-features ",xterm-ghostty:hyperlinks"
|
|
|
|
|
|
|
|
# Keybinds
|
|
set-option -g prefix C-\\
|
|
unbind C-b
|
|
bind C-\\ send-prefix
|
|
bind r source-file ~/.tmux.conf
|
|
# alt for nav between panes
|
|
bind v split-window -h -c "#{pane_current_path}"
|
|
bind b split-window -v -c "#{pane_current_path}"
|
|
bind c new-window -c "#{pane_current_path}"
|
|
bind -n M-h select-pane -L
|
|
bind -n M-j select-pane -D
|
|
bind -n M-k select-pane -U
|
|
bind -n M-l select-pane -R
|
|
bind -n M-1 select-window -t 1
|
|
bind -n M-2 select-window -t 2
|
|
bind -n M-3 select-window -t 3
|
|
bind -n M-4 select-window -t 4
|
|
bind -n M-5 select-window -t 5
|
|
bind -n M-6 select-window -t 6
|
|
bind -n M-7 select-window -t 7
|
|
bind -n M-8 select-window -t 8
|
|
bind -n M-9 select-window -t 9
|
|
|
|
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 {}'
|
|
)\""
|
|
|
|
bind-key -T copy-mode-vi [ send-keys -X previous-prompt
|
|
bind-key -T copy-mode-vi M-[ send-keys -X previous-prompt -o
|
|
bind-key -T copy-mode-vi ] send-keys -X next-prompt
|
|
bind-key -T copy-mode-vi M-] send-keys -X next-prompt -o
|
|
|
|
# Plugins
|
|
set -g @plugin 'tmux-plugins/tpm'
|
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
|
# set -g @plugin 'Determinant/tmux-colortag'
|
|
# set -g @plugin 'erikw/tmux-powerline'
|
|
set -g @plugin 'tomhey/tmux-remote-sessions'
|
|
|
|
set -g @plugin 'rose-pine/tmux'
|
|
set -g @rose_pine_variant 'main'
|
|
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
|
|
set -g @rose_pine_window_status_separator " "
|
|
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
|
set -g @plugin 'tmux-plugins/tmux-continuum'
|
|
|
|
|
|
run '~/.tmux/plugins/tpm/tpm'
|