VNC Server
|
Version 0.17 is now available, which should fix accented characters and various other character translation issues. http://www.phlamethrower.co.uk/riscos/vnc_serv.php
Hmm, there’s definitely something funny going on with non-UK keyboard layouts. Using Avalanche with a French keyboard layout, those two keys work fine when typing into Edit, but when typing into StrongED shift+à doesn’t work (no text appears at all). Some debug logs show that the server receives the following:
According to the VNC spec the server should generate fake Shift up/down events as necessary to make sure that the system interprets characters correctly. But for printable characters vncserver inserts them directly into the keyboard buffer (the OS just sees “shift down”, “0 in keyboard buffer”, “shift up”). Which I guess means that StrongED sometimes ignores or re-interprets what’s in the keyboard buffer? |
|
StrongKeys and DeepKeys somewhere in the mix. |
|
There is just a tiny little snag with vncserver 0.17 on the Titanium as seen by the Screen Sharing app on the iMac 10.12.3, it is good with 0.14. Screen size and colour depth do not matter. Thanks for the upgrade, most useful. |
|
I saw that in previous version if compression used with mac built in sharing |
|
Interesting. Can you provide the output of *vncserv_status when the mac is connected? Also, try experimenting with the vncserv_zlib_level setting (which controls use of the ZRLE & ZLib encodings). The blocks of corruption look to be the right size for ZRLE/ZLib tiles, and support for those encodings is a relatively new feature (version 0.16). -1 will disable both, 0 will enable ZRLE (but with no zlib compression), and 1 or above will enable both ZRLE + ZLib with the indicated compression level (which will usually hurt performance more than it helps if you’re on a LAN). |
|
Nope, StrongED still uses the KeyExtend module which is a bit quirky so it may be playing a part in this but I can’t say for sure without doing some testing. |
|
With *vncserv_status Configuration: Port: 5900 Password: Yes Mouse support: Enabled Keyboard support: Enabled Swap Menu/Adjust: No Nudge mouse: Yes Preferred cursor encoding: Auto Clipboard support: Yes Use filter manager: No Stretch key presses: Yes zlib compression level: 0 OS state: Mouse: 759,0 buttons 0 BBox: -32768,-32768 32767,32767 Framebuffer at 33945000 Width 1680 height 1050 BPP 32 BPL 6720 xeig 1 yeig 1 Screen redirected to sprite: No Wimp task status: Running, handle 7980397c IP server running: Yes VNC status: Connected to 192.168.1.11:55124 Protocol state: Running Screen mode valid: Yes TX buffer: 0/163840 hwm 159746 ZRLE encoder created: Yes zlib encoder created: No Recognised encodings supported by client: ZRLE zlib DesktopSize Cursor Server pixel format: 32 BPP true colour (24 used bits, little-endian) Red max 255 shift 16 Green max 255 shift 8 Blue max 255 shift 0 Client pixel format: 32 BPP true colour (32 used bits, little-endian) Red max 255 shift 16 Green max 255 shift 8 Blue max 255 shift 0 Server screen mode: Framebuffer at 2052ffb4 Width 1680 height 1050 BPP 32 BPL 6720 xeig 1 yeig 1 * |
|
I had the same screen issue as David, when using the built in VNC viewer on OSX. Using Real VNC Viewer, the display was fine. |
|
Thanks Jeffrey. The noew version works perfectly here. I confirm that there are less artefacts with compression off (-1). I hope now for a more stable version of Avalanche, and a more modern version of RDPClient :) |
|
Nota: there also another bug with StrongED. For example with Shift+& or é or ". Should be 1, 2 and 3. Sometimes its works, sometimes it does not. |
|
What I’ve found is that hitting the same key twice doesn’t work but if the second key is different then the second does work. Shift-à, Shift-à and nothing appears, Shift-à, Shift-é and 2 is output. |
|
Exact. The same here. |
|
New version available which fixes a bug in the RAM transfer protocol handling (affecting clipboard integration), and support for screen modes where the scanlines aren’t tightly packed in memory (i.e. For the mac screen sharing issues, I couldn’t see anything obviously wrong in the vncserv_status output that David gave, so for now I think the best course of action is to just keep the ZLib/ZRLE protocols disabled when using that client. |
|
Many thanks for your continued development of this, Jeffrey. With more and more RISC OS machines available, but limited monitor space, it is increasingly becoming invaluable. |
|
It’s probably worth noting here that Steve Potts has updated his excellent VNCSvrFE front end software for Jeffrey’s VNC Server module. The new version adds quite a few new features that take on board many of Jeffrey’s improvements, plus a couple of other tweaks. It also now displays the VNC Server module version in the Info box. It makes using VNC Server very easy to configure, and is an excellent addition to Jeffrey’s module. Great stuff, Steve. |
|
I want to thank Jeffrey and Steve. I tried VNC some time ago and found it more-or-less unuseable, but the new version is not far short of using the native machine, at least for my purposes. I have one problem, though. Icons do not appear while being dragged, eg: file icons. Windows are fine. I can imaging how difficult this might be to program and with care with the pointer it is not that limiting, but it would be nice to have. |
|
That’s a limitation of the filter manager – it only notifies of window redraw events, and not things like drag boxes or the caret. The caret I’ve hacked in support for manually, but drag events are a bit trickier. The proper solution would probably be to extend the OS so that they can be tracked. If it’s bothering you, you can bypass the problem by disabling use of the filter manager ( |
|
New version available which fixes handling of special characters on machines with no keyboard connected (using pretty much the same code as Colin’s fix from here |
|
I continue to use VNC Server very happily – thanks Jeffrey – but now I have conceived a new idea. I have been reading how to configure Linux and Windows machines to pass VNC over a USB link. This seems to be possible with the utilities available in their OSs, but I would be pleasantly surprised to be told that this can also be done with RISC OS. Otherwise, what would need to be done for this to happen? The aim would be to connect a Pi Zero directly to a Windows machine as a slave running native RO. |
|
So you plug the Pi into the Windows machine (with the Pi acting as a USB device), and the Windows machine is then able to connect to a VNC server running on the Pi? That’ll be reliant on some device-mode capable USB drivers (which I suspect mostly exists in the Linux-derived bits of DWCDriver, but we have no way of exposing that functionality as part of the Castle USB stack), and emulation of some kind of USB ethernet device (for which there are a few generic protocols available. We already have one half of one side of the coin for this, in that EtherUSB contains partial support for talking to CDC devices. For testing purposes we’d probably want to finish that support, and then implement the CDC device emulation side for use with the device-mode USB driver). At one point I did have basic device-mode functionality working in MUSBDriver (enough for you to plug a BeagleBoard into a host machine and have it identify itself as a “RISC OS” device, if you were lucky), so that’s another avenue through which device-mode USB could be supported. |
|
Would be nice for clusters… |
|
Steve, I’d love that functionality too. There’s a special little bit of kit that has an overlay board which has contacts for the USB test pads on the Zero, and has a standard USB connector. It essentially makes the Pi Zero into an oversized USB dongle. Being able to use something like that, and VNC over USB in RO would solve a big problem I have. I actually tried similar with Linux but for reasons I couldn’t work out I was having all sorts of network communication issues between the two. My idea was to use the RO linux port running in Raspbian to do that. |
|
If the RISC OS device could be exposed as a serial console over USB, couldn’t you then use some kind of IP-over-serial solution to establish a network connection? Assuming that there are SLIP or PPP solutions that run on RISC OS 5. |
|
PPP is there (used e.g. for TMs ComCentre mobile solution), SLIP I don’t think so. Was there ever an Acorn SLIPdriver? I only remember the one from KA9Q with its own stack and the one from the Freenet stack by Tom Hughes. |
|
If I understood correctly, that is the method that I was originally looking at for other machines. As for going further myself, that is way beyond my paygrade. |