Files
omarchycn/bin/omarchy-chromium-copy-url-host

51 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# omarchy:summary=Native messaging host: copy a Chromium tab URL to the clipboard
# omarchy:hidden=true
set -euo pipefail
SCRIPT_PATH="${BASH_SOURCE[0]}"
export OMARCHY_PATH="${OMARCHY_PATH:-$(cd -- "$(dirname -- "$SCRIPT_PATH")/.." && pwd)}"
export PATH="$OMARCHY_PATH/bin:/usr/local/bin:/usr/bin:$PATH"
parse_url() {
jq -r '.url // empty' 2>/dev/null <<<"$1" || true
}
copy_url() {
local url="$1"
[[ -n $url ]] || return 1
printf '%s' "$url" | wl-copy --type text/plain
omarchy-notification-send -g 󰅍 "URL copied to clipboard"
}
reply_copied() {
if [[ $1 == "true" ]]; then
printf '\x0f\x00\x00\x00{"copied":true}'
else
printf '\x10\x00\x00\x00{"copied":false}'
fi
}
main() {
local length payload url
length=$(head -c4 | od -An -v -tu4 --endian=little | tr -d ' ')
[[ -n ${length:-} ]] && (( length > 0 )) || exit 0
payload=$(head -c "$length")
url=$(parse_url "$payload")
if copy_url "$url"; then
reply_copied true
else
reply_copied false
fi
}
if [[ ${BASH_SOURCE[0]} == "$0" ]]; then
main "$@"
fi