]> gitweb.fluxo.info Git - qutebrowser.git/commitdiff
Updates dist, adds qutebrowser-exec for session handling
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 4 Jan 2018 15:48:22 +0000 (13:48 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 4 Jan 2018 15:48:22 +0000 (13:48 -0200)
dist
lib/qutebrowser-exec [new file with mode: 0755]
qutebrowser

diff --git a/dist b/dist
index 5c00eea122eaf4c645c2eec3b3e01b9ee18c02e0..c3bcb1d9ba6ab244c2004e2b73fad3de40b77b2d 160000 (submodule)
--- a/dist
+++ b/dist
@@ -1 +1 @@
-Subproject commit 5c00eea122eaf4c645c2eec3b3e01b9ee18c02e0
+Subproject commit c3bcb1d9ba6ab244c2004e2b73fad3de40b77b2d
diff --git a/lib/qutebrowser-exec b/lib/qutebrowser-exec
new file mode 100755 (executable)
index 0000000..7c5c119
--- /dev/null
@@ -0,0 +1,79 @@
+#!/usr/bin/env sh
+#
+# Thanks https://github.com/ayekat/dotfiles/blob/master/bin/qutebrowser
+# Adapted to be sourced from another wrapper
+
+# Wrapper around qutebrowser that makes sessions (-r, --restore SESSION) behave
+# like they used to in dwb.
+#
+# We do so by filtering out the -r/--restore option passed to qutebrowser and
+# using the argument to set up the following directory structure and symbolic
+# links:
+#
+# $XDG_RUNTIME_DIR/qutebrowser/$session/cache → $XDG_CACHE_HOME/qutebrowser/$session
+# $XDG_RUNTIME_DIR/qutebrowser/$session/data → $XDG_DATA_HOME/qutebrowser/$session
+# $XDG_RUNTIME_DIR/qutebrowser/$session/config → $XDG_CONFIG_HOME/qutebrowser
+# $XDG_RUNTIME_DIR/qutebrowser/$session/runtime (no symlink, regular directory)
+#
+# We then specify $XDG_RUNTIME_DIR/qutebrowser/$session as a --basedir, and the
+# files will end up in their intended locations (notice how the config directory
+# is the same for all sessions, as there is no point in keeping it separate).
+#
+# Written by ayekat in an burst of nostalgy, on a mildly cold wednesday night in
+# February 2017.
+
+#set -e
+
+# Set default values for the variables as defined in the XDG base directory spec
+# (https://specifications.freedesktop.org/basedir-spec/latest/):
+XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
+XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
+XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
+XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
+
+# Translate options: remove occurrences of -r/--restore from the list of
+# command line arguments and save the session name for later; ignore -R (TODO):
+session=default
+basedir_specified=n
+opts_read=0
+while [ $opts_read -lt $# ]; do
+       opt="$1" && shift
+       case "$opt" in
+               (--basedir) basedir_specified=y ;;
+               (-r|-[!-]*r|--restore) test $# -gt 0 && session="$1" && shift && continue ;;
+               (-R) continue ;; # TODO
+       esac
+       set -- "$@" "$opt"
+       opts_read=$((opts_read + 1))
+done
+
+# Set up session base directory, unless --basedir has been specified by the
+# user:
+if [ "$basedir_specified" != 'y' ]; then
+       basedir="$XDG_RUNTIME_DIR/qutebrowser/$session"
+       set -- --basedir "$basedir" "$@"
+       mkdir -p \
+               "$basedir" \
+               "$XDG_CONFIG_HOME/qutebrowser" \
+               "$XDG_CACHE_HOME/qutebrowser/$session" \
+               "$XDG_DATA_HOME/qutebrowser/$session" \
+               "$basedir/runtime"
+       ln -fsT "$XDG_CONFIG_HOME/qutebrowser" "$basedir/config"
+       ln -fsT "$XDG_CACHE_HOME/qutebrowser/$session" "$basedir/cache"
+       ln -fsT "$XDG_DATA_HOME/qutebrowser/$session" "$basedir/data"
+fi
+
+## Run "real" qutebrowser executable:
+#if [ "$(basename "$0")" != qutebrowser ]; then
+#      exec qutebrowser "$@"
+#fi
+#spath="$(readlink -f "$0")"
+#IFS=:
+#for p in $PATH; do
+#      epath="$p"/qutebrowser
+#      if [ -x "$epath" ] && [ "$(readlink -f "$epath")" != "$spath" ]; then
+#              exec "$epath" "$@"
+#      fi
+#done
+#echo 'command not found: qutebrowser' >&2
+#exit 127
index 8f763864bed2159504a09bfe4678602ede0ace11..682116c83fe4a06fa4a868ab8b06cc536ea6a967 100755 (executable)
@@ -8,6 +8,7 @@ if [ "$1" != "update" ] && [ -x "$HOME/apps/qutebrowser/dist/.venv/bin/python3"
   #export LD_LIBRARY_PATH=/usr/lib/openssl-1.0
   #export LD_LIBRARY_PATH=/usr/lib/`arch`-linux-gnu/openssl-1.0.2
   OPTS="--qt-flag disable-reading-from-canvas"
+  source `dirname $0`/qutebrowser-exec
   $HOME/apps/qutebrowser/dist/.venv/bin/python3 -m qutebrowser $OPTS "$@"
 else
   # Go to project folder
@@ -34,6 +35,6 @@ else
 
   # Run this script again
   if [ "$1" != "update" ]; then
-    $0
+    $0 "$@"
   fi
 fi