26 lines
821 B
Text
26 lines
821 B
Text
|
#!/bin/zsh
|
||
|
|
||
|
# The arguments should be a command to run in qutebrowser. If no arguments are
|
||
|
# provided, then :open -w is run by default.
|
||
|
cmd=($@)
|
||
|
(( $# < 1 )) && cmd=(:open -w)
|
||
|
|
||
|
# There should only be one qutebrowser socket, but just in case we only take
|
||
|
# the first result we find.
|
||
|
sockets=( ${TMPDIR}qutebrowser/ipc*(N) )
|
||
|
SOCKET=$sockets[1]
|
||
|
|
||
|
if [[ -w $SOCKET ]]; then
|
||
|
# We have a legit socket. Let's send the commands to qutebrowser. Yay!
|
||
|
jo target_arg=null protocol_version=1 cwd=$PWD "args[]=$cmd" | socat - UNIX-CONNECT:$SOCKET
|
||
|
else
|
||
|
# No socket. Let's start qutebrowser!
|
||
|
open -a qutebrowser.app
|
||
|
# If we were given commands to run, we still wanna run them once qutebrowser
|
||
|
# starts, so wait a little while and then re-exec this script.
|
||
|
if (( $# )); then
|
||
|
sleep 5
|
||
|
exec qtb "$@"
|
||
|
fi
|
||
|
fi
|