| 
									
										
										
										
											2025-07-24 22:24:47 +01:00
										 |  |  | { | 
					
						
							|  |  |  |   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 | 
					
						
							| 
									
										
										
										
											2025-09-20 19:05:50 +01:00
										 |  |  |     set-option -g status-position top | 
					
						
							| 
									
										
										
										
											2025-07-24 22:24:47 +01:00
										 |  |  |     set-option -g status-left "" | 
					
						
							|  |  |  |     set-option -g status-right " #{session_name}" | 
					
						
							|  |  |  |     set-option -g status-right-length 100 | 
					
						
							| 
									
										
										
										
											2025-09-21 23:59:42 +01:00
										 |  |  |     set-option -g status-style "fg=#7C7D83 bg=default" | 
					
						
							| 
									
										
										
										
											2025-07-24 22:24:47 +01:00
										 |  |  |     set-option -g window-status-activity-style none | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     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" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-14 07:58:39 +01:00
										 |  |  |     bind-key -r D new-window -c "#{pane_current_path}" "[[ -e TODO.md ]] && nvim TODO.md || nvim ~/Documents/notes/todo.txt" | 
					
						
							|  |  |  |     bind-key -r W split-window -h -c ~/Documents/notes "nvim '+Telescope find_files'" | 
					
						
							| 
									
										
										
										
											2025-07-24 22:24:47 +01:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | } |