i3 WM focus-like tool with cycling in mind
i3-cycle is a small python tool written for the i3 Window Manager that allows to cycle the focus across windows and monitors.
Given the following example:
a b
+---------------+ +---------------+
| | | | | |
| | | | | |
| | | | | |
| 1 | 2 | | 3 | 4 |
| | | | | |
| | | | | |
| | | | | |
+---------------+ +---------------+
Where a and b are different screens/monitors/outputs and 1, 2, 3 and 4 four different windows spread amongst the two screens.
If the focus if set on 2 and we want to set the focus to the right, with traditional i3 focus, the target will be 3.
With i3-cycle, the new focus recipient will be 1.
i3-cycle also works vertically, and allows to cycle directely through the different screens without requiring to move the focus through multiple windows before reaching it.
i3-cycle is developed in Python and requires i3-py
$ git clone https://github.com/mota/i3-cycle.git
$ cd i3-cycle
$ python setup.py install
$ pip install i3-cycle
or
$ easy_install i3-cycle
$ i3-cycle -h
usage: i3-cycle [-h] {up,down,left,right,next,prev}
positional arguments:
{up,down,left,right,next,prev}
Direction to put the focus on
optional arguments:
-h, --help show this help message and exit
up, down, left and right allow to move through windows of the current workspace in a cycling fashion.
next and prev cycle through the screens.
Example i3 configuration
$ cat ~/.i3/config
...
bindsym $mod+} exec i3-cycle right
bindsym $mod+{ exec i3-cycle left
bindsym $mod+Shift+{ exec i3-cycle up
bindsym $mod+Shift+} exec i3-cycle down
bind $mod+49 exec i3-cycle next
bind $mod+Shift+49 exec i3-cycle prev
...