DeskWatcher
Thomas Milius (7848) 116 posts |
After around 4 months of work I am pleased to announce my first commercial application for RISC OS. DeskWatcher costs 58 EUR incl. MWst (16%) in the Federal Republic of Germany (until 31 Dec 2020 afterwards MWst is changing back to 19% again). I shall evaluate how to distribute the program in UK. However the coming Brexit isn’t making this evaluation easier. But it shouldn’t be a problem to distribute test versions of DeskWatcher which are free of charge and valid for 14 days. Of course I hope that the general Corona-situation improves and You can obtained detailed information about DeskWatcher from the homepage of my company http://www.stader-softwareentwicklung-gmbh.com.de/indexE.htm or the German version http://www.stader-softwareentwicklung-gmbh.com.de/index.htm section RISC OS Software There you can also download the manual. What is DeskWatcher doing? DeskWatcher is a screen sharing program. This means that with DeskWatcher you can show the content of the screen of a RISC OS based computer on another DeskWatcher tries to reduce the workload on the network as much as possible by capturing various central RISC OS screen output system calls on the server computer and passing them on to the client computer. There they are run inside a separate window which emulates a screen. This method has advantages but also disadvantages. As a disadvantage text can be only displayed in a correct way if the client computer has the same fonts as the server computer. Additionally, there are some programs which are writing directly into the screen memory bypassing RISC OS. Therefore, DeskWatcher offers the option to transfer parts of the screen content from server computer to the client computer too. You are able to configure this for every program and even every window separately. DeskWatcher can be used if accordingly installed and configured already from start of the server computer onwards during the so called PreWimp phase of DeskWatcher allows several clients to connect to the same server computer at the same time in parallel. Technically the number of connections is only In addition DeskWatcher offers the possibility to record the screen activities on the server computer in files and to play back them later in a nearly real time simulation in the DeskWatcher client program. Thanks to Herbert zur Nedden, Raik Fischer and Anton Reiser for helping me preparing and testing DeskWatcher. In case you have questions about the program please contact me by e-mail: Verwaltung@stader-softwareentwicklung-gmbh.com.de I wish you all a happy Corona free Advent season! Best Regards Thomas Milius |
Bryan (8467) 468 posts |
What would we use as a client? |
Raik (463) 2059 posts |
I hope I’m on the right way ;-) |
Thomas Milius (7848) 116 posts |
From the software view of sight: DeskWatcher consists of two programs: |
David Pitt (3386) 1248 posts |
Titanium as server and RPi400 as client. |
Raik (463) 2059 posts |
From an earlier test-version (no program icon)… Ti=Client + two server (ARMX6 and Pi-Tab). |
David J. Ruck (33) 1629 posts |
Well done. Back in the RISC OS 2 days, you could display the desktop from one computer on another by doing a *spool to to the serial port on one, and *print on the other. It worked quite well as the entire desktop was drawn through the VDU in those days, no tool sprites or pinboard. That stopped working with RISC OS 3, but I kept meaning to write something which synchronised the wimp sprite pool and plotted sprites, but then the early copies of VNC clients and servers came out. |
Julie Stamp (8365) 474 posts |
Neat! What protocol do you use? |
Steffen Huber (91) 1949 posts |
And more importantly: when does it get documented so we can write viewers/clients for all other OSes waiting to show RISC OS desktops? DeskWatcher could even be used to access incomplete RISC OS ports on new hardware – you just need to bring up USB for the HAL, so you can have networking and let DeskWatcher worry about the graphics output. It is always the sign of great new software if you immediately start to think about all the new possibilities it gives you – besides its original use case! |
Thomas Milius (7848) 116 posts |
As David Ruck wrote the concept is quite simple. Indeed VDU Output is claimed as base but RISC OS has become a bit more complex meanwhile (as David also wrote). So Sprite output is noted, Sprites are cached, JPEG output is noted, JPEG images are cached and so on. Else it won’t have taken around 4 months to implement it :-(. Into the VDU stream some Bytes with value 27 followed by my proprietary activies like Sprite or ColourTrans table transmission are inserted. And yes the single network connection requires a multiplexing of the data with various priorities. At client side this is simply split into its parts and written into a sprite which is displayed at the client. This is still working fine. I was deeply impressed during the writing how the parts of RISC OS graphics output are playing together. As this concept is very RISC OS based I don’t think it is easy to implement it on other OSes. |
David J. Ruck (33) 1629 posts |
Thomas, that’s also what I had intended to do with my Graphic TaskWindows, to expend it to supporting, sprite, draw and font plotting, but I never got around to that either. It probably would not be much effort for you to put make your code support Graphic TaskWindows with the extra facilities. The Task Window module provides the basic VDU stream from the task, but you would need to put Wimp filters around the task in order to capture sprite/draw/font calls and interleave those in to your output stream. |
Thomas Milius (7848) 116 posts |
I am still using GraphTask occasionally. It is a fine program. I never thought about expending DeskWatcher into this direction. That with the Wimp filters should not be the problem. I am already using them to take copies of screen parts in case that the OS is bypassed by a program. But I fear until now there are no programs supporting this concept. Is your intention to allow writing of small nice simple applications e.g. by using BASIC with extended graphics properties so that you don’t have to worry about Wimp Polling etc.? |
Thomas Milius (7848) 116 posts |
DeskWatcher can be seen as a kind of API call transfer program limited to some graphics APIs. DeskWatcher has no encryption in the moment. Client side would be not the problem due to AcornSSL module, but there is no pendant at server side. I hope to be able to work on this area during the next months. In the moment the only way of encryption is to use VPN routers. On the other side if you are discussing a problem how to realize a certain calculation in FireWorkz with a friend using DeskWatcher and the NSA gets aware of it is this offering any groundbreaking insights to NSA? Except perhaps what all can be done using FireWorkz ;-) It is clear that transmissions of passwords etc. should be avoided. |
Steve Pampling (1551) 8155 posts |
I’ve just been reading a little of the manual. and this stands out: A client that gained control of keyboard and mouse can release this only by pressing an arbitrarily configurable combination of up to four keys at the same time and releasing these keys afterwards. Default is only key and this is F1. Please take into account that there are programs evaluating key F1 so that a press of this key has unwanted consequences in case that one of the respective programs gained the input focus on the server. Furthermore, you can’t use the key any longer in its usual function. I would recommend the use of a key other than F1 as it is widely used for another function.
Users transferring from Windows may also be familiar with the use of F1 in the same way. F2 is already in desktop use, F3 is a habitual Save for RO users, F4 is Find, F5 is refresh (Windows, Linux, QuickFiler, Select, and my modified Filer) F6 – F9 seem to have no commonality across platforms or in RO variants and are at most allocated to infrequently used functions that may not justify a shortcut anyway. |
Stuart Swales (1481) 351 posts |
Perhaps Ctrl-Shift-F1 would be a better default? I don’t recall seeing anything use that. |
Steve Pampling (1551) 8155 posts |
It’s possible, but if you have the logical Shift-F1 for Info it puts a Help & Information context to the overall use of F1. Guess what Select and QFiler use for “Info” and where I’m doing the same? Yup: Sh-F1 I think Thomas wants a nice distinct key – hence me pointing out the low use levels on F6 to F9 I suppose the Alt-Fx keys would be ideal… if the keyboard handlers didn’t totally abuse that setup. |
Steve Fryatt (216) 2103 posts |
F8 is Undo; F9 is Redo. I’d suggest both of those are out. F6 has some Style Guide definition, IIRC — it might be Sort. F7 might be an option. Or, is F11 widely used? |
Thomas Milius (7848) 116 posts |
I have no problem to change the default. In fact it can be easily changed inside one of the configuration files. |
Steve Pampling (1551) 8155 posts |
True – In applications, I hadn’t considered that
Desktop filer layout in Select (both F6 and F7 and ctl, sh variants) but I’m not aware of any other
The only reason I avoided F11 was proximity to F12, with a slight nod to the lack of F11 and F12 on certain mini keyboards. Although Select does use F10 and F11, the latter for setting work directory. |
John WILLIAMS (8368) 493 posts |
Isn’t that “Insert blank line” in Fireworkz? |
John WILLIAMS (8368) 493 posts |
Isn’t that “Insert blank line” in Fireworkz? Sorry – deceived by hourglass – PLEASE DELETE FOREVER! |
Bryan (8467) 468 posts |
Would the Alt Gr key (and mouse menu click?) do the job – as it does in Avalanche |
Steve Pampling (1551) 8155 posts |
I can understand the issue with lack of spare keys plain or in combination. The surprising thing is the number of key combinations that various applications respond to, even when they don’t have focus (e.g. strongED)
That was why I was suggesting that you were looking for “a distinct key” because, as you say, it becomes more complicated the more simultaneous keys are required. |
Steve Pampling (1551) 8155 posts |
Both Alt-keys are modifiers and, unless given special treatment, don’t generate a keypress event as I recall. |
Bryan (8467) 468 posts |
Perhaps just use Avalanche and VNCserver then? Or have I missed something fundamental? |