qutebrowser: Include sessions into qutedmenu script
If 'yq' is found on the system, the qutedmenu script will now also traverse any saved sessions for urls (either active or historic) and display those as well. Also added a simple check for the sqlite3 and yq tools and spit out a warning if either isn't found. Program will continue unhindered and just ignore the history/session urls respectively.
This commit is contained in:
parent
4aab62cd80
commit
59677f3b9c
1 changed files with 20 additions and 1 deletions
|
@ -7,6 +7,11 @@
|
||||||
#:bind o spawn --userscript /path/to/userscripts/qutedmenu open
|
#:bind o spawn --userscript /path/to/userscripts/qutedmenu open
|
||||||
#:bind O spawn --userscript /path/to/userscripts/qutedmenu tab
|
#:bind O spawn --userscript /path/to/userscripts/qutedmenu tab
|
||||||
|
|
||||||
|
warn() {
|
||||||
|
echo "$1" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
readonly confdir=${XDG_CONFIG_HOME:-$HOME/.config}
|
readonly confdir=${XDG_CONFIG_HOME:-$HOME/.config}
|
||||||
readonly datadir=${XDG_DATA_HOME:-$HOME/.local/share}
|
readonly datadir=${XDG_DATA_HOME:-$HOME/.local/share}
|
||||||
readonly optsfile=$confdir/dmenu/bemenucolors
|
readonly optsfile=$confdir/dmenu/bemenucolors
|
||||||
|
@ -24,8 +29,21 @@ create_menu() {
|
||||||
printf -- '%s\n' "$url"
|
printf -- '%s\n' "$url"
|
||||||
done <"$QUTE_CONFIG_DIR"/bookmarks/urls
|
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
|
# 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() {
|
get_selection() {
|
||||||
|
@ -56,5 +74,6 @@ url=${url/*http/http}
|
||||||
|
|
||||||
case $1 in
|
case $1 in
|
||||||
open) printf '%s' "open $url" >>"$QUTE_FIFO" || qutebrowser "$url" ;;
|
open) printf '%s' "open $url" >>"$QUTE_FIFO" || qutebrowser "$url" ;;
|
||||||
|
print) echo "$url" ;;
|
||||||
tab | *) printf '%s' "open -t $url" >>"$QUTE_FIFO" || qutebrowser "$url" ;;
|
tab | *) printf '%s' "open -t $url" >>"$QUTE_FIFO" || qutebrowser "$url" ;;
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Reference in a new issue