diff --git a/bin/omarchy-menu b/bin/omarchy-menu index dfbc40da..5d4c655e 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -3,7 +3,22 @@ OMARCHY_BIN_PATH=~/.local/share/omarchy/bin menu() { - echo -e "$2" | walker --dmenu --theme dmenu_250 -p "$1…" $3 + local prompt="$1" + local options="$2" + local extra="$3" + local preselect="$4" + + read -r -a args <<<"$extra" + + if [[ -n "$preselect" ]]; then + local index + index=$(echo -e "$options" | grep -nxF "$preselect" | cut -d: -f1) + if [[ -n "$index" ]]; then + args+=("-a" "$index") + fi + fi + + echo -e "$options" | walker --dmenu --theme dmenu_250 -p "$prompt…" "${args[@]}" } terminal() { @@ -57,7 +72,7 @@ show_style_menu() { } show_theme_menu() { - theme=$(menu "Theme" "$($OMARCHY_BIN_PATH/omarchy-theme-list)") + theme=$(menu "Theme" "$($OMARCHY_BIN_PATH/omarchy-theme-list)" "" "$($OMARCHY_BIN_PATH/omarchy-theme-current)") if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then show_main_menu else diff --git a/bin/omarchy-theme-current b/bin/omarchy-theme-current new file mode 100755 index 00000000..40350c53 --- /dev/null +++ b/bin/omarchy-theme-current @@ -0,0 +1,3 @@ +#!/bin/bash + +basename "$(realpath "$HOME/.config/omarchy/current/theme")" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g' diff --git a/bin/omarchy-theme-list b/bin/omarchy-theme-list index 91f5252c..944979f4 100755 --- a/bin/omarchy-theme-list +++ b/bin/omarchy-theme-list @@ -1,21 +1,5 @@ #!/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[@]}" +find ~/.config/omarchy/themes/ -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | sort | while read -r path; do + echo "$(basename "$path" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')" +done diff --git a/default/walker/themes/omarchy-default.css b/default/walker/themes/omarchy-default.css index e0f9a0c0..e87f1f60 100644 --- a/default/walker/themes/omarchy-default.css +++ b/default/walker/themes/omarchy-default.css @@ -123,6 +123,10 @@ child:hover #label { color: @selected-text; } +#item.active { + font-style: italic; +} + /* Hide sub text */ #sub { opacity: 0;