diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..a8850bd --- /dev/null +++ b/TODO.md @@ -0,0 +1,31 @@ +# 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.