Start adding tags

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.
This commit is contained in:
Ben Buhse 2026-01-26 15:04:41 -06:00
commit b8d31de3ef
No known key found for this signature in database
GPG key ID: 7916ACFCD38FD0B4
6 changed files with 160 additions and 106 deletions

View file

@ -40,8 +40,8 @@ const XkbBinding = struct {
utils.allocator.destroy(xkb_binding);
}
fn xkbBindingListener(xkb_binding_v1: *river.XkbBindingV1, event: river.XkbBindingV1.Event, xkb_binding: *XkbBinding) void {
assert(xkb_binding.xkb_binding_v1 == xkb_binding_v1);
fn xkbBindingListener(river_xkb_binding_v1: *river.XkbBindingV1, event: river.XkbBindingV1.Event, xkb_binding: *XkbBinding) void {
assert(xkb_binding.xkb_binding_v1 == river_xkb_binding_v1);
switch (event) {
.pressed => {
xkb_binding.executeCommand();
@ -136,7 +136,7 @@ pub fn create(context: *Context, xkb_bindings_v1: *river.XkbBindingsV1) !*XkbBin
}
pub fn destroy(xkb_bindings: *XkbBindings) void {
var it = xkb_bindings.bindings.iterator(.forward);
var it = xkb_bindings.bindings.safeIterator(.forward);
while (it.next()) |binding| {
binding.link.remove();
binding.xkb_binding_v1.destroy();