mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 13:21:19 +08:00 
			
		
		
		
	feat(tmux): add tds alias for directory sessions (#11987)
				
					
				
			This commit is contained in:
		
							parent
							
								
									0da416986a
								
							
						
					
					
						commit
						104041a018
					
				@ -25,6 +25,7 @@ The plugin also supports the following:
 | 
			
		||||
| `tkss`     | tmux kill-session -t       | Terminate named running tmux session                     |
 | 
			
		||||
| `tmux`     | `_zsh_tmux_plugin_run`     | Start a new tmux session                                 |
 | 
			
		||||
| `tmuxconf` | `$EDITOR $ZSH_TMUX_CONFIG` | Open .tmux.conf file with an editor                      |
 | 
			
		||||
| `tds`      | `_tmux_directory_session`  | Creates or attaches to a session for the current path    |
 | 
			
		||||
 | 
			
		||||
## Configuration Variables
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -108,6 +108,19 @@ compdef _tmux _zsh_tmux_plugin_run
 | 
			
		||||
# Alias tmux to our wrapper function.
 | 
			
		||||
alias tmux=_zsh_tmux_plugin_run
 | 
			
		||||
 | 
			
		||||
function _tmux_directory_session() {
 | 
			
		||||
  # current directory without leading path
 | 
			
		||||
  local dir=${PWD##*/}
 | 
			
		||||
  # md5 hash for the full working directory path
 | 
			
		||||
  local md5=$(printf '%s' "$PWD" | md5sum | cut -d  ' ' -f 1)
 | 
			
		||||
  # human friendly unique session name for this directory
 | 
			
		||||
  local session_name="${dir}-${md5:0:6}"
 | 
			
		||||
  # create or attach to the session
 | 
			
		||||
  tmux new -As "$session_name"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
alias tds=_tmux_directory_session
 | 
			
		||||
 | 
			
		||||
# Autostart if not already in tmux and enabled.
 | 
			
		||||
if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" && -z "$INTELLIJ_ENVIRONMENT_READER" ]]; then
 | 
			
		||||
  # Actually don't autostart if we already did and multiple autostarts are disabled.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user