provide a systemd user service unit for vncserver
diff --git a/contrib/systemd/user/vncserver@.service b/contrib/systemd/user/vncserver@.service
new file mode 100644
index 0000000..7797504
--- /dev/null
+++ b/contrib/systemd/user/vncserver@.service
@@ -0,0 +1,26 @@
+#
+# /usr/lib/systemd/user/vncserver@.service
+#
+# 1. Switches for vncserver should be entered in ~/.vnc/config rather than
+#    hard-coded into this unit file. See the vncserver(1) manpage.
+#
+# 2. Users wishing for the server to continue running after the owner logs
+#    out MUST enable 'linger' with loginctl like this:
+#    `loginctl enable-linger username`
+#    
+# 3. The server can be enabled and started like this once configured:
+#    `systemctl --user start vncserver@:<display>.service`
+#    `systemctl --user enable vncserver@:<display>.service`
+
+[Unit]
+Description=Remote desktop service (VNC)
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
+ExecStart=/usr/bin/vncserver %i
+ExecStop=/usr/bin/vncserver -kill %i
+
+[Install]
+WantedBy=default.target