diff options
| author | Robert Günzler <r@gnzler.io> | 2020-06-17 18:35:28 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2020-06-17 18:35:28 +0200 |
| commit | fb2252a396baccb77cdf7538e57f74d0292396fa (patch) | |
| tree | cf88659df0cc99466f06fb283a3d504a7adcf90f /bin/sway-run | |
| parent | 7e9cccf2b1286b3444ff0e530289ba102b959d7a (diff) | |
bin/sway-run: add option to run in dbus-session
Diffstat (limited to 'bin/sway-run')
| -rwxr-xr-x | bin/sway-run | 62 |
1 files changed, 30 insertions, 32 deletions
diff --git a/bin/sway-run b/bin/sway-run index be60ae4..5e0bd1d 100755 --- a/bin/sway-run +++ b/bin/sway-run @@ -1,47 +1,45 @@ #!/bin/sh +set -e -set -ex +SWAY_BIN=${SWAY_BIN:-/usr/bin/sway} +SWAY_ARGS=${SWAY_ARGS:-} +SWAY_USER=${SWAY_USER:-robert} +sway_user_id=$(id -u "${SWAY_USER}") +SWAY_TTY=${SWAY_TTY:-7} +MANUAL= -if [ "$XDG_RUNTIME_DIR" == "" ]; then - export XDG_RUNTIME_DIR=/tmp -fi - -LOCKED=0 -SWAY_BIN=/usr/bin/sway -SWAY_ARGS= +export XDG_RUNTIME_DIR=/run/user/"${sway_user_id}" +source /home/"${SWAY_USER}"/.config/sway/env -while getopts ":dcDL" o; do +while getopts ":dcDmh" o; do case $o in d) SWAY_ARGS="$SWAY_ARGS --debug" ;; D) export XDG_RUNTIME_DIR=/tmp/sway-run-debug - [ ! -d "$XDG_RUNTIME_DIR" ] && mkdir -p "$XDG_RUNTIME_DIR" + [ ! -d "${XDG_RUNTIME_DIR}" ] && mkdir "${XDG_RUNTIME_DIR}" && chmod 700 "${XDG_RUNTIME_DIR}" ;; - c) SWAY_ARGS="$SWAY_ARGS --config $XDG_CONFIG_HOME/sway/simple.conf" ;; - L) LOCKED=1 ;; + c) SWAY_ARGS="${SWAY_ARGS} --config /home/${SWAY_USER}/.config/sway/simple.conf --debug" ;; + m) MANUAL=1 ;; + h) echo "usage: $0 [-dcDLh]"; exit 0 ;; *) echo "unknown flag: $o" 1>&2 esac done shift $((OPTIND-1)) -if [ $LOCKED -eq 1 ]; then - sh -c 'sleep 1; $HOME/.dotfiles/bin/lock' & disown - exec "$0" $@ +ts="$(date -u --rfc-3339=seconds | tr ' ' 'T')" +log=/var/log/sway/${ts}.log + +if [ -n "${MANUAL}" ]; then + cat <<EOF | doas sh -s +# prepare tty +chown "$SWAY_USER" "/dev/tty${SWAY_TTY}" +chmod 600 "/dev/tty${SWAY_TTY}" +# launch sway on new tty +su --preserve-environment --login --command \ + "openvt --switch --console ${SWAY_TTY} -- dbus-run-session ${SWAY_BIN} -Ddamage=rerender ${SWAY_ARGS} 1>&2 2>${log}" \ + "${SWAY_USER}" +EOF +else + exec dbus-run-session "${SWAY_BIN}" -Ddamage=rerender ${SWAY_ARGS} $@ 1>&2 2>"${log}" + # exec "${SWAY_BIN}" -Ddamage=rerender ${SWAY_ARGS} $@ 1>&2 2>"${log}" fi - -case $1 in - locked) shift; exec $0 -L ;; - git) shift; - SWAY_SRC="$HOME/devel/upstream/github.com/swaywm/sway" - SWAY_BIN="$SWAY_SRC/build/sway/sway"; - export PATH="$SWAY_SRC/build/sway:$PATH" - export LD_LIBRARY_PATH="$SWAY_SRC/build/subprojects/wlroots:$LD_LIBRARY_PATH" - ;; - system) shift; exec $0 ;; - clean) shift; exec $0 -c ;; -esac - -TS="$(date -u --rfc-3339=seconds | tr ' ' 'T')" -LOG=/var/log/sway/"$TS".log - -exec $SWAY_BIN -Ddamage=rerender $SWAY_ARGS $@ 1>&2 2>"$LOG" |