mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Allow $HOME as default-path in tmux.conf so the same config file can be used
on different machines regardless of where the user's home directory is. ok nicm
This commit is contained in:
		
							
								
								
									
										7
									
								
								cmd.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								cmd.c
									
									
									
									
									
								
							| @@ -1221,11 +1221,18 @@ cmd_get_default_path(struct cmd_ctx *ctx) | |||||||
| 	char			*cwd; | 	char			*cwd; | ||||||
| 	struct session		*s; | 	struct session		*s; | ||||||
| 	struct window_pane	*wp; | 	struct window_pane	*wp; | ||||||
|  | 	struct environ_entry	*envent; | ||||||
|  |  | ||||||
| 	if ((s = cmd_current_session(ctx, 0)) == NULL) | 	if ((s = cmd_current_session(ctx, 0)) == NULL) | ||||||
| 		return (NULL); | 		return (NULL); | ||||||
|  |  | ||||||
| 	cwd = options_get_string(&s->options, "default-path"); | 	cwd = options_get_string(&s->options, "default-path"); | ||||||
|  | 	if ((cwd[0] == '~' && cwd[1] == '\0') || !strcmp(cwd, "$HOME")) { | ||||||
|  | 		envent = environ_find(&global_environ, "HOME"); | ||||||
|  | 		if (envent != NULL && *envent->value != '\0') | ||||||
|  | 			return envent->value; | ||||||
|  | 		cwd = ""; | ||||||
|  | 	} | ||||||
| 	if (*cwd == '\0') { | 	if (*cwd == '\0') { | ||||||
| 		if (ctx->cmdclient != NULL && ctx->cmdclient->cwd != NULL) | 		if (ctx->cmdclient != NULL && ctx->cmdclient->cwd != NULL) | ||||||
| 			return (ctx->cmdclient->cwd); | 			return (ctx->cmdclient->cwd); | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								tmux.1
									
									
									
									
									
								
							| @@ -1845,6 +1845,11 @@ Set the default working directory for new panes. | |||||||
| If empty (the default), the working directory is determined from the process | If empty (the default), the working directory is determined from the process | ||||||
| running in the active pane, from the command line environment or from the | running in the active pane, from the command line environment or from the | ||||||
| working directory where the session was created. | working directory where the session was created. | ||||||
|  | If | ||||||
|  | .Ar path | ||||||
|  | is "$HOME" or "~", the value of the | ||||||
|  | .Ev HOME | ||||||
|  | environment variable is used. | ||||||
| .It Ic default-shell Ar path | .It Ic default-shell Ar path | ||||||
| Specify the default shell. | Specify the default shell. | ||||||
| This is used as the login shell for new windows when the | This is used as the login shell for new windows when the | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Stefan Sperling
					Stefan Sperling