diff --git a/bin/omarchy-menu-share b/bin/omarchy-menu-share index bb522686..24206f4f 100755 --- a/bin/omarchy-menu-share +++ b/bin/omarchy-menu-share @@ -17,32 +17,23 @@ shift if [[ $MODE == "clipboard" ]]; then TEMP_FILE=$(mktemp --suffix=.txt) wl-paste >"$TEMP_FILE" - FILES="$TEMP_FILE" + FILE_ARRAY=("$TEMP_FILE") +elif (($# > 0)); then + FILE_ARRAY=("$@") else - if (($# > 0)); then - FILES="$*" + if [[ $MODE == "folder" ]]; then + # Pick a single folder from home directory + picked=$(find "$HOME" -type d 2>/dev/null | fzf) else - if [[ $MODE == "folder" ]]; then - # Pick a single folder from home directory - FILES=$(find "$HOME" -type d 2>/dev/null | fzf) - else - # Pick one or more files from home directory - FILES=$(find "$HOME" -type f 2>/dev/null | fzf --multi) - fi - [[ -z $FILES ]] && exit 0 + # Pick one or more files from home directory + picked=$(find "$HOME" -type f 2>/dev/null | fzf --multi) fi + [[ -z $picked ]] && exit 0 + readarray -t FILE_ARRAY <<<"$picked" fi # Run LocalSend in its own systemd service (detached from terminal) -# Convert newline-separated files to space-separated arguments -if [[ $MODE != "clipboard" ]] && echo "$FILES" | grep -q $'\n'; then - # Multiple files selected - convert newlines to array - readarray -t FILE_ARRAY <<<"$FILES" - systemd-run --user --quiet --collect localsend --headless send "${FILE_ARRAY[@]}" -else - # Single file or clipboard mode - systemd-run --user --quiet --collect localsend --headless send "$FILES" -fi +systemd-run --user --quiet --collect localsend --headless send "${FILE_ARRAY[@]}" # Note: Temporary file will remain until system cleanup for clipboard mode # This ensures the file content is available for the LocalSend GUI