#!/bin/sh PROMPT="Bookmarks" BROWSER="luakit -Un" BMPATH="$HOME/.browser-bookmarks-$(hostname -s)" DMENUOPTS="$@" d_out() { if tty -s; then printf "%s\n" "$@" fi } out() { printf "%s\n" "$@" } browse() { PRG="$(printf "Luakit\nVimb\nSurf\nChromium\nFirefox\n" | dmenu -p "Program" $DMENUOPTS )" case $PRG in Luakit) BROWSER="luakit -Un";; Vimb) BROWSER="vimb";; Surf) BROWSER="surf";; Chromium) BROWSER="chrome --new-window";; Firefox) BROWSER="firefox --new-window";; *) exit 0;; esac $BROWSER "$@" } d_out "Launching dmenu" BM="$(dmenu -p "$PROMPT" $DMENUOPTS < "$BMPATH")" d_out "Check if search string contains dot" if out "$BM" | grep -q '\.'; then d_out "Check if dot string is in bookmarks" if ! grep -q "$BM" "$BMPATH"; then d_out "Add dot string to bookmarks" out "$BM" >> "$BMPATH" fi d_out "Open dot string in browser" browse "$BM" exit 0 fi d_out "Check for clipboard url" if [ "$BM" = "paste_from_clipboard" ]; then d_out "Open clipboard as URL" browse "$(xclip -o -selection clipboard | sed 's/ /+/g')" exit 0 fi d_out "Check for clipboard search" if [ "$BM" = "search_from_clipboard" ]; then d_out "Open clipboard as search" browse "https://duckduckgo.com/?q=$(xclip -o -selection clipboard | sed 's/ /+/g')" exit 0 fi d_out "No dot, no clipboard command... search for it!" if [ "$BM" != "" ]; then browse "https://duckduckgo.com/?q=$(out "$BM" | sed 's/ /+/g')" exit 0 fi