Compare commits

...

2 commits

2 changed files with 74 additions and 27 deletions

View file

@ -1,33 +1,76 @@
#!/bin/bash
#!/bin/sh
# cd to the local VNC directory, exit if it fails
cd "${HOME}/.vnc" || exit 5
# Variables
declare -a vncctl
systemctl=systemctl
systemd_unit=vncserver
verb="${1:-status}"; shift
display="${1:-1}" ; shift
file_base="./$(hostname):1."
# Prepending sudo if necessary
case "$verb" in
start|restart|stop)
sudo=sudo
error() {
>&2 printf '\033[1;31m%s\033[0m %s\n' "ERROR:" "$1"
shift
exit "$1"
}
help() {
name="$(basename "$0")"
cat << EOF
${name} - Start a VNC server
Usage:
${name} start|status|stop|help
EOF
}
usage() {
>&2 help
error "Invalid usage: ${1}" 1
}
is_running() {
vncserver -list | grep -q '^:1'
}
start() {
if ! is_running; then
vncserver
else
error "The VNC server is already running!" 4
fi
}
status() {
log_f="${file_base}log"
if is_running; then
tail -f "$log_f"
else
echo "The VNC server is not running."
fi
}
stop() {
if is_running; then
vncserver -kill :1
else
error "The VNC server is not running!" 3
fi
}
# Argument parsing
set -e; trap 'set +e; error "$error" "$?"' EXIT
error="You must give an argument"
[ -n "$1" ]; arg="$1"; shift
unset error
set +e; trap - EXIT
# Main case statement
case "$arg" in
start|status|stop|help)
"$arg"
;;
*)
usage "Invalid argument \"$arg\""
;;
esac
# Command building
[[ -n $sudo ]] && vncctl+=("$sudo")
vncctl+=(
"$systemctl"
"$@"
"$verb"
"${systemd_unit}@:${display}"
)
# Debug
#echo "${vncctl[@]}"
#exit 0
# Command execution
set -xe
"${vncctl[@]}"

4
bin/xstartup.turbovnc Executable file
View file

@ -0,0 +1,4 @@
#!/bin/sh
artix-pipewire-loader &
exec xfwm4