This script uses the i3ipc-python library to switch the layout splith/splitv depending on the currently focused window dimensions. It works on both sway and i3 window managers.
This script does one thing: when a window is being focused, it checks it's height / width ratio, and executes
the equivalent of either
swaymsg splitv or
swaymsg splith. Nothing less, nothing more. Yes, it may make
stacking and tabbed layouts behave oddly. No, nothing can be done about it. If you like stacking/tabbed layouts,
you may use them on workspaces with autotiling turned off (
--workspaces argument). Do not submit issues about it.
For instance, on my triple-headed setup (2 workspaces per output), I configured autotiling to work on odd workspaces, but not on even:
### Autostart exec autotiling -w 1 3 5
Install autotiling. Possible methods:
autotiling is available from PyPi, so you can install it with
pip install autotiling
For the latest development version use autotiling-git.
python-i3ipc>=2.0.1package (or whatever it's called in your Linux distribution).
main.pyfile anywhere, make executable and autostart in your i3/sway config file:
exec /path/to/the/script/main.pyon sway or
exec_always --no-startup-id /path/to/the/script/main.pyon i3. You can give the
main.pyfile another name.
exec autotilingto the
exec_always --no-startup-id autotilingto the
$ autotiling -h usage: autotiling [-h] [-d] [-v] [-w [WORKSPACES ...]] optional arguments: -h, --help show this help message and exit -d, --debug Print debug messages to stderr -v, --version display version information -w [WORKSPACES ...], --workspaces [WORKSPACES ...] Restricts autotiling to certain workspaces. Example: autotiling --workspaces 8 9