beansprout-custom/docs/TODO.md
Ben Buhse a9473204ad
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.
2026-02-26 16:34:48 -06:00

2.6 KiB

TODOs

These are in rough order of my priority, though no promises I do them in this order.

  • Add build-time options for including the wallpaper (and maybe bar)
  • Check pointer position and only warp if not on focused window already
  • Change focus direction when closing window
  • Use set_xcursor_theme request
  • Support configuring bar item positions (left/center/right)
  • Add focused window title to bar
  • Support overriding config location
  • Add support for center-primary layout
  • Add bar padding to config
  • Support 12-hour clock format (maybe take any time format string?)
  • Support per-output bar visibility
  • Support more window rule options (e.g. ssd/csd)
  • Support solid background-color fallback (no wallpaper)
  • Support keybind modes
  • 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
  • Use per-output timerfds for tag overlay instead of a single shared one
  • Support configurable focus-follows-window on send-to-output
  • Support configurable prepend/append on send-to-output
  • Support taking new output's tags on send-to-output
  • Add spawn_tagmask, focus_previous_tags, send_to_previous_tags commands
  • Support switch handling (e.g. lid close)
  • Support changeable primary ratio
  • Support changeable primary count
  • Support multiple outputs
  • Support floating windows
  • Support wallpapers
  • Make "orelse return" bits into errors; handle gracefully
  • Implement runtime log levels
  • Add input configuration, i.e. pointer acceleration and that type of thing
  • Support None modifier for keybinds (needed for media/brightness keys)
  • Support per-host config using properties
  • Implement primary count/ratio per tagmask
  • Add primary_count and primary_ratio to Config
  • Implement an optional clock bar
  • Implement a river-tag-overlay clone
  • Add options to the tag overlay
  • Add options to the bar
  • Make a Rect struct to combine x, y, width, and height
  • Support window rules (float/tags by app-id/title)
  • Fix resizing size when you pop a window out, basically, it start with its current size but then when you try resize it goes to 75%
  • Move orphan handling out of .output and .seat events; into manage()
  • Add config for single-window width ratio (mostly because my ultrawide makes a single window massive)
  • Support configuring primary vs secondary stack side