<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xdg_pipe_menu/test/er_xdg_pipe_menu_renderer_tests.erl, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://projects.languidnights.com/cgit/xdg_pipe_menu/atom?h=main</id>
<link rel='self' href='https://projects.languidnights.com/cgit/xdg_pipe_menu/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://projects.languidnights.com/cgit/xdg_pipe_menu/'/>
<updated>2026-07-21T15:44:41Z</updated>
<entry>
<title>Rename app from er_xdg_pipe_menu to xdg_pipe_menu</title>
<updated>2026-07-21T15:44:41Z</updated>
<author>
<name>Christopher R. Nelson</name>
<email>christopher.nelson@languidnights.com</email>
</author>
<published>2026-07-21T15:44:41Z</published>
<link rel='alternate' type='text/html' href='https://projects.languidnights.com/cgit/xdg_pipe_menu/commit/?id=5ff1fbe175af17fbb808c5ea942f465a932da3af'/>
<id>urn:sha1:5ff1fbe175af17fbb808c5ea942f465a932da3af</id>
<content type='text'>
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 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Group menu items into per-category submenus</title>
<updated>2026-07-21T14:54:00Z</updated>
<author>
<name>Christopher R. Nelson</name>
<email>christopher.nelson@languidnights.com</email>
</author>
<published>2026-07-21T14:54:00Z</published>
<link rel='alternate' type='text/html' href='https://projects.languidnights.com/cgit/xdg_pipe_menu/commit/?id=46b72a375101b54819f8750750017bd71e7c3798'/>
<id>urn:sha1:46b72a375101b54819f8750750017bd71e7c3798</id>
<content type='text'>
Parse the Categories key from .desktop files and have the renderer
emit one &lt;menu&gt; 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 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add Openbox pipe menu renderer</title>
<updated>2026-07-21T03:03:25Z</updated>
<author>
<name>Christopher R. Nelson</name>
<email>christopher.nelson@languidnights.com</email>
</author>
<published>2026-07-21T03:03:25Z</published>
<link rel='alternate' type='text/html' href='https://projects.languidnights.com/cgit/xdg_pipe_menu/commit/?id=6bbc784b4cf0717ddc7f5c3ad32c1d5e2d486877'/>
<id>urn:sha1:6bbc784b4cf0717ddc7f5c3ad32c1d5e2d486877</id>
<content type='text'>
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 &lt;item&gt; 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 -&gt; parse -&gt; render, with caching and
invalidation) is also left for later.

Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
