Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XPANES(1)							     XPANES(1)

NAME
       xpanes, tmux-xpanes - Ultimate terminal divider powered by tmux

SYNOPSIS
   Normal mode
       xpanes [OPTIONS]	argument ...

   Pipe	mode
       command ... | xpanes [OPTIONS] [<utility> ...]

DESCRIPTION
       xpanes  and  tmux-xpanes	(alias of xpanes) commands have	following fea-
       tures.

	      	Split tmux window into multiple	panes

		 Construct command lines & execute them on the	panes

	      	Runnable from outside of tmux session

	      	Runnable from inside of	tmux session

	      	Record operation log

	      	Flexible layout	arrangement for	panes

		 Select layout	presets

		 Set columns or rows as you like

	      	Display	pane title on each pane

	      	Generate command lines from standard input (Pipe mode)

OPTIONS
       -h, --help
	      Display the help and exit.

       -V, --version
	      Output version information and exit.

       -B <begin-command>
	      Run <begin-command> before processing <command>  in  each	 pane.
	      Multiple options are allowed.

       -c <command>
	      Set <command> to be executed in each pane. Default is echo {}.

       -d, --desync
	      Make synchronize-panes option off	in new window.

       -e     Execute given arguments as is. Same as -c	'{}'

       -I <repstr>
	      Replacing	 one  or  more occurrences of <repstr> in command pro-
	      vided by -c or -B. Default is {}.

       -C NUM, --cols=NUM
	      Number of	columns	of window layout.

       -R NUM, --rows=NUM
	      Number of	rows of	window layout.

       -l <layout>
	 Set the preset	of window layout. Recognized layout arguments are:
	   t	tiled (default)
	   eh	even-horizontal
	   ev	even-vertical
	   mh	main-horizontal
	   mv	main-vertical

       -s     Speedy mode: Run command without opening an interactive shell.

       -ss    Speedy mode AND close a pane automatically at the	same  time  as
	      process exiting.

       -n <number>
	      Set the maximum number of	<argument> taken for each pane.

       -r     Reuse  the  existing panes, or create then in the	current	active
	      window.

       -S <socket-path>
	      Set a full alternative path to the server	socket.

       -t     Display each argument on the each	pane's border as their title.

       -x     Create extra panes in the	current	active window.

       --log[=<directory>]
	      Enable logging and store log files  to  ~/.cache/xpanes/logs  or
	      <directory>.

       --log-format=<FORMAT>
	      Make name	of log files follow <FORMAT>.

       --ssh  Same as -t -s -c 'ssh -o StrictHostKeyChecking=no	{}'.

       --stay Do not switch to new window.

       --bulk-cols=NUM1[,NUM2 ...]
	      Number  of  columns  on multiple rows (i.e, "2,2,2" represents 2
	      cols x 3 rows).

       --interval=<*seconds*>
	      Set interval between each	pane creation and each command	execu-
	      tion.  sleep(1) is used for the interval.

       --debug
	      Print debug message.

   FORMAT
       Default value is	"[:ARG:].log.%Y-%m-%d_%H-%M-%S".
	 Interpreted sequences are:
	   [:PID:]   Process id	of the tmux session. (e.g, 41531)
	   [:ARG:]   Argument name

       In addition, sequences same as date(1) command are available.
	 For example:
	   %Y	year  (e.g, 1960)
	   %m	month (e.g, 01)
	   %d	date  (e.g, 31)
	   And	etc.   Other  sequences	are available. Please refer to date(1)
       manual.

