diff --git a/bin/omarchy-menu b/bin/omarchy-menu index cb4c5a4b14..8e71e8b72a 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -148,7 +148,10 @@ show_screenrecord_menu() { *"With desktop audio") omarchy-cmd-screenrecord --with-desktop-audio ;; *"With desktop + microphone audio") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;; *"With desktop + microphone audio + webcam") - local device=$(show_webcam_select_menu) || { back_to show_capture_menu; return; } + local device=$(show_webcam_select_menu) || { + back_to show_capture_menu + return + } omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio --with-webcam --webcam-device="$device" ;; *) back_to show_capture_menu ;; @@ -185,7 +188,7 @@ show_style_menu() { case $(menu "Style" "󰸌 Theme\n Font\n Background\n Hyprland\n󱄄 Screensaver\n About") in *Theme*) show_theme_menu ;; *Font*) show_font_menu ;; - *Background*) omarchy-theme-bg-next ;; + *Background*) show_background_menu ;; *Hyprland*) open_in_editor ~/.config/hypr/looknfeel.conf ;; *Screensaver*) open_in_editor ~/.config/omarchy/branding/screensaver.txt ;; *About*) open_in_editor ~/.config/omarchy/branding/about.txt ;; @@ -197,6 +200,10 @@ show_theme_menu() { omarchy-launch-walker -m menus:omarchythemes --width 800 --minheight 400 } +show_background_menu() { + omarchy-launch-walker -m menus:omarchyBackgroundSelector +} + show_font_menu() { theme=$(menu "Font" "$(omarchy-font-list)" "--width 350" "$(omarchy-font-current)") if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then @@ -588,6 +595,7 @@ go_to_menu() { *learn*) show_learn_menu ;; *trigger*) show_trigger_menu ;; *share*) show_share_menu ;; + *background*) show_background_menu ;; *capture*) show_capture_menu ;; *style*) show_style_menu ;; *theme*) show_theme_menu ;; diff --git a/bin/omarchy-theme-set b/bin/omarchy-theme-set index b58c77731b..3a00720f23 100755 --- a/bin/omarchy-theme-set +++ b/bin/omarchy-theme-set @@ -36,7 +36,7 @@ rm -rf "$CURRENT_THEME_PATH" mv "$NEXT_THEME_PATH" "$CURRENT_THEME_PATH" # Store theme name for reference -echo "$THEME_NAME" > "$HOME/.config/omarchy/current/theme.name" +echo "$THEME_NAME" >"$HOME/.config/omarchy/current/theme.name" # Change background with theme omarchy-theme-bg-next @@ -51,6 +51,7 @@ omarchy-restart-hyprctl omarchy-restart-btop omarchy-restart-opencode omarchy-restart-mako +omarchy-restart-walker # Change app-specific themes omarchy-theme-set-gnome diff --git a/default/elephant/omarchy_background_selector.lua b/default/elephant/omarchy_background_selector.lua new file mode 100644 index 0000000000..350a2a9fed --- /dev/null +++ b/default/elephant/omarchy_background_selector.lua @@ -0,0 +1,40 @@ +Name = "omarchyBackgroundSelector" +NamePretty = "Omarchy Background Selector" +Cache = true +HideFromProviderlist = true +SearchName = true + +function GetEntries() + local entries = {} + local wallpaper_dir = os.getenv("HOME") .. "/.config/omarchy/current/theme/backgrounds" + local handle = io.popen( + "find '" + .. wallpaper_dir + .. + "' -maxdepth 1 -type f -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp' -o -name '*.webp' 2>/dev/null" + ) + if handle then + for background in handle:lines() do + local filename = background:match("([^/]+)$") + if filename then + table.insert(entries, { + Text = filename, + Value = background, + Actions = { + activate = "ln -sf '" + .. background + .. "' " + .. os.getenv("HOME") + .. "/.config/themes/current/background && killall swaybg 2>/dev/null ; swaybg -o '*' -i '" + .. background + .. "' -m fill &", + }, + Preview = background, + PreviewType = "file", + }) + end + end + handle:close() + end + return entries +end diff --git a/install/config/walker-elephant.sh b/install/config/walker-elephant.sh index de924d4cee..ad071dc9e6 100644 --- a/install/config/walker-elephant.sh +++ b/install/config/walker-elephant.sh @@ -27,3 +27,4 @@ EOF # Link the visual theme menu config mkdir -p ~/.config/elephant/menus ln -snf $OMARCHY_PATH/default/elephant/omarchy_themes.lua ~/.config/elephant/menus/omarchy_themes.lua +ln -snf $OMARCHY_PATH/default/elephant/omarchy_background_selector.lua ~/.config/elephant/menus/omarchy_background_selector.lua diff --git a/migrations/1770380577.sh b/migrations/1770380577.sh new file mode 100644 index 0000000000..208aa6231c --- /dev/null +++ b/migrations/1770380577.sh @@ -0,0 +1,4 @@ +#link the visual background selector menu config + +mkdir -p ~/.config/elephant/menus +ln -snf $OMARCHY_PATH/default/elephant/omarchy_background_selector.lua ~/.config/elephant/menus/omarchy_background_selector.lua