#!/bin/bash set -e set -f set -u set -o pipefail _safe_param_stdin() { tr -d '$`<>"%;)(&+'"'" } _main_server_watcher(){ inotifywait --event close_write --format '%f' --monitor "$dir" | \ while read -r line do # TODO: validate IP/hostname local target target="$(head -n 1 "$dir/$line" | _safe_param_stdin)" test -n "$target" # TODO: calculate scale factor for xpra based on width and height # https://unix.stackexchange.com/a/400791 #IFS=', =' read -a area < <(xprop -root '_NET_WORKAREA') # log how xpra is run into ~/.xsession-errors* ( set -x ; xpra attach tcp://"$target":4648 ) & # XXX TODO: this fails for now, fix permissions and try to avoid 777 # or maybe clean up old files by systemd-tmpfiles #unlink "$dir/$line" done } if [ "${SOURCED:-0}" != 1 ]; then readonly dir='/var/spool/doskast' _main_server_watcher "$@" fi