Let a theme name hold a plus or lead with an underscore, and document the set

The name a theme installs under is derived from its repo URL, and holding it to
an allowlist made that allowlist a naming convention nobody had written down. It
was also tighter than the harm it exists to stop: `+` is not shell syntax and a
leading `_` is neither the `..` climb nor the dash basename reads as an option,
so `omarchy-c++-theme` was refused for nothing.

Widen the set to those two and say what it is where a theme author is already
picking a name. The leading character stays out of `.` and `-`, which is the
part that does the work.

Reported-by: Luis Alvarez (lalvarezt)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fd3RCHxwjEbMXoSYB9Aiso
This commit is contained in:
Mehmet Ince
2026-08-26 23:37:44 +01:00
co-authored by Claude Opus 5
parent 75e51f0b95
commit 3b0e899029
3 changed files with 18 additions and 1 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ THEME_PATH="$THEMES_DIR/$THEME_NAME"
# ~/.config/omarchy with it, and one called `a';'id` would carry its own
# command into that picker. The leading character is kept out of `.` and `-`,
# which also covers `host:-s/foo.git` leaving basename with `.git`.
if [[ ! $THEME_NAME =~ ^[a-z0-9][a-z0-9._-]*$ ]]; then
if [[ ! $THEME_NAME =~ ^[a-z0-9_][a-z0-9._+-]*$ ]]; then
echo "Error: '$REPO_URL' does not give a usable theme name."
exit 1
fi