mirror of
https://codeberg.org/scip/swaycycle.git
synced 2025-12-16 20:11:02 +01:00
add doc about inner workings
This commit is contained in:
25
README.md
25
README.md
@@ -40,6 +40,31 @@ It's also possible to debug an instance executed by sway using the
|
|||||||
bindsym $mod+Tab exec ~/bin/swaycycle -d -l /tmp/cycle.log
|
bindsym $mod+Tab exec ~/bin/swaycycle -d -l /tmp/cycle.log
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## How does it work?
|
||||||
|
|
||||||
|
`swaycycle` is being executed by sway when the user presses a key
|
||||||
|
(e.g. `ALT-tab`). It then executes:
|
||||||
|
|
||||||
|
`swaymsg -t get_tree -r`
|
||||||
|
|
||||||
|
to get a JSON representation of the current setup (a tree consisting
|
||||||
|
of outputs, workspaces, containers and running programs).
|
||||||
|
|
||||||
|
Then it determines which workspace is the current active one and
|
||||||
|
builds a list of all windows visible on that workspace, whether
|
||||||
|
floating or not.
|
||||||
|
|
||||||
|
Next it determines which window is following the one in the list with
|
||||||
|
the current active focus. If the active one is at the end of the list,
|
||||||
|
it starts from the top.
|
||||||
|
|
||||||
|
Finally another swaymsg command is being executed to give focus to the
|
||||||
|
calculated next window, e.g.:
|
||||||
|
|
||||||
|
`swaymsg [con_id=14] focus`
|
||||||
|
|
||||||
|
`swaycycle` then just exists. It does not store any state to disk.
|
||||||
|
|
||||||
## Getting help
|
## Getting help
|
||||||
|
|
||||||
Although I'm happy to hear from swaycycle users in private email, that's the
|
Although I'm happy to hear from swaycycle users in private email, that's the
|
||||||
|
|||||||
Reference in New Issue
Block a user