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.
Inspired by https://github.com/olemartinorg/i3-alternating-layout.
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:
-
PyPi.
autotiling is available from PyPi, so you can install it with
pip install autotiling
-
Arch Linux
For the latest development version use autotiling-git.
-
Manually
- Install the
python-i3ipc>=2.0.1
package (or whatever it's called in your Linux distribution). - Save the
main.py
file anywhere, make executable and autostart in your i3/sway config file:exec /path/to/the/script/main.py
on sway orexec_always --no-startup-id /path/to/the/script/main.py
on i3. You can give themain.py
file another name.
- Install the
NOTE: The current release and master branch is compatible with sway >= 1.5. For lower versions you need to use the script from the sway14 branch or the 0.9 release.
-
-
Add
exec autotiling
to the~/.config/sway/config
orexec_always --no-startup-id autotiling
to the~/.config/i3/config
file.
$ 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