Skip to content

An altogether better way to do session management with tmux

Notifications You must be signed in to change notification settings

madlep/tmuxomatic

 
 

Repository files navigation

tmuxomatic

The other tmux session managers are doing it wrong. From unnecessary options requiring pages of documentation, to windows defined by a complicated nesting of pane splits. Instead, session management should be more flexible and more powerful, yet so easy that anybody could use it after just one example.

At the heart of tmuxomatic is the windowgram, a better way of defining tmux windows. The windowgram is a rectangle comprised of alphanumeric characters (0-9, a-z, A-Z). Each character identifies the position, size, and shape of a pane. It should take only one short example to demonstrate the flexibility and power of the windowgram.

Compare this window from session_example, with its screenshot from tmuxomatic session_example:

window example_one        # <-- A new window begins like this, spaces in names are allowed

AAAAAAvvvvvXXXXXTTTT      # <-- The windowgram, it defines the shapes and positions of panes
jjjQQQQQQQuuuuuuTTTT      # <-- Make your own, of any size and arrangement, 62 panes maximum
jjjQQQQQQQuuuuuuTTTT
jjjQQQQQQQuuuuuuTTTT
0000llllllllllaaaaaa
1234llllllllllaaaaaa

  foc                     # <-- Three 3-letter commands to remember: Focus, Directory, Run
  dir ~                   # <-- Unlinked directory, becomes default for all undefined panes
A run figlet "A"          # <-- Linked to pane A, this command prints "A" in large lettering
Q run figlet "Q"
A foc

With tmuxomatic, you'll never have to manually split, position, or size a pane again. And linking the panes to actions is so simple and logical that you probably won't forget it. There are no extra file format rules to remember, and typically no command line arguments will be necessary.

For additional features, run tmuxomatic --help. For example, there's a feature to scale your windowgram larger or smaller -- by any multiplier, on either axis -- to help with fine-tuning. This is useful if you need very small panes on a window.

Installation

This application requires:

There are three ways to install tmuxomatic, in order of convenience:

  • Automatically (pip)

    • pip-python3 install tmuxomatic
  • Manually (python)

  • From Development (git)

Verify that you have the current version installed:

  • tmuxomatic -V

On some systems pip will not upgrade properly, this may be fixed by cleaning the pip cache:

  • rm -rf /tmp/pip-build-root/tmuxomatic
  • pip-python3 install --upgrade tmuxomatic

Notes

To use tmuxomatic, you don't have to know everything about how to use tmux, but the knowledge is useful for customizing the tmux status bar, or changing the default key bindings. These are tmux user preferences, and typically placed in a personal .tmux.conf file.

Copyright and License

Copyright 2013-2014, Oxidane. All rights reserved.

Distributed under the BSD 3-Clause license. The copyright and license must be included with any use, modification, or redistribution of the source. See the license for details.

About

An altogether better way to do session management with tmux

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published