SHELL VARIABLES
       TMUX_XPANES_EXEC
	      Preferentially used as a internal	tmux command.	Default	 value
	      is tmux.

       TMUX_XPANES_LOG_DIRECTORY
	      Path  to	which  log files generated by --log option are stored.
	      Default value is $HOME/.cache/xpanes/logs.

       TMUX_XPANES_LOG_FORMAT
	      FORMAT of	the log	file name generated by --log option.   Default
	      value is [:ARG:].log.%Y-%m-%d_%H-%M-%S.

       TMUX_XPANES_PANE_BORDER_FORMAT
	      Defines  the  format  of	pane title used	in -t option.  Default
	      value is #[bg=green,fg=black] #T #[default].  See	 FORMATS  sec-
	      tion in tmux(1) for further details.

       TMUX_XPANES_PANE_BORDER_STATUS
	      Defines  location	 of  the pane's	title.	See FORMATS section in
	      tmux(1) for further details.  Default value is bottom.

       TMUX_XPANES_PANE_DEAD_MESSAGE
	      It defines the message that displayed when a process exits  with
	      -s option	enabled.

	      Default  value  is  \033[41m\033[4m\033[30m  Pane	is dead: Press
	      [Enter] to exit... \033[0m\033[39m\033[49m.

       TMUX_XPANES_TMUX_VERSION
	      It forces	the tmux version recognized by xpanes.	It  is	mainly
	      used for testing purposes.  Default value	is empty.

MODES
   [Normal mode1] Outside of tmux session.
       When  the  tmux is not open and xpanes is executed on the normal	termi-
       nal, the	xpanes's behavior is as	follows:

	      	It newly creates a tmux	session	and new	window on the session.

	      	In addition, it	separates the window into multiple panes.

	      	Finally, the session will be attached.

   [Normal mode2] Inside of tmux session.
       When the	tmux is	already	open and xpanes	is executed  on	 the  existing
       tmux session, the command's behavior is as follows:

	      	It newly creates a window on the existing active session.

	      	In addition, it	separates the window into multiple panes.

	      	Finally, the window will be active.

   [Pipe mode] Inside of tmux session &	Accepting standard input.
       When xpanes accepts standard input (i.e,	xpanes follows another command
       and  pipe  |) under Normal mode2	, xpanes's behavior is going to	be the
       special one called "Pipe	mode".

       Pipe mode has two features.

	      1	     xpanes's argument will be the common command  line	 which
		     will be used within all panes (this is same as the	-c op-
		     tion's argument in	Normal mode).

	      2	     Each  line	provided by standard input is corresponding to
		     the each pane's command line (this	 is  corresponding  to
		     normal argument of	xpanes in Normal mode).

EXAMPLES
   Simple example
       xpanes 1	2 3 4

	      +-------------------------------+-------------------------------+
	      |$ echo 1			      |$ echo 2			      |
	      |1			      |2			      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+
	      |$ echo 3			      |$ echo 4			      |
	      |3			      |4			      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+

   -c option and -I option
       xpanes -I@ -c 'seq @' 1 2 3 4

	      +-------------------------------+-------------------------------+
	      |$ seq 1			      |$ seq 2			      |
	      |1			      |1			      |
	      |				      |2			      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+
	      |$ seq 3			      |$ seq 4			      |
	      |1			      |1			      |
	      |2			      |2			      |
	      |3			      |3			      |
	      |				      |4			      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+

   Ping	multiple hosts
       xpanes -c "ping {}" 192.168.1.{5..8}

	      +-------------------------------+-------------------------------+
	      |$ ping 192.168.1.5	      |$ ping 192.168.1.6	      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+
	      |$ ping 192.168.1.7	      |$ ping 192.168.1.8	      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+

   Run commands	without	opening	a login	shell
       xpanes -s -c "seq {}" 2 3 4 5

	      +-------------------------------+-------------------------------+
	      |1			      |1			      |
	      |2			      |2			      |
	      |Pane is dead: Press [Enter] to |3			      |
	      |exit...			      |Pane is dead: Press [Enter] to |
	      |				      |exit...			      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+
	      |1			      |1			      |
	      |2			      |2			      |
	      |3			      |3			      |
	      |4			      |4			      |
	      |Pane is dead: Press [Enter] to |5			      |
	      |exit...			      |Pane is dead: Press [Enter] to |
	      |				      |exit...			      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+

   Display host	always
       xpanes -t -c "ping {}" 192.168.1.{5..8}

	      +-------------------------------+-------------------------------+
	      |$ ping 192.168.1.5	      |$ ping 192.168.1.6	      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +--192.168.1.5------------------+--192.168.1.6------------------+
	      |$ ping 192.168.1.7	      |$ ping 192.168.1.8	      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +--192.168.1.7------------------+--192.168.1.8------------------+

   Use SSH without key checking
       xpanes --ssh myuser1@host1 myuser2@host2

	      +-------------------------------+-------------------------------+
	      |$ ssh -o	StrictHostKeyChecking |$ ssh -o	StrictHostKeyChecking |
	      |=no myuser@host1		      |=no myuser@host2		      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+

   Create new panes on existing	window
	      +-------------------------------+-------------------------------+
	      |$			      |$			      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+
	      |	$ xpanes -x 4 5	6					      |
	      |								      |
	      |								      |
	      |								      |
	      |								      |
	      |								      |
	      |								      |
	      |								      |
	      +-------------------------------+-------------------------------+

	      +-------------------------------+-------------------------------+
	      |$			      |$			      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+
	      |$ xpanes	-x 4 5 6	      |$ echo 4			      |
	      |$			      |4			      |
	      |				      |$			      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+
	      |$ echo 5			      |$ echo 6			      |
	      |5			      |6			      |
	      |$			      |$			      |
	      |				      |				      |
	      |				      |				      |
	      +-------------------------------+-------------------------------+

   Execute different commands on the different panes
       xpanes -e "top" "vmstat 1" "watch -n 1 free"

	      +-------------------------------+------------------------------+
	      |$ top			      |$ vmstat	1		     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      +-------------------------------+------------------------------+
	      |$ watch -n 1 free					     |
	      |								     |
	      |								     |
	      |								     |
	      |								     |
	      |								     |
	      |								     |
	      +--------------------------------------------------------------+

   Change layout of panes (using presets)
       xpanes -l ev -c "{}" "top" "vmstat 1" "watch -n 1 df"

	      +-------------------------------------------------------------+
	      |$ top							    |
	      |								    |
	      |								    |
	      |								    |
	      |								    |
	      +-------------------------------------------------------------+
	      |$ vmstat	1						    |
	      |								    |
	      |								    |
	      |								    |
	      |								    |
	      +-------------------------------------------------------------+
	      |$ watch -n 1 df						    |
	      |								    |
	      |								    |
	      |								    |
	      |								    |
	      +-------------------------------------------------------------+

   Change layout of panes (Fixed number	of columns)
       xpanes -C 2 AAA BBB CCC DDD EEE FFF GGG HHH III

	      +------------------------------+------------------------------+
	      |$ echo AAA		     |$	echo BBB		    |
	      |				     |				    |
	      |				     |				    |
	      +------------------------------+------------------------------+
	      |$ echo CCC		     |$	echo DDD		    |
	      |				     |				    |
	      |				     |				    |
	      +------------------------------+------------------------------+
	      |$ echo EEE		     |$	echo FFF		    |
	      |				     |				    |
	      |				     |				    |
	      +------------------------------+------------------------------+
	      |$ echo GGG		     |$	echo HHH		    |
	      |				     |				    |
	      |				     |				    |
	      +------------------------------+------------------------------+

   Pipe	mode
       seq 3 | xpanes

	      +------------------------------+------------------------------+
	      |$ echo 1			     |$	echo 2			    |
	      |1			     |2				    |
	      |				     |				    |
	      |				     |				    |
	      |				     |				    |
	      |				     |				    |
	      |				     |				    |
	      |				     |				    |
	      +------------------------------+------------------------------+
	      |$ echo 3							    |
	      |3							    |
	      |								    |
	      |								    |
	      |								    |
	      |								    |
	      |								    |
	      |								    |
	      +------------------------------+------------------------------+

   Pipe	mode with an argument
       seq 4 | xpanes seq

	      +-------------------------------+------------------------------+
	      |$ seq 1			      |$ seq 2			     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      +-------------------------------+------------------------------+
	      |$ seq 3			      |$ seq 4			     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      |				      |				     |
	      +-------------------------------+------------------------------+

SEE ALSO
       tmux(1)

AUTHOR AND COPYRIGHT
       Copyright  (c) 2023 Yamada, Yasuhiro <yamada@gr3.ie> Released under the
       MIT License.  <https://github.com/greymd/tmux-xpanes>

ACKNOWLEDGEMENTS
       Thanks	  to	 Yamada,     Yuka     for     her     awesome	  logo
       <https://github.com/greymd/tmux-xpanes/wiki/Image-Library>.

User Commands			   MAR 2023			     XPANES(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xpanes&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help