reMenu: A rust-enabled reconfigurable menu
Current status
As of now, I am trying to getter a better understanding of X11.
There is no functionality and the code is an absolute mess.
Besides the lack of structure and good abstraction, there are other issues:
- X server objects are never freed.
- There is unwrap everywhere and no error handling.
- There are no tests.
- And yeah, there is no logging.
- It will crash, if not build with latest xcb from github
As I said: This is for learning right now.
Limitations
- Nested folders are not supported when loading desktop entries.
Normally, desktop entries are stored directly in the searched folders.
I know only one case involving screensavers where this is not the case.
Introducing nested folders for this use case only, does not make sense.
Note that this might change, if more cases of nested folders are found in the wild.
Open issues
- scroll through results
- check for vertical fonts
- Add missing keys: F1-F12, delete, tab, pos1, end, pgnup, pgndown
- Correct desktop entries parser
- async loading of entries (allows typing while loading)
- check use of X DBE (double buffer extension)
- dpi setting
- casts and shortcuts in font rendering
References
Desktop entries
- https://specifications.freedesktop.org/desktop-entry-spec/latest/
- https://wiki.archlinux.org/title/Desktop_entries
- https://wiki.ubuntuusers.de/.desktop-Dateien/
- https://www.baeldung.com/linux/desktop-entry-files
- https://github.com/pop-os/freedesktop-desktop-entry
- https://github.com/FivEawE/desktopentries/blob/master/src/entry.rs
- https://github.com/takluyver/deskent
- https://github.com/enkore/j4-dmenu-desktop