Compare commits
2 commits
7c6e663ee3
...
6ad5e289e1
Author | SHA1 | Date | |
---|---|---|---|
|
6ad5e289e1 | ||
|
0a4fd2cbdc |
2 changed files with 74 additions and 27 deletions
97
bin/vncctl
97
bin/vncctl
|
@ -1,33 +1,76 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
|
# cd to the local VNC directory, exit if it fails
|
||||||
|
cd "${HOME}/.vnc" || exit 5
|
||||||
|
|
||||||
# Variables
|
# Variables
|
||||||
declare -a vncctl
|
file_base="./$(hostname):1."
|
||||||
systemctl=systemctl
|
|
||||||
systemd_unit=vncserver
|
|
||||||
verb="${1:-status}"; shift
|
|
||||||
display="${1:-1}" ; shift
|
|
||||||
|
|
||||||
# Prepending sudo if necessary
|
error() {
|
||||||
case "$verb" in
|
>&2 printf '\033[1;31m%s\033[0m %s\n' "ERROR:" "$1"
|
||||||
start|restart|stop)
|
shift
|
||||||
sudo=sudo
|
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
|
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
4
bin/xstartup.turbovnc
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
artix-pipewire-loader &
|
||||||
|
exec xfwm4
|
||||||
|
|
Loading…
Reference in a new issue