Automatically switch the horizontal/vertical window split orientation in sway and i3
Project description
autotiling
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.
See on YouTube:
PLEASE DO READ THIS
The script does one thing: it checks the window 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, you may configure autotiling to work on odd workspaces, but not on even:
### Autostart
exec autotiling -w 1 3 5 7 9
Installation
The script has been packaged for the following distributions:
On Arch Linux for the latest development version you may use autotiling-git.
Installing manually:
- Install the
python-i3ipc>=2.0.1
package (or whatever it's called in your Linux distribution); - save the
main.py
file anywhere, rename toautotiling
, make executable, move to your bin folder; - add
exec_always autotiling
to the~/.config/sway/config
orexec_always --no-startup-id autotiling
to the~/.config/i3/config
file.
Usage
$ autotiling -h
usage: autotiling [-h] [-d] [-v] [-w [WORKSPACES ...]] [-e [EVENTS ...]]
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
-e [EVENTS ...], --events [EVENTS ...]
list of events to trigger switching split orientation; default: WINDOW MODE
Events
Changing event subscription has already been the objective of several pull request. To avoid doing this again and again,
starting from v1.6 you may specify them in the -e
| --events
argument. If no value given, the script will subscribe
to Event.WINDOW
and Event.MODE
, as if it was executed with autotiling -e WINDOW MODE
. See
altdesktop/i3ipc-python`
for event enumeration.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for autotiling-1.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9fac0f929a4bdc65417ce6bdf3d4e2d23860562888e17ac4805f043a642e9e3 |
|
MD5 | 944d380228d9de953df28b47c5760cf6 |
|
BLAKE2b-256 | a43495a00ea1ff51281c2dbcda8bd8e739211dd8091be7a2f45729dd56184879 |