71 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  flake.modules.homeManager.base.programs.tmux.extraConfig = ''
							 | 
						||
| 
								 | 
							
								    set-option -g status-keys "vi"
							 | 
						||
| 
								 | 
							
								    set-option -sa terminal-features "''${TERM}:RGB"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    bind -n S-Left resize-pane -L 2
							 | 
						||
| 
								 | 
							
								    bind -n S-Right resize-pane -R 2
							 | 
						||
| 
								 | 
							
								    bind -n S-Down resize-pane -D 1
							 | 
						||
| 
								 | 
							
								    bind -n S-Up resize-pane -U 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    bind -n C-Left resize-pane -L 10
							 | 
						||
| 
								 | 
							
								    bind -n C-Right resize-pane -R 10
							 | 
						||
| 
								 | 
							
								    bind -n C-Down resize-pane -D 5
							 | 
						||
| 
								 | 
							
								    bind -n C-Up resize-pane -U 5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Status line customisation
							 | 
						||
| 
								 | 
							
								    set-option -g status-left ""
							 | 
						||
| 
								 | 
							
								    set-option -g status-right " #{session_name}"
							 | 
						||
| 
								 | 
							
								    set-option -g status-right-length 100
							 | 
						||
| 
								 | 
							
								    set-option -g status-style "fg=#7C7D83 bg=default"
							 | 
						||
| 
								 | 
							
								    set-option -g window-status-activity-style none
							 | 
						||
| 
								 | 
							
								    set-option -g window-status-current-style "fg=#E9E9EA"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    bind c new-window -c "#{pane_current_path}"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    set -g base-index 1
							 | 
						||
| 
								 | 
							
								    set -g pane-base-index 1
							 | 
						||
| 
								 | 
							
								    set -g renumber-windows on
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Break a pane into a new window.
							 | 
						||
| 
								 | 
							
								    bind-key b break-pane -d
							 | 
						||
| 
								 | 
							
								    bind-key J command-prompt -p "join pane from: "  "join-pane -h -s '%%'"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    bind-key C-j choose-tree
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    set-window-option -g mode-keys vi
							 | 
						||
| 
								 | 
							
								    bind -T copy-mode-vi v send-keys -X begin-selection
							 | 
						||
| 
								 | 
							
								    bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    bind C-j split-window -v "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^$(tmux display-message -p '#S')\$\" | fzf --reverse | xargs tmux switch-client -t"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    bind-key K run-shell 'tmux switch-client -n \; kill-session -t "$(tmux display-message -p "#S")" || tmux kill-session'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Allow clearing screen with ctrl-l by using <prefix> C-l
							 | 
						||
| 
								 | 
							
								    bind C-l send-keys "C-l"
							 | 
						||
| 
								 | 
							
								    bind C-k send-keys "C-k"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Enable mouse support.
							 | 
						||
| 
								 | 
							
								    setw -g mouse on
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Remove delay when switching Vim modes.
							 | 
						||
| 
								 | 
							
								    set -sg escape-time 0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    set-option -g pane-active-border-style "fg=#1f2335"
							 | 
						||
| 
								 | 
							
								    set-option -g pane-border-style "fg=#1f2335"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Vim-like pane navigation.
							 | 
						||
| 
								 | 
							
								    bind ^ last-window
							 | 
						||
| 
								 | 
							
								    bind h select-pane -L
							 | 
						||
| 
								 | 
							
								    bind j select-pane -D
							 | 
						||
| 
								 | 
							
								    bind k select-pane -U
							 | 
						||
| 
								 | 
							
								    bind l select-pane -R
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    bind-key -r f run-shell "tmux new-window tmux-sessionizer"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    bind-key -r D new-window -c "#{pane_current_path}" "[[ -e TODO.md ]] && nvim TODO.md || nvim ~/Documents/wiki/todo.txt"
							 | 
						||
| 
								 | 
							
								    bind-key -r N new-window "notes"
							 | 
						||
| 
								 | 
							
								    bind-key -r W split-window -h -c ~/Documents/wiki "nvim '+Telescope find_files'"
							 | 
						||
| 
								 | 
							
								  '';
							 | 
						||
| 
								 | 
							
								}
							 |