Repository navigation
chore(rices): plain-text rice metadata with a separate SHELL_NAME - #79
Merged
Merged
Conversation
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
Schnee111
commented
Oct 25, 2026
Schnee111
left a comment
Owner
Author
There was a problem hiding this comment.
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
commented
Oct 25, 2026
Schnee111
left a comment
Owner
Author
There was a problem hiding this comment.
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_NAMEis now just the name (Caelestia,end4,iRiS,Prism Shell, …), with no emoji or symbols;SHELL_NAMEfield (Caelestia Quickshell,end4-pC Material 3, …).bin/rice-switch:rice_titleandrice_subtitlehelpers. The subtitle isCOMPOSITOR(capitalised)·SHELL_NAME, soDISPLAY_NAMEis no longer parsed with${dname#* }/${dname%% (*};rice-switch listprints the directory name thatrice-switch <name>accepts, next to that subtitle, instead of the emoji string.DISPLAY_NAME, plusSHELL_NAME.tests/rice-metadata.sh: everyrice.confhasNAMEmatching its directory, and hasDISPLAY_NAME,SHELL_NAMEandCOMPOSITOR, all printable ASCII.tests/rice-switch.shdrops its glyph check, which this test replaces.rice-switch listnow:Verification
bash tests/run.sh: all test files pass.shellcheck -S warningis clean.rice.conffiles frommain,tests/rice-metadata.shfails withcaelestia: DISPLAY_NAME is not plain text: ✨ caelestia (...).Risk
Low. Nothing else reads
DISPLAY_NAME;grepfinds onlybin/rice-switchand the README. Selection is by row index, so the changed text cannot break matching.