Convert Bar to use river-shell-surface

I want to implement more functionality to the bar, similar to what
machi has in its bar, but it seems a lot easier to just handle the bar
with the rest of the manage/render loop that rwm and beansprout use.

To do that, I had to convert the bar to use river-shell-surface instead
of zwlr-layer-shell.

In that process, I also removed support for zwlr-layer-shell exclusive
zones. It made calculating the usable area for the layout more annoying.
If someone *really* wants, I would consider adding it back, but the only
thing I can think of that requires exclusive area is a bar, and we don't
really support other bars, so I don't think it's needed.

I also switched a couple of places to use saturating subtraction on
unsigned ints.
This commit is contained in:
Ben Buhse 2026-02-26 16:34:48 -06:00
commit a9473204ad
No known key found for this signature in database
GPG key ID: 7916ACFCD38FD0B4
6 changed files with 159 additions and 153 deletions

View file

@ -216,12 +216,6 @@ pub fn manage(context: *Context) void {
log.err("Failed to create bar: {}", .{e});
continue;
};
// If the output already has a wl_output, init the surface immediately
if (output.wl_output != null) {
output.bar.?.initSurface() catch |e| {
log.err("Failed to init bar surface: {}", .{e});
};
}
}
}
}