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'" | ||
|  |   '';
 | ||
|  | } |