60 lines
2.2 KiB
Bash
Executable file
60 lines
2.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Script name: dmqute
|
|
# Description: Search your qutebrowswer bookmarks and quickmarks.
|
|
# Dependencies: dmenu, qutebrowser
|
|
# GitLab: https://www.gitlab.com/dwt1/dmscripts
|
|
# License: https://www.gitlab.com/dwt1/dmscripts/LICENSE
|
|
# Contributors: Derek Taylor
|
|
|
|
if [ $(hostname) = "chris-linuxlaptop" ]; then
|
|
style="laptop"
|
|
#echo "this is hidpi"
|
|
else
|
|
style="desktop"
|
|
#echo "this is not hidpi"
|
|
fi
|
|
|
|
# Defining location of bookmarks file
|
|
BMFILE="$HOME/.config/qutebrowser/bookmarks/urls"
|
|
|
|
# Defining location of quickmarks file
|
|
QMFILE="$HOME/.config/qutebrowser/quickmarks"
|
|
|
|
# Defining location of history database
|
|
HISTDB="$HOME/.local/share/qutebrowser/history.sqlite"
|
|
|
|
# A separator that will appear in between quickmarks, bookmarks and history urls.
|
|
SEPARATOR="----------"
|
|
|
|
# Read array of options to choose.
|
|
readarray -t bmarks < "$BMFILE"
|
|
readarray -t qmarks < "$QMFILE"
|
|
|
|
# Sort the bookmark, quickmark and history lists so that the url is the last field.
|
|
# We will awk print the last field later.
|
|
# History list is formed by grep'ing "http" from the history table.
|
|
bmlist=$(printf '%s\n' "${bmarks[@]}" | awk '{print $2" - "$1}')
|
|
qmlist=$(printf '%s\n' "${qmarks[@]}" | awk '{print "["$1"] - "$NF}' | sort)
|
|
SQL="SELECT h.title, h.url FROM history as h where url like 'http%';"
|
|
histlist=$(printf '%s\n' "$(sqlite3 "$HISTDB" "${SQL}")" | awk -F "|" '{print $1" - "$NF}')
|
|
|
|
# Piping the above lists into dmenu.
|
|
# We use "printf '%s\n'" to format the array one item to a line.
|
|
# The urls are listed quickmarks first, then the SEPARATOR, and then bookmarks.
|
|
choice=$(printf '%s\n' "$qmlist" "$SEPARATOR" "$bmlist" "$SEPARATOR" "$histlist" | rofi -dmenu -p 'Qutebrowser open:' -config "/home/chris/.dotfiles/rofi/launchers-git/$style.rasi") "$@" || exit
|
|
|
|
# What to do if the separator is chosen from the list.
|
|
# We simply launch qutebrowser without any url arguments.
|
|
# shellcheck disable=SC2154
|
|
if [ "$choice" == "$SEPARATOR" ]; then
|
|
qutebrowser
|
|
# What to do when/if we choose a url to view.
|
|
elif [ "$choice" ]; then
|
|
url=$(echo "${choice}" | awk '{print $NF}') || exit
|
|
qutebrowser "$url"
|
|
# What to do if we just escape without choosing anything.
|
|
else
|
|
echo "Program terminated." && exit 0
|
|
fi
|