summaryrefslogtreecommitdiff
path: root/bin/.bin/add-bookmark.sh
diff options
context:
space:
mode:
authorDavid Sadler <david@flashacademy.com>2026-07-07 09:15:46 +0100
committerDavid Sadler <david@flashacademy.com>2026-07-07 09:15:46 +0100
commit626c119a60701e2908e5795b3941078ebb8dba6b (patch)
treead8b6577953f50ad958051ef1d2493e8785ad4cb /bin/.bin/add-bookmark.sh
parent4c8d52122d962a0194737450e825471f27c93451 (diff)
parentfc2b007057dc763de14f9cd7860360bc5c9b646e (diff)
Merge branch 'main' into WSL
Diffstat (limited to 'bin/.bin/add-bookmark.sh')
-rwxr-xr-xbin/.bin/add-bookmark.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/bin/.bin/add-bookmark.sh b/bin/.bin/add-bookmark.sh
new file mode 100755
index 0000000..9a8ab6b
--- /dev/null
+++ b/bin/.bin/add-bookmark.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+BOOKMARKS_FILE="$DOTFILES_REPO/bookmarks.txt"
+
+mkdir -p "$(dirname "$BOOKMARKS_FILE")"
+touch "$BOOKMARKS_FILE"
+
+xdotool key --delay 50 ctrl+l ctrl+c Escape
+
+sleep 0.15
+
+URL=$(xclip -selection clipboard -o)
+
+if [[ "$URL" =~ ^https?:// ]]; then
+ NAME=$(zenity --entry \
+ --title="Add Bookmark" \
+ --text="Enter a name for this bookmark:" \
+ --entry-text="" 2>/dev/null)
+
+ if [ -z "$NAME" ]; then
+ notify-send "Bookmark Cancelled" "No name was provided."
+ exit 0
+ fi
+
+ CLEAN_NAME=$(echo "$NAME" | tr '|' '-')
+
+ if ! grep -q "|$URL$" "$BOOKMARKS_FILE"; then
+ echo "$CLEAN_NAME|$URL" >>"$BOOKMARKS_FILE"
+ notify-send "Bookmark Saved" "$CLEAN_NAME\n$URL"
+ else
+ notify-send "Bookmark" "This exact URL already exists!"
+ fi
+else
+ notify-send "Bookmark Error" "Clipboard did not contain a valid URL."
+fi