| Age | Commit message (Collapse) | Author |
|
Drop the "er-" prefix throughout: module/atom names, filenames,
socket paths, and docs. It was an implementation detail, not part
of the app's identity.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
|
Parse the Categories key from .desktop files and have the renderer
emit one <menu> submenu per category (via xmerl), with items sorted
within each; entries in multiple categories appear in each submenu,
and uncategorized entries fall into a catch-all "Other" submenu.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
|
render/1 turns a list of #desktop_entry{} into the XML Openbox expects
on stdout from a pipe menu: hidden entries dropped, remaining ones
sorted case-insensitively by name, each as an <item> wrapping an
Execute action with its command and (if present) icon attribute.
XML-escapes label/command/icon values.
Icon values are passed through as-is (theme icon names, not resolved
paths) -- icon theme resolution is left for later, separate from
rendering. Service wiring (scan -> parse -> render, with caching and
invalidation) is also left for later.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|