A readme explaining how to make neovim work fast
| 1 | # Settings |
| 2 | set -g mouse on |
| 3 | set -g status on # Enable the status line |
| 4 | set -g pane-border-status top # Show titles at the top of each pane |
| 5 | set -g pane-border-format "#{pane_index} #{pane_title}" # Customize the title format |
| 6 | setw -g mode-keys vi # Use vi keybindings in copy mode |
| 7 | set -g focus-events on |
| 8 | set -g status-right '#{ip_address} | #H' |
| 9 | setw -g pane-border-format ' #{=/-20/…:pane_title} [#{=/-20/…:pane_current_command}] #(pgrep -P "#{pane_pid}" | tr "\n" " ")#{pane_current_path} #{?alternate_on,<Alt Mode> ,}' |
| 10 | set -g @treemux-tree-nvim-init-file '~/.tmux/plugins/treemux/configs/treemux_init.lua' |
| 11 | set -g @continuum-restore 'on' |
| 12 | set -g xterm-keys on |
| 13 | set -g set-clipboard on |
| 14 | set -g automatic-rename on |
| 15 | set -g automatic-rename-format "#{b:pane_current_path##*/} → #{pane_current_command}" |
| 16 | set -g default-terminal "tmux-256color" |
| 17 | set -ag terminal-overrides ",xterm-256color:Tc,smcup@:rmcup@" |
| 18 | TMUX_FZF_MENU=\ |
| 19 | "foo\necho 'Hello!'\n"\ |
| 20 | "bar\nls ~\n"\ |
| 21 | "sh\nsh ~/test.sh\n" |
| 22 | TMUX_FZF_LAUNCH_KEY="C-f" |
| 23 | |
| 24 | |
| 25 | # Prefix keybindings |
| 26 | bind r source-file ~/.tmux.conf \; display "Reloaded the config" |
| 27 | bind c new-window -c "#{pane_current_path}" \; display "Opened new window in #{pane_current_path}" |
| 28 | bind a attach-session -c "#{pane_current_path}" \; display "Attached current session to #{pane_current_path}" |
| 29 | bind e show-environment |
| 30 | bind g display-popup -E -w 90% -h 90% -d "#{pane_current_path}" 'lazygit' |
| 31 | |
| 32 | |
| 33 | # Repeatable |
| 34 | set -s repeat-time 500 # Slow down repeat time |
| 35 | bind -r C-h resize-pane -L 5 |
| 36 | bind -r C-j resize-pane -D 5 |
| 37 | bind -r C-k resize-pane -U 5 |
| 38 | bind -r C-l resize-pane -R 5 |
| 39 | |
| 40 | |
| 41 | # Keybindings |
| 42 | bind -n MouseDown3Pane resize-pane -Z |
| 43 | bind -n M-h select-pane -L # Move left a pane |
| 44 | bind -n M-j select-pane -D # Move down a pane |
| 45 | bind -n M-k select-pane -U # Move up a pane |
| 46 | bind -n M-l select-pane -R # Move right a pane |
| 47 | bind -n M-m resize-pane -Z # Maximize/minimize current pane |
| 48 | bind -n M-i previous-window # Move to previous window |
| 49 | bind -n M-o next-window # Move to next window |
| 50 | bind -n M-, switch-client -p # Switch to previous session |
| 51 | bind -n M-. switch-client -n # Switch to next session |
| 52 | |
| 53 | |
| 54 | # Display |
| 55 | # Inactive pane border |
| 56 | set -g pane-border-style "fg=default" |
| 57 | set -g pane-active-border-style "fg=orange" |
| 58 | |
| 59 | |
| 60 | # List of plugins |
| 61 | set -g @plugin 'erikw/tmux-powerline' |
| 62 | set -g @plugin 'tmux-plugins/tpm' |
| 63 | set -g @plugin 'tmux-plugins/tmux-sensible' |
| 64 | set -g @plugin 'tmux-plugins/tmux-resurrect' |
| 65 | set -g @plugin 'tmux-plugins/tmux-continuum' |
| 66 | set -g @plugin 'anghootys/tmux-ip-address' |
| 67 | set -g @plugin 'alexwforsythe/tmux-which-key' |
| 68 | set -g @plugin 'kiyoon/treemux' |
| 69 | set -g @plugin 'sainnhe/tmux-fzf' |
| 70 | set -g @plugin 'imomaliev/tmux-keyboard-layout' |
| 71 | set -g @plugin 'joshmedeski/tmux-nerd-font-window-name' |
| 72 | set -g @plugin 'huncholane/tmux-fzf-keys' |
| 73 | set -g @plugin 'huncholane/tmux-env-menu' |
| 74 | |
| 75 | # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) |
| 76 | run '~/.tmux/plugins/tpm/tpm' |