File tree Expand file tree Collapse file tree 3 files changed +113
-0
lines changed Expand file tree Collapse file tree 3 files changed +113
-0
lines changed Original file line number Diff line number Diff line change @@ -287,6 +287,41 @@ newer and tmux 3.0 or newer.
287287
288288```` 
289289
290+ ## ` if `  conditions 
291+ 
292+ tmuxp enables one to optionally open windows / panes based on coditions. The ` if `  conditions can appears in the configuration for window or pane.
293+ 
294+ ```` {tab}  YAML
295+ 
296+ ```{literalinclude} ../../examples/if-conditions.yaml 
297+ :language: yaml 
298+ 
299+ ``` 
300+ ```` 
301+ 
302+ ```` {tab}  JSON
303+ 
304+ ```{literalinclude} ../../examples/if-conditions.json 
305+ :language: json 
306+ 
307+ ``` 
308+ 
309+ ```` 
310+ 
311+ In the example, running the example
312+ 
313+ ``` console 
314+ $ tmuxp load examples/if-conditions.yaml 
315+ ``` 
316+ 
317+ should produce ** only**  a window with upper and lower split panes (others should have ` if `  conditions that evaluates to false). This example allows for on-demand pane showing, where
318+ 
319+ ``` console 
320+ $ show_htop=false tmuxp load examples/if-conditions.yaml 
321+ ``` 
322+ 
323+ will insteads suppress the ` htop `  command pane and resulting in a different behaviour.
324+ 
290325## Focusing  
291326
292327tmuxp allows ` focus: true `  for assuring windows and panes are attached /
Original file line number Diff line number Diff line change 1+ {
2+   "session_name" : " if conditions test" 
3+   "environment" : {
4+     "Foo" : " false" 
5+     "show_htop" : " true" 
6+   },
7+   "windows" : [
8+     {
9+       "window_name" : " window 1 ${ha} $Foo" 
10+       "if" : {
11+         "shell" : " ${Foo}" 
12+       },
13+       "panes" : [
14+         {
15+           "shell_command" : [
16+             " echo \" this shouldn't shows up\" " 
17+           ]
18+         },
19+         " echo neither should this $Foo" 
20+       ]
21+     },
22+     {
23+       "window_name" : " window 2" 
24+       "panes" : [
25+         {
26+           "if" : {
27+             "python" : " 1+1==3" 
28+           },
29+           "shell_command" : [
30+             " echo the above is a false statement" 
31+           ]
32+         },
33+         {
34+           "shell_command" : [
35+             " echo no condition" 
36+             " python -m http.server" 
37+           ]
38+         },
39+         {
40+           "if" : " ${show_htop}" 
41+           "shell_command" : [
42+             " echo the above is a true statement (by default), but can be disabled on-demand" 
43+             " htop" 
44+           ]
45+         }
46+       ]
47+     }
48+   ]
49+ }
Original file line number Diff line number Diff line change 1+ session_name : if conditions test 
2+ environment :
3+   Foo : ' false' 
4+   show_htop : ' true' 
5+ windows :
6+   #  the following would not shows up as it evaluates to false
7+   - window_name : window 1 ${ha} $Foo 
8+     if :
9+       shell : ${Foo} 
10+     panes :
11+       - shell_command :
12+           - echo "this shouldn't shows up" 
13+       - echo neither should this $Foo 
14+   - window_name : window 2 
15+     panes :
16+       #  should not shows up
17+       - if :
18+           python : 1+1==3 
19+         shell_command :
20+           - echo the above is a false statement 
21+       #  no if conditions
22+       - shell_command :
23+           - echo no condition 
24+           - python -m http.server 
25+       #  display by default, but can be disabled by running `show_htop=false tmuxp load .....`
26+       - if : ${show_htop} 
27+         shell_command :
28+           - echo the above is a true statement (by default), but can be disabled on-demand 
29+           - htop 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments