beansprout-custom/docs/TODO.md
Ben Buhse 5c427234d7
Add layer shell support and fix floating windows
Now, I actually save the river-layer-shell-v1 and keep track of the
non-exclusive area. The layout calculation uses the usable area instead
of the entire output's geometry.

I removed boundary clamping for the floating windows because it was a
bit janky when hitting the edges. I'll probably add it back at some
point. I also made windows default to 75% of the usable area instead of
keeping their tiled size so that maximized windows look decent when
floating for the first time. Finally, since I removed the clamping, I
added a center_float keybind to center a floating window. If you're
cycling through focused windows and one isn't on the screen, you can use
the center_float bind to get the window visible again.

Replaced all divTrunc with divFloor to be consistent. I think they
should all be positive, anyways, so they'd be the same, but I like just
having one.
2026-02-14 11:30:37 -06:00

30 lines
1.3 KiB
Markdown

# TODOs
These are in rough order of my priority, though no promises I do them in this order.
- [ ] Implement a river-tag-overlay clone
- [ ] Implement an optional clock bar
- [ ] Make a Rect struct to combine x, y, width, and height
- [ ] Support window rules (float/tags/SSD by app-id/title)
- [ ] Support overriding config location
- [ ] Support configuring primary vs secondary stack side
- [ ] Support switch handling (e.g. lid close)
- [ ] Support keybind modes (e.g. passthrough)
- [ ] Support solid `background-color` fallback (no wallpaper)
- [ ] Support per-output wallpapers
- [ ] Support `focus-follows-cursor` granularity (`normal` vs `always`)
- [ ] Save window positions between restarts
- [ ] Support multiple seats
- [ ] Support clipping floating windows on edge of/between outputs
- [x] Support changeable primary ratio
- [x] Support changeable primary count
- [x] Support multiple outputs
- [x] Support floating windows
- [x] Support wallpapers
- [x] Make "orelse return" bits into errors; handle gracefully
- [x] Implement runtime log levels
- [x] Add input configuration, i.e. pointer acceleration and that type of thing
- [x] Support `None` modifier for keybinds (needed for media/brightness keys)
- [x] Support per-host config using properties
- [x] Implement primary count/ratio per tagmask
- [x] Add primary_count and primary_ratio to Config