This is a tiling script for X.
- Use Xlib.
- Use a tree as window layout structure, like i3-wm.
- The tree is not required to synchronize with the X server in a background session. It is generated directly from the windows’ geometry every time you run the script.
See screencasts in different Desktop Environments.
Please note pip install direct from source may result bad performance (more detail).
It is recommended to build a wheel package and install from the wheel package.
python setup.py bdist_wheel pip install dist/freetile-*.whl --user
PKGBUILD is provided for Arch Linux users.
An example of ~/.config/freetilerc.
These are i3-wm like key bindings. Configuration files for KDE and xbindkeys are provided.
Keys | Command |
---|---|
<Super> <Space> | freetile tile |
<Super> h | freetile focus left |
<Super> j | freetile focus down |
<Super> k | freetile focus up |
<Super> l | freetile focus right |
<Super> <Shift> h | freetile swap left |
<Super> <Shift> j | freetile swap down |
<Super> <Shift> k | freetile swap up |
<Super> <Shift> l | freetile swap right |
<Super> <Ctrl> h | freetile move left |
<Super> <Ctrl> j | freetile move down |
<Super> <Ctrl> k | freetile move up |
<Super> <Ctrl> l | freetile move right |
<Super> <Shift> <Ctrl> h | freetile shrink width |
<Super> <Shift> <Ctrl> j | freetile grow height |
<Super> <Shift> <Ctrl> k | freetile shrink height |
<Super> <Shift> <Ctrl> l | freetile grow width |
freetile can be run in a free mode or a strict mode. In the free mode, you must run
$ freetile tile
every time when you want to tile windows. Otherwise nothing unexpected would happen to your windows layout. In the strict mode, you can open a daemon by
$ freetile autotile
The daemon will trigger tiling windows every time it detects a window created or destroyed. And it will quit automatically when no more window exists or it failed to tile the windows for any reason.
KDE5 does not allow focus stealing by default. To turn off “Focus stealing prevention level”, please go to System-Settings->Window behavior.