bscreensaver/TODO.md

32 lines
1.8 KiB
Markdown
Raw Normal View History

2022-05-22 20:12:55 +00:00
# TODO
* Fully audit the locker source to ensure that it cannot crash based on
error handling in its own code.
* Add the (optional) ability to allow some key presses through, such as
screen brightness keys.
* Add support for running screensaver programs ("hacks" in
`xscreensaver` parlance) that draw interesting things on
`bscreensaver`'s blanker windows. Without this, `bscreensaver` is
more accurately called `bscreenlocker`.
* Dig into the systemd service a bit more; I think it isn't always
locking properly before the system suspends (sometimes there is a
flash of screen contents on resume).
* Build a second locker dialog using another toolkit. Qt could be
interesting, as well as iced. I do not believe it is possible to
use GTK4, as GTK4 no longer has `GtkPlug` and is intentionally too
platform-agnostic to support the kind of things we need.
* Move the `xcb-xembed` and `xcb-async` sub-crates to their own project.
I may want to flesh out `xcb-xembed` so it supports the entirety of
the XEMBED spec, not just the features I needed for this project.
* Consider using `x11rb` rather than `xcb`. The former autogenerates a
full XCB protocol library in Rust, while the latter is a set of
bindings to the `libxcb` C library. I would like to reduce the amount
of non-Rust code executed in the locker process, for safety/security
reasons.
* Add support for non-Linux systems that are also UNIX-like. PAM, I
believe, is different on other systems and the auth code might need
some changes. Also, a method of disabling building, installing, and
running the systemd, and possibly DBus, services would be needed.
* Figure out why forwarding key release events (in addition to key press
events) to the unlock dialog results in duplicate key presses.