#! /usr/bin/env bash # # xephwrap.sh # Copyright (C) 2018 salt # # Distributed under terms of the MIT license. # name="$(basename -- "$0" .sh)" log() { [ -z ${1+x} ] && return 1 printf "\\e[94m%s\\e[0m: %s\\n" \ "$name" \ "$1" } xprompt() { [ -z ${1+x} ] && return 2 [ -z ${2+x} ] || default="$2"; suffix=" [$default]" read -rp "$1$suffix: " if [ "$REPLY" == "" ]; then export REPLY="$2" fi } validatedep() { [ -z ${1+x} ] && return 2 if ! command -v "$1" > /dev/null 2>&1; then return 1 fi return 0 } # Validate dependencies for dep in Xephyr; do if ! validatedep "$dep"; then log "Failed to validate dependency: \"$dep\"" exit 1 fi done # Prompt for user interaction xprompt "Size" "1280x720" size="$REPLY" xprompt "Display" "10" display="$REPLY" if ! [ "$display" -ge "-1" ]; then log "Invalid response for display: \"$display\"" exit 4 fi if [ "$display" == "$DISPLAY" ]; then log "Response matches host display: \"$display\"" exit 5 fi # Start the server up Xephyr \ -ac \ -screen "$size" \ :"$display" \ & disown log "Started Xephyr server" exit 0