mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Add a way to mark environment variables as "hidden" so they can be used
by tmux but are not passed into the environment of new panes.
This commit is contained in:
		
							
								
								
									
										26
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								tmux.1
									
									
									
									
									
								
							@@ -565,6 +565,18 @@ Environment variables may be set by using the syntax
 | 
			
		||||
for example
 | 
			
		||||
.Ql HOME=/home/user .
 | 
			
		||||
Variables set during parsing are added to the global environment.
 | 
			
		||||
A hidden variable may be set with
 | 
			
		||||
.Ql %hidden ,
 | 
			
		||||
for example:
 | 
			
		||||
.Bd -literal -offset indent
 | 
			
		||||
%hidden MYVAR=42
 | 
			
		||||
.Ed
 | 
			
		||||
.Pp
 | 
			
		||||
Hidden variables are not passed to the environment of processes created
 | 
			
		||||
by tmux.
 | 
			
		||||
See the
 | 
			
		||||
.Sx GLOBAL AND SESSION ENVIRONMENT
 | 
			
		||||
section.
 | 
			
		||||
.Pp
 | 
			
		||||
Commands may be parsed conditionally by surrounding them with
 | 
			
		||||
.Ql %if ,
 | 
			
		||||
@@ -4711,10 +4723,16 @@ from inside, and the
 | 
			
		||||
variable with the correct terminal setting of
 | 
			
		||||
.Ql screen .
 | 
			
		||||
.Pp
 | 
			
		||||
Variables in both session and global environments may be marked as hidden.
 | 
			
		||||
Hidden variables are not passed into the environment of new processes and
 | 
			
		||||
instead can only be used by tmux itself (for example in formats, see the
 | 
			
		||||
.Sx FORMATS
 | 
			
		||||
section).
 | 
			
		||||
.Pp
 | 
			
		||||
Commands to alter and view the environment are:
 | 
			
		||||
.Bl -tag -width Ds
 | 
			
		||||
.It Xo Ic set-environment
 | 
			
		||||
.Op Fl gru
 | 
			
		||||
.Op Fl hgru
 | 
			
		||||
.Op Fl t Ar target-session
 | 
			
		||||
.Ar name Op Ar value
 | 
			
		||||
.Xc
 | 
			
		||||
@@ -4731,8 +4749,10 @@ flag unsets a variable.
 | 
			
		||||
.Fl r
 | 
			
		||||
indicates the variable is to be removed from the environment before starting a
 | 
			
		||||
new process.
 | 
			
		||||
.Fl h
 | 
			
		||||
marks the variable as hidden.
 | 
			
		||||
.It Xo Ic show-environment
 | 
			
		||||
.Op Fl gs
 | 
			
		||||
.Op Fl hgs
 | 
			
		||||
.Op Fl t Ar target-session
 | 
			
		||||
.Op Ar variable
 | 
			
		||||
.Xc
 | 
			
		||||
@@ -4749,6 +4769,8 @@ Variables removed from the environment are prefixed with
 | 
			
		||||
If
 | 
			
		||||
.Fl s
 | 
			
		||||
is used, the output is formatted as a set of Bourne shell commands.
 | 
			
		||||
.Fl h
 | 
			
		||||
shows hidden variables (omitted by default).
 | 
			
		||||
.El
 | 
			
		||||
.Sh STATUS LINE
 | 
			
		||||
.Nm
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1048,6 +1048,9 @@ struct environ_entry {
 | 
			
		||||
	char		*name;
 | 
			
		||||
	char		*value;
 | 
			
		||||
 | 
			
		||||
	int		 flags;
 | 
			
		||||
#define ENVIRON_HIDDEN 0x1
 | 
			
		||||
 | 
			
		||||
	RB_ENTRY(environ_entry) entry;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -1957,10 +1960,10 @@ struct environ_entry *environ_first(struct environ *);
 | 
			
		||||
struct environ_entry *environ_next(struct environ_entry *);
 | 
			
		||||
void	environ_copy(struct environ *, struct environ *);
 | 
			
		||||
struct environ_entry *environ_find(struct environ *, const char *);
 | 
			
		||||
void printflike(3, 4) environ_set(struct environ *, const char *, const char *,
 | 
			
		||||
	    ...);
 | 
			
		||||
void printflike(4, 5) environ_set(struct environ *, const char *, int,
 | 
			
		||||
	    const char *, ...);
 | 
			
		||||
void	environ_clear(struct environ *, const char *);
 | 
			
		||||
void	environ_put(struct environ *, const char *);
 | 
			
		||||
void	environ_put(struct environ *, const char *, int);
 | 
			
		||||
void	environ_unset(struct environ *, const char *);
 | 
			
		||||
void	environ_update(struct options *, struct environ *, struct environ *);
 | 
			
		||||
void	environ_push(struct environ *);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user