#!/usr/bin/env bash # Copyright 2015-2021 Florian Bruhin (The Compiler) # Copyright 2015 Zach-Button # # This file is part of qutebrowser. # # qutebrowser is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # qutebrowser is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with qutebrowser. If not, see . # Pipes history, quickmarks, and URL into dmenu. # # If run from qutebrowser as a userscript, it runs :open on the URL # If not, it opens a new qutebrowser window at the URL # # Ideal for use with tabs_are_windows. Set a hotkey to launch this script, then: # :bind o spawn --userscript dmenu_qutebrowser # # Use the hotkey to open in new tab/window, press 'o' to open URL in current tab/window # You can simulate "go" by pressing "o", as the current URL is always first in the list # # I personally use "o" to launch this script. For me, my workflow is: # Default keys Keys with this script # O o # o o # go o # gO gC, then o # (This is unnecessarily long. I use this rarely, feel free to make this script accept parameters.) # [ -z "$QUTE_URL" ] && QUTE_URL='https://duckduckgo.com' url=$(printf "%s\n%s" "$QUTE_URL" "$(sqlite3 -separator ' ' "$QUTE_DATA_DIR/history.sqlite" 'select title, url from CompletionHistory')" | cat "$QUTE_CONFIG_DIR/quickmarks" - | dmenu -l 15 -p qutebrowser) url=$(echo "$url" | sed -E 's/[^ ]+ +//g' | grep -E "https?:" || echo "$url") [ -z "${url// }" ] && exit echo "open $url" >> "$QUTE_FIFO" || qutebrowser "$url"