Skip to content

chore(rices): plain-text rice metadata with a separate SHELL_NAME - #79

Merged
Schnee111 merged 2 commits into
mainfrom
chore/issue-78-rice-metadata
Oct 25, 2026
Merged

Schnee111 merged 2 commits into
mainfrom
chore/issue-78-rice-metadata

Conversation

@Schnee111

Copy link
Copy Markdown
Owner

Fixes #78

What this changes

Metadata and text only. The menu theme is not changed here; that is a separate PR.

  • rices/*/rice.conf:
    • DISPLAY_NAME is now just the name (Caelestia, end4, iRiS, Prism Shell, …), with no emoji or symbols;
    • the part that used to sit in parentheses moved to a new SHELL_NAME field (Caelestia Quickshell, end4-pC Material 3, …).
  • bin/rice-switch:
    • new rice_title and rice_subtitle helpers. The subtitle is COMPOSITOR (capitalised) · SHELL_NAME, so DISPLAY_NAME is no longer parsed with ${dname#* } / ${dname%% (*};
    • rice-switch list prints the directory name that rice-switch <name> accepts, next to that subtitle, instead of the emoji string.
  • README "Adding a new rice" template: plain DISPLAY_NAME, plus SHELL_NAME.
  • New tests/rice-metadata.sh: every rice.conf has NAME matching its directory, and has DISPLAY_NAME, SHELL_NAME and COMPOSITOR, all printable ASCII. tests/rice-switch.sh drops its glyph check, which this test replaces.

rice-switch list now:

    caelestia     Hyprland · Caelestia Quickshell
  * end4          Hyprland · end4-pC Material 3
    ii-p3drovfx   Hyprland · Quickshell II VFX
    iris          Niri · iNiR
    minflair      Hyprland · Quickshell Minflair
    noctalia      Umbriel · Noctalia v5
    prism-shell   Hyprland · Quickshell Prism
    vitreus       Hyprland · Vitreus liquid-glass

Verification

  • bash tests/run.sh: all test files pass. shellcheck -S warning is clean.
  • Negative control: with the rice.conf files from main, tests/rice-metadata.sh fails with caelestia: DISPLAY_NAME is not plain text: ✨ caelestia (...).

Risk

Low. Nothing else reads DISPLAY_NAME; grep finds only bin/rice-switch and the README. Selection is by row index, so the changed text cannot break matching.

DISPLAY_NAME packed an emoji, the name and a parenthesised subtitle into
one string, which rice-switch then took apart again. Make DISPLAY_NAME
just the name, add SHELL_NAME, and build the subtitle from COMPOSITOR
and SHELL_NAME. `rice-switch list` now prints the directory name it
accepts next to that subtitle. A new test keeps the metadata complete
and free of emoji.

Fixes #78
Copilot AI balanced review requested due to automatic review settings October 25, 2026 00:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@Schnee111 Schnee111 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Autonomous Code Review

Verdict: Approved
Target Commit: bf33bbc

Summary

Cleanly refactors rice metadata into plain-text DISPLAY_NAME and SHELL_NAME fields across all rice configs, updates rice-switch title/subtitle helpers and listing format, and adds test coverage for metadata validity.

Recommendations

  • In 'tests/rice-metadata.sh' line 10, consider appending '|| true' to the pipeline in 'field()' (e.g. 'grep -m1 -E "^$2=" "$1" | cut -d= -f2- | sed -e 's/^"//' -e 's/"$//' || true'). Currently, due to 'set -euo pipefail', if a key is completely absent from a 'rice.conf', grep fails with exit code 1 and aborts the script immediately on line 18 rather than proceeding to line 19 to log the intended 'FAIL: : is missing' diagnostic.
  • In 'tests/rice-metadata.sh' line 29, consider using 'if (( failed == 0 )); then echo "ok: rice metadata is complete and plain text"; fi' instead of the '&&' construct, so that non-zero 'failed' values do not trigger 'set -e' before reaching 'exit "$failed"'.

Shorekeeper Sentinel · Autonomous Quality Gate

@Schnee111 Schnee111 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Autonomous Code Review

Verdict: Approved
Target Commit: 3be7763

Summary

Cleanly decouples rice metadata into plain-text DISPLAY_NAME and SHELL_NAME fields, updates rice-switch formatting helpers, and adds comprehensive automated verification.


Shorekeeper Sentinel · Autonomous Quality Gate

@Schnee111
Schnee111 merged commit 58ea3d8 into main Oct 25, 2026
1 check passed
@Schnee111
Schnee111 deleted the chore/issue-78-rice-metadata branch October 25, 2026 00:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rices: drop emoji from rice.conf and split DISPLAY_NAME into structured fields

2 participants