#!/bin/sh # # BOOKMARK # bookmarks="$HOME/documents/bookmarks.csv" browser=librewolf # Add a bookmark add_bookmark() { # Get URL from browser wlrctl window focus $browser || exit 1 wtype -M ctrl l -m ctrl wtype -M ctrl c -m ctrl sleep 0.5 url=$(wl-paste --primary) # Check if bookmark exists if grep "$url" "$bookmarks"; then notify-send "Bookmark already exists!" exit 1 fi # Prompt for url confirmation addbookmark=$(printf "Yes\nNo" | bemenu -p "Add '$url' to bookmarks?" --auto-select) # Description if [ "$addbookmark" = "Yes" ]; then title=$(: | bemenu -p "Enter a description: ") [ -z "$title" ] && exit 1 tag=$(: | bemenu -p "Enter a tag: ") [ -z "$title" ] && exit 1 printf "%s,%s,%s" "$url" "$tag" "$title" >> "$bookmarks" \ && notify-send "Bookmark Added" "$url" fi } case "$(printf 'Open\nWatch\nListen\nCopy\nType\nAdd' | bemenu -p 'Bookmark action')" in "Open") title=$(cut -f3 -d, "$bookmarks" | sed 's/^\s*//' | bemenu -p 'Select Bookmark') [ -z "$title" ] && exit 1 url=$(grep "$title" "$bookmarks" | cut -f1 -d, | sed 's/^\s*//') [ -z "$url" ] && exit 1 wlrctl window focus $browser $browser "$url" ;; "Watch") title=$(grep "\bvideo\b\|\bmusic\b" "$bookmarks" | cut -f3 -d, | sed 's/^ //' | bemenu -p 'Select Bookmark') [ -z "$title" ] && exit 1 url=$(grep "$title" "$bookmarks" | cut -f1 -d, | sed 's/^\s*//') [ -z "$url" ] && exit 1 mpv "$url" ;; "Listen") title=$(grep "\bmusic\b" "$bookmarks" | cut -f3 -d, | sed 's/^\s*//' | bemenu -p 'Select Bookmark') url=$(grep "$title" "$bookmarks" | cut -f1 -d, | sed 's/^\s*//') [ -z "$url" ] && exit 1 footclient mpv --no-video "$url" ;; "Copy") url=$(cut -f1 -d, "$bookmarks" | bemenu -p 'Select Bookmark') [ -z "$url" ] && exit 1 wl-copy -on "$url" notify-send "Copied" "$url" ;; "Type") url=$(cut -f1 -d, "$bookmarks" | bemenu -p 'Select Bookmark') [ -z "$url" ] && exit 1 echo "$url" | wtype - ;; "Add") add_bookmark ;; *) exit 1 ;; esac