Primary ratio is per-output.
If an output is disconnected/disabled, its windows get sent to the
previous output in the output list. If all outputs are disconnected,
windows are added to an orphan list in the WM. Once an output is
re-added, the orphans are all given to that output.
When a window is sent to a new output, it keeps the same tags as it
had before. I may add an option to take the new output's tags.
- Rename focus_next/focus_prev to focus_next_window/focus_prev_window
- Add focus_next_output/focus_prev_output
- Add send_to_next_output/send_to_prev_output commands to move windows
between outputs
Split Seat.PendingManage.PendingFocus into separate pending output
and pending window structs
Fix window outputs when closing outputs
Keybinds go in a "keybinds" block and follow the format
<command> <modifiers> <keysym> <options>
But there's also a special "tag_bind" command that just takes modifiers
and one of set_output_tags, set_window_tags, toggle_output_tags, and
toggle_window_tags. It will automatically be used to loop through the
1-9 keys on tags 1<<0 to 1<<9, however, you can still implement those
commands individually if you want.
I added 7 new Commands to XkbKeybinds.Commands, though 3 of them don't
work yet.
The new commands that *work* are
+ set_output_tags: u32,
+ set_window_tags: u32,
+ toggle_output_tags: u32,
+ toggle_window_tags: u32,
They each take a 32-bit value as a bitmask to set (or toggle) tags.
The 3 unimplemented commands are
+ spawn_tagmask: u32,
+ focus_previous_tags,
+ send_to_previous_tags,
and they will all panic if they're used.
For now, default keybinds are hardcoded as part of WindowManager's
initializing in the first \`manage_start\` event. Multi-output support
is not added yet, so this will still all happen on a single Output.
Right now, essentially nothing has changed, there is still no multi-
output support and not even a way to change/set/toggle/view/etc. tags.
However, tags *are* implemented at a core level. Next step is to add
keybinds for the various tag actions.
After that, I will work on multi-output support.
Right now, colors are hardcoded in the Config in main.zig.
This commit also adds a couple of new keybinds for navigating between
windows. All keybinds are hardcoded as well right now.