# Which VNC client to use (needs scaling and having the mouse pointer where expected)?



## Styrsven (Jun 14, 2022)

I'm trying to run local virtual machines just for fun, using bhyve via cbsd. I've got my first test system up and running (debian), so I think I'm doing some progress. There is only one thing I have issues with: is there some VNC client that has scaling of the display and keeps the X mouse pointer where you expect it to be?
I need scaling to see on my 4k display, and I need the mouse pointer to be usable.
From work I have good experience with the realvnc client, connecting from windows to a linux server. But I don't think it is available on FreeBSD. I have tried Remmina and some more, but the mouse pointer flies all over the place. So if anyone knows a usable alternative please advise.


----------



## mer (Jun 14, 2022)

I've been using tigervnc-viewer  for a while I believe it does scaling and I've not had any mouse issues.


----------



## kpedersen (Jun 14, 2022)

By scaling, do you mean that when you resize the client, the display server changes desktop size, or do you simply mean that the image gets squashed / stretched to fit client side?

If it is the latter, most viewers do that (tightvnc, tigervnc). For the changing display size, this is a server-side thing fairly unique to tigervnc-server (it is effectively a non-standard extension) I believe only tigervnc-viewer and NoVNC clients sends the signal to do so.

TigerVNC viewer is also one of the faster ones. It uses jpeg-turbo for fast decoding.


----------



## Styrsven (Jun 14, 2022)

I think bhyve uses uefi and exports it as vnc, so I believe the server side has limited features. As I use a 27 inch 4k screen even the max resolution from the server looks small, so I'm looking for client-side scaling of the display to make it bigger. The alternative would be to lower my X-server resolution, and I'd like to avoid that. Tigervnc does seem to handle the mouse pointer correctly. I think I just try out the alternatives I find in the ports.


----------



## Ole (Jun 15, 2022)

The only thing about VNC and mouse cursor that you can influence in bhyve is `*w=X,h=Y*' options for fbuf and '*tablet*' backend (on/off) for xHCI USB: https://man.freebsd.org/bhyve/8

or via CBSD: 'tablet=*0|1*' + 'bhyve_vnc_resolution=*A*x*B*' (see vnc.conf ), e.g:

```
cbsd bcreate jname=vm1 vm_os_type=linux vm_os_profile=cloud-Debian-x86-11 vm_ram=2g vm_cpus=1 imgsize=10g ci_ip4_addr=172.16.0.88 ci_gw4=172.16.0.1 runasap=1 bhyve_vnc_resolution=1920x1200 tablet=0
```
(where 172.16.0.88 / 172.16.0.1 is valid IP/gateway for you) or:

```
cbsd bset jname=vm2 bhyve_vnc_resolution=1920x1200 tablet=0
```
But if you want to work with graphics in bhyve guest environments, use a guest with the appropriate software ( XRPD, XPRA, VNCServer, NoMachine, Spice ... ) [pre]-configured inside the guest.

PS: BTW, in the CBSD profile library you can find at least two profiles:* Kali Linux* ( cloud-Kali-2022-amd64)  and *Ubuntu Desktop* ( cloud-ubuntudesktop-amd64-22.04) with pre-configured XPRA/RDP, e.g.:

```
cbsd bcreate jname=vm1 vm_os_type=linux vm_os_profile=cloud-Kali-2022-amd64 vm_ram=2g vm_cpus=1 imgsize=12g ci_ip4_addr=172.16.0.88 ci_gw4=172.16.0.1 runasap=1
```
Once you see the pings you will be able to connect to guest via  RDP:


```
xfreerdp +clipboard +fonts /rfx /size:1200x960 /u:kali /p:kali /v:172.16.0.88
```


----------



## kpedersen (Jun 15, 2022)

OK, for client side scaling, luckily that won't be affected by the fairly bare-bones VNC server provided by bhve.

When connected in the tigervnc-viewer, you should be able to press F8 and find the scale option. If I recall, 1 is default but 2 will double it, etc.


----------

