From 7ad8eb6fee27e651309082b71d015fe37afd6814 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 13 Aug 2016 01:48:01 -0400 Subject: Spend way too long fighting with wmii --- .../user/wm-running@.target.requires/wmii@.service | 1 - .../user/wm-running@.target.requires/wmiirc@.service | 1 + .config/systemd/user/wmii-proxy@.service | 8 ++++++++ .config/systemd/user/wmii@.service | 11 +++-------- .config/systemd/user/wmii@.service.wants/wmiirc@.service | 1 + .config/systemd/user/wmii@.socket | 9 +++++++++ .config/systemd/user/wmiirc | 3 +++ .config/systemd/user/wmiirc@.service | 16 ++++++++++++++++ .config/wmii-hg/config.sh | 6 ++++-- .config/wmii-hg/include.sh | 8 ++------ .config/wmii-hg/rbar.sh | 2 +- .config/wmii-hg/wmiirc | 1 - 12 files changed, 48 insertions(+), 19 deletions(-) delete mode 120000 .config/systemd/user/wm-running@.target.requires/wmii@.service create mode 120000 .config/systemd/user/wm-running@.target.requires/wmiirc@.service create mode 100644 .config/systemd/user/wmii-proxy@.service create mode 120000 .config/systemd/user/wmii@.service.wants/wmiirc@.service create mode 100644 .config/systemd/user/wmii@.socket create mode 100755 .config/systemd/user/wmiirc create mode 100644 .config/systemd/user/wmiirc@.service diff --git a/.config/systemd/user/wm-running@.target.requires/wmii@.service b/.config/systemd/user/wm-running@.target.requires/wmii@.service deleted file mode 120000 index 1b202d2..0000000 --- a/.config/systemd/user/wm-running@.target.requires/wmii@.service +++ /dev/null @@ -1 +0,0 @@ -../wmii@.service \ No newline at end of file diff --git a/.config/systemd/user/wm-running@.target.requires/wmiirc@.service b/.config/systemd/user/wm-running@.target.requires/wmiirc@.service new file mode 120000 index 0000000..d763dce --- /dev/null +++ b/.config/systemd/user/wm-running@.target.requires/wmiirc@.service @@ -0,0 +1 @@ +../wmiirc@.service \ No newline at end of file diff --git a/.config/systemd/user/wmii-proxy@.service b/.config/systemd/user/wmii-proxy@.service new file mode 100644 index 0000000..1ef2b8f --- /dev/null +++ b/.config/systemd/user/wmii-proxy@.service @@ -0,0 +1,8 @@ +[Unit] +Description=Socket activation helper for WMII on X display %I +Requires=wmii@%i.service +After=wmii@%i.service +BindsTo=wmii@%i.service + +[Service] +ExecStart=/usr/lib/systemd/systemd-socket-proxyd %t/.wmii@%I.sock diff --git a/.config/systemd/user/wmii@.service b/.config/systemd/user/wmii@.service index 6707b9a..121a004 100644 --- a/.config/systemd/user/wmii@.service +++ b/.config/systemd/user/wmii@.service @@ -3,17 +3,12 @@ Description=Window Manager Improved Improved on X display %I Documentation=file:/usr/share/doc/wmii/wmii.pdf After=X11@%i.target Requisite=X11@%i.target -Before=wm-running@%i.target [Service] Environment=DISPLAY=%I -# This assumes that you write READY=1 to $NOTIFY_SOCKET in wmiirc Type=notify NotifyAccess=all - -ExecStart=/usr/bin/env bash -c 'exec 8>${XDG_RUNTIME_DIR}/x11-wm@%I; exec wmii' -ExecStop=/usr/bin/env wmiir xwrite /ctl Quit - -[Install] -RequiredBy=X11@%i.target +ExecStart=/usr/bin/env bash -c 'exec 8>%t/x11-wm@%I; echo "$DISPLAY"; exec wmii -a unix!%t/.%N.sock -r ${XDG_CONFIG_HOME}/systemd/user/wmiirc' +ExecStop=/usr/bin/env wmiir -a unix!%t/.%N.sock xwrite /ctl Quit +ExecStopPost=/bin/rm -f -- %t/.%N.sock diff --git a/.config/systemd/user/wmii@.service.wants/wmiirc@.service b/.config/systemd/user/wmii@.service.wants/wmiirc@.service new file mode 120000 index 0000000..d763dce --- /dev/null +++ b/.config/systemd/user/wmii@.service.wants/wmiirc@.service @@ -0,0 +1 @@ +../wmiirc@.service \ No newline at end of file diff --git a/.config/systemd/user/wmii@.socket b/.config/systemd/user/wmii@.socket new file mode 100644 index 0000000..b1583a6 --- /dev/null +++ b/.config/systemd/user/wmii@.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Window Manager Improved Improved on X display %I socket + +[Socket] +ListenStream=%t/wmii@%I.sock +Service=wmii-proxy@%i.service + +[Install] +RequiredBy=X11@.target diff --git a/.config/systemd/user/wmiirc b/.config/systemd/user/wmiirc new file mode 100755 index 0000000..72f62b7 --- /dev/null +++ b/.config/systemd/user/wmiirc @@ -0,0 +1,3 @@ +#!/bin/sh +echo 'READY=1' | socat STDIO UNIX-SENDTO:"$NOTIFY_SOCKET" +sleep infinity diff --git a/.config/systemd/user/wmiirc@.service b/.config/systemd/user/wmiirc@.service new file mode 100644 index 0000000..7c64cca --- /dev/null +++ b/.config/systemd/user/wmiirc@.service @@ -0,0 +1,16 @@ +[Unit] +Description=Window manager configuration on X display %I +After=X11@%i.target wmii@%i.socket +Requires=wmii@%i.socket +Requisite=X11@%i.target + +Before=wm-running@%i.target + +[Service] + +Type=notify +NotifyAccess=all +ExecStopPost=/bin/rm -rf -- %t/wmii@%I/ + +Environment=DISPLAY=%I WMII_ADDRESS=unix!%t/wmii@%I.sock +ExecStart=/usr/bin/env WMII_CONFPATH=${XDG_CONFIG_HOME}/wmii-hg ${XDG_CONFIG_HOME}/wmii-hg/wmiirc diff --git a/.config/wmii-hg/config.sh b/.config/wmii-hg/config.sh index 77d813f..19cebca 100644 --- a/.config/wmii-hg/config.sh +++ b/.config/wmii-hg/config.sh @@ -59,10 +59,12 @@ Event() { echo " -> Creating mountpoint WMII_DIR=$WMII_DIR..." mkdir -p "$WMII_DIR" echo " -> Mounting WMII_DIR=$WMII_DIR..." - 9mount -i "unix!$WMII_NAMESPACE/wmii" "$WMII_DIR";; + 9pfuse "$WMII_ADDRESS" "$WMII_DIR" + while ! [[ -f "$WMII_DIR/event" ]]; do :; done + ;; WmiircUnmount) ## No args echo " -> Unmounting WMII_DIR=$WMII_DIR..." - 9umount "$WMII_DIR" + fusermount -u "$WMII_DIR" echo " -> Removing mountpoint WMII_DIR=$WMII_DIR..." rmdir -p "$WMII_DIR" 2>/dev/null;; ## WMII-meta events diff --git a/.config/wmii-hg/include.sh b/.config/wmii-hg/include.sh index 788e2af..f9cf4b4 100644 --- a/.config/wmii-hg/include.sh +++ b/.config/wmii-hg/include.sh @@ -4,12 +4,8 @@ if [[ -z "$XDG_RUNTIME_DIR" ]]; then exit 6 fi -if [[ -z "$WMII_NAMESPACE" ]]; then - export WMII_NAMESPACE="$(wmiir namespace)" -fi -if [[ -z "$WMII_DIR" ]]; then - export WMII_DIR="${XDG_RUNTIME_DIR}/wmii${DISPLAY}" -fi +[[ -n "$WMII_ADDRESS" ]] || export WMII_ADDRESS="unix!$(wmiir namespace)/wmii" +[[ -n "$WMII_DIR" ]] || export WMII_DIR="${XDG_RUNTIME_DIR}/wmii@${DISPLAY}" . workarounds.sh . util.sh diff --git a/.config/wmii-hg/rbar.sh b/.config/wmii-hg/rbar.sh index cf256dd..b02c2e9 100644 --- a/.config/wmii-hg/rbar.sh +++ b/.config/wmii-hg/rbar.sh @@ -10,7 +10,7 @@ setup_trap() { write() { local dirs=("${XDG_RUNTIME_DIR}"/wmii*/rbar/) - sponge|tee -a "${dirs[@]/%/${1}}" > /dev/null + sponge|tee -a "${dirs[@]/%/${1}}" > /dev/null || true } set -eE diff --git a/.config/wmii-hg/wmiirc b/.config/wmii-hg/wmiirc index a66d3d9..c6e05bf 100755 --- a/.config/wmii-hg/wmiirc +++ b/.config/wmii-hg/wmiirc @@ -1,5 +1,4 @@ #!/usr/bin/env bash -unset WMII_NAMESPACE unset WMII_DIR if [[ -z $_PATH ]]; then -- cgit v1.2.3-54-g00ecf