Hi,

I needed a decent VNC server, so I wrapped up TigerVNC into two guix packages. One is for the client, and another for the server. Since the build procedure is non-standard (a combination of cmake for the viewer and some parts, but  then patch-and-compile  Xorg server for the VNC server) , I could not follow the ([understandably] scarcely documented) package definition procedures in Guix docs and, instead, mixed and matched things I gleaned from other Guix packages. The result works as far as I can tell and was tested in a VM, however, some parts of the package definition could probably be expressed more elegantly.

Also, it would be nice if the folks who created xorg-server package definition could check the various configure options in the server part, since the tigervnc-server inherits from xorg-server. For example, was it really necessary to disable Xephyr? I do not even know what is it for.

The vncserver script surprisingly works, but could probably customised a bit for the Guix distro. In addition, most distros have a systemd service to start the server. I do not  see this as a very important addition, given the Guix orientation towards user managed configs, but if someone wants to help me define one, I am open to it. One nice application for a service would be to implement the multi-user vnc server as described here https://developer.ibm.com/tutorials/os-multiuserloginsvnc/

Finally, the packages were linted, and indented using the script. The lint complains about certain minor things that I feel are better left the way they are.

Hopefully someone will find this useful.

Cheers,

Todor