diff --git a/bin/omarchy-theme-list b/bin/omarchy-theme-list
new file mode 100755
index 00000000..91f5252c
--- /dev/null
+++ b/bin/omarchy-theme-list
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+THEMES_DIR="$HOME/.config/omarchy/themes/"
+CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
+CURRENT_THEME_NAME=$(basename "$(realpath "$CURRENT_THEME_DIR")")
+
+# Build themes list with pretty display names
+mapfile -t themes < <(
+ find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | sort | while read -r path; do
+ filename=$(basename "$path")
+ display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')
+
+ if [[ "$filename" == "$CURRENT_THEME_NAME" ]]; then
+ echo "$display_name"
+ else
+ echo "$display_name"
+ fi
+ done
+)
+
+printf '%s\n' "${themes[@]}"
diff --git a/bin/omarchy-theme-menu b/bin/omarchy-theme-menu
index 9f3801a9..4a19f1c5 100755
--- a/bin/omarchy-theme-menu
+++ b/bin/omarchy-theme-menu
@@ -1,31 +1,4 @@
#!/bin/bash
-THEMES_DIR="$HOME/.config/omarchy/themes/"
-CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
-CURRENT_THEME_NAME=$(basename "$(realpath "$CURRENT_THEME_DIR")")
-
-# Build themes list with pretty display names
-mapfile -t themes < <(
- find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | sort | while read -r path; do
- filename=$(basename "$path")
- display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')
-
- if [[ "$filename" == "$CURRENT_THEME_NAME" ]]; then
- echo "$display_name"
- else
- echo "$display_name"
- fi
- done
-)
-
-# Show Walker menu
-selection=$(printf '%s\n' "${themes[@]}" | walker --dmenu --theme dmenu_250 -p "Choose Theme" 2>/dev/null)
-
-# Remove any Pango markup before converting back to filename
-clean_selection=$(echo "$selection" | sed -E 's/<[^>]+>//g')
-
-# Convert to lowercase and dash-separated: "Tokyo Night" -> "tokyo-night"
-selected_theme=$(echo "$clean_selection" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
-
-# Apply the selected theme
-"$HOME/.local/share/omarchy/bin/omarchy-theme-set" "$selected_theme"
+"$HOME/.local/share/omarchy/bin/omarchy-theme-set" \
+ "$(~/.local/share/omarchy/bin/omarchy-theme-list | walker --dmenu --theme dmenu_250 -p "Choose Theme" 2>/dev/null)"
diff --git a/bin/omarchy-theme-set b/bin/omarchy-theme-set
index 791fc0d5..3f0551b2 100755
--- a/bin/omarchy-theme-set
+++ b/bin/omarchy-theme-set
@@ -3,7 +3,7 @@
# omarchy-theme-set: Set a theme, specified by its name.
# Usage: omarchy-theme-set
-if [[ -z "$1" ]]; then
+if [[ -z "$1" && "$1" != "CNCLD" ]]; then
echo "Usage: omarchy-theme-set " >&2
exit 1
fi
@@ -11,7 +11,7 @@ fi
THEMES_DIR="$HOME/.config/omarchy/themes/"
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
-THEME_NAME="$1"
+THEME_NAME=$(echo "$1" | sed -E 's/<[^>]+>//g' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
THEME_PATH="$THEMES_DIR/$THEME_NAME"
# Check if the theme entered exists