i3a release

I have released i3a (i3 automation), a program which uses IPC capabilities of i3 and sway window managers to provide automatic tiling layouts with dwm-like master and stack areas. It can be installed from a PyPI. Source code is available on git.

It is trivial to use. Just run it and you’re done. There’s a minimal list of switches you can pass to it, which control the look of layout. i3a is typically run in the background, e.g. as a systemd service.

I quickly released versions 1.0.0, 1.1.0 and 1.1.1 one after another. I recommend using the latest version, because it fixes a frequent crash visible in 1.1.0 (I’m still confused how it slipped) and has some cool features compared to 1.0.0.

Features

Because this is the first release note about i3a, I won’t focus on bugs which I have fixed between versions, but just list some of its features:

  • it provides automatic master-stack area;
  • stack area can be either i3-like stack (stacking container layout) or dwm-like stack (splitv – vertically split – container layout), controllable with a --stack flag;
  • size of stack area can be changed with --stack-size flag;
  • layout is automatically (and quite reliably) balanced when windows are created, removed, moved between workspaces or when their floating state is toggled;
  • layout is rebuilt when workspace changes (when it is focused).

Additional scripts

Two more scripts are available together with i3a, because who doesn’t like goodies?. If you wish to use them, they should be bound to the key e.g. with bindsym <key> exec <script>.

  • i3a-move-to-empty, which moves currently focused window to the first available empty workspace. It relies on numbering of workspaces (so your workspaces should be named e.g. 2: foo, 3: bar, 4, 5, and so on);
  • i3a-swap: swaps master and stack windows; if focus is on master it is swapped with the inactive window from the stack and vice-versa.

Things got a little more complicated than the last time I wrote about it, but that’s the price for reliability and handling many corner cases. Closing master window on a background workspace is no easy task!