diff --git a/qutebrowser/scripts/qutedmenu b/qutebrowser/scripts/qutedmenu index a6b69b8..d32b47f 100755 --- a/qutebrowser/scripts/qutedmenu +++ b/qutebrowser/scripts/qutedmenu @@ -7,6 +7,11 @@ #:bind o spawn --userscript /path/to/userscripts/qutedmenu open #:bind O spawn --userscript /path/to/userscripts/qutedmenu tab +warn() { + echo "$1" >&2 +} + + readonly confdir=${XDG_CONFIG_HOME:-$HOME/.config} readonly datadir=${XDG_DATA_HOME:-$HOME/.local/share} readonly optsfile=$confdir/dmenu/bemenucolors @@ -24,8 +29,21 @@ create_menu() { printf -- '%s\n' "$url" done <"$QUTE_CONFIG_DIR"/bookmarks/urls + # Saved sessions + if type yq >/dev/null 2>&1; then + while read -r url; do + printf -- '%s\n' "$url" + done < <(yq ".windows.[].tabs.[].history.[].url" "${QUTE_DATA_DIR}"/sessions/*.yml | sed -e 's/^"\(.*\)"$/\1/') + else + warn "Did not find yq executable, not searching saved sessions." + fi + # Finally history - printf -- '%s\n' "$(sqlite3 -separator ' ' "$QUTE_DATA_DIR/history.sqlite" 'select title, url from CompletionHistory')" + if type sqlite3 >/dev/null 2>&1; then + printf -- '%s\n' "$(sqlite3 -separator ' ' "$QUTE_DATA_DIR/history.sqlite" 'select title, url from CompletionHistory')" + else + warn "Did not find sqlite3 executable, not searching history." + fi } get_selection() { @@ -56,5 +74,6 @@ url=${url/*http/http} case $1 in open) printf '%s' "open $url" >>"$QUTE_FIFO" || qutebrowser "$url" ;; +print) echo "$url" ;; tab | *) printf '%s' "open -t $url" >>"$QUTE_FIFO" || qutebrowser "$url" ;; esac