MKShare anim
MKShare

(pronounced McShare)

A keyboard and mouse sharing utility for AmigaOS 4 computers.

Version 1.6 September 2016

If you have more than one OS4 machine and you like to use them at the same time this software enables you to operate all your machines with the same keyboard and mouse. As a bonus Clipboard sharing is thrown in for good luck!.

REQUIREMENTS

Two or more machines AmigaOS 4.0 or higher, (or one machine running AmigaOS 4.0 or higher and a machine running AmigaOS 3.x) connected to te same Local Area Network.

MANIFEST

In the archive you should find

DOCUMENTATION

The latest documentation can be found at www.broad.ology.org.uk/amiga/mkshare

INSTALLATION

Copy the archive to a destination of your choice, perhaps sys:utilities/mkshare, but it doesn't really matter. You will need a copy for each machine you want to connect. Run each of the two commands MKShareServer and MKShareClient once to prime the APPDIR: mechanism. Or replace APPDIR: with yout custom installation path in the examples below.

SETUP

You can connect up to 4 machines to 1 central server making 5 in all. The client machines each associate with an edge of the servers screen and when the mouse pointer moves off through that edge control is transfered to the appropriate client.

By default machines are added in the order RIGHT LEFT TOP BOTTOM as they connect, but this is not very useful, as machines will rarely boot in the same order every session. To this end the server (MKShareServer) loads a configuration file, which associates each client with an 'edge'. You do this by giving each client a distinct name. The name may be up to 8 characters long and must not have an spaces. You then add lines to the config file as follows:

LEFT X1000
RIGHT SAM440
TOP CYRUS
BOTTOM AONEXE

Any lines not matching this pattern are ignored. The edge names must be uppercase the names need not be but are case sensitive, so SAM is different to Sam.

In addition you may define the following options:

PRIORITY 

This is the commodities priority, usually this should be higher than any other commodity as you don't want actions occuring on the server when the focus is on the client.

PORT 

The default port is 35402, should this conflict with another program that you would like to use or should you wnat to alter it for security reasons you may set this port number here. Don't forget to specify it on your client command line if you choose a different port to the default.

BLANK 

Whether or not to blank the mouse on the screen without focus, usually you will want blanking on as it simply looks nicer if the mouse seems to move from monitor to monitor, but sometimes you might like to work with another pointer device (tablet perhaps?) and so you will want blanking off to enable you to see what you are doing!

UDP <1|0>

Use UDP for RAWMOUSE and RAWKEY events. TCP is the default. Sometimes there can be a short delay with TCP due to error checking in the protocol. Although this delay is quite small some people may be more aware of it than others. The UDP method avoids this delay but there is no error checking at present, so some events may be lost. Most of those will be simple be mouse movement events and so hardly notice, unless the client is running under high CPU load.

Once you edited your config save it as MKShare.config in the same directory as the server program MKShareServer.

*ON THE SERVER*

Add the following to your network startup.

RUN >NIL: APPDIR:MKShareServer >NIL: <NIL:

*ON THE CLIENTS*

Add the following to your network startup.

RUN >NIL: APPDIR:MKShareClient xxx.xxx.xxx.xxx[:xxxxx] <name> [ <retries> ]>NIL: <NIL:

Where xxx.xxx.xxx.xxx is the ip address of your server machine, optionaly followed by a custom port number and <name> is the name you gave the client machine in the config file described above.

The optional <retries> is the number of times the client will attempt to connect to the server before giving up. By default this is set to 20 and the client will retry every 2 seconds. Set this to a number that gives your server machine enough time to reboot. Or if you can set it to 0 and the client will retry forever.

Example client line:

RUN >NIL: APPDIR:MKShareClient 192.168.1.100:35402 SAM 100 >NIL: <NIL:

THis selects the ip to connect to (the servers ip to 192.168.1.100, the port number to 35402, the name to "SAM" and the number of retries to 100

CLIPBOARD SHARING

The clipboard is coppied to the client machine when the mouse moves across the edge of the screen and then back again when control returns to the server. Very large clipboard object will cause a pause as the control passes between machines, but I was happlily able to transfer 30Mb + of image between SketchBlock on one my X1000 and ImageFX on my SAM during testing with only a small (< 2 secs ) delay.

SCREEN LOCKING

Press CTRL LEFT ALT L to "lock" the mouse to the currently active client or the server if on the server display. This means the mouse will not move off the edge of the screen and transfer control to another client. This is particular useful when playing games like quake, where the mouse is used to control the player...

USING MKShareClient68k

This client is provided as free bonus. It currently lacks support for the mousewheel, mousewheel events will simply be ignored.

It should work on any 68k machine with a valid network setup, but has not been exhaustively tested. It will even work on WinUAE but will probably have to open the port (default 35402) in the Windows Firewall to get it to work properly.

TECHNICAL INFO

The server listens on port 35402. This was chosen fairly randomly, but I did a quick search and nothing obvious stood out as using that port. This can be configured in the server config file and the client command line options.

The protocol uses fairly simple commands, that directly map to the underlying input.device events. Currently events of type IECLASS_RAWMOUSE, IECLASS_MOUSEWHEEL and IECLASS_RAWKEY are shared. The server runs as a commodity but the client inserts the events directly into input devices stream so any software that uses an input handler will still work.

KNOWN ISSUES

A very slight stutter in the event stream can occur cause the mouse to stick slightly then jump, this should not be too frequent, other wise mouse and keyboard movement feel as smooth as a native mouse. Using UDP mode will work arround this.

This second one is not bug per seh, but it might catch you out, as the server runs at the highest possible priotity by default, most key strokes will be intercepted before any other commodities hotkeys, and the client will insert the events such that any hotkeys on the client machine will work as expected, *BUT* here's the gotcha, the reset handler on the server runs at a higher priority than the commodities so if you try to reset the client with CTRL LAMIGA RAMIGA you will reboot the server not the client!

LICENSE

A copy of this license should be found in the distribution and is included here for your information / amusement

This software is dragonware, if you break these licence terms a huge black dragon will materialise and burn all your amiga computers to cinders. Due to the nature dragon breath the resulting inferno may also burn down your house, roast your pet dog, and flambee the goldfish.

To avoid this awful fate please obey the following simple licensing terms.

In the following the terms "the software" refers to all files, binary and otherwise received in the MKShare packaged when purchased. Package may refer to an archive or some other means of distribution such as a floppy disk, CD, USB stick etc.

  1. You agree not to share this software with your mates. Do you really want them to have their computers blasted with dragon breath because they broke clause 2?

  2. You agree to only run this software if you acquire a copy from the author direct or from his officialy sanctioned distributors.

  3. You agree not share this software with your enemies, deliberatly tricking them into breaking clause 2 so they will get blasted with dragon breath is not considered chivalrous.

  4. You may make up to 5 copies of this software at a time for the purpose of controling 5 computers at one location only. If you have set of amigas at home and another set at work or your friends house, you should buy a second license.

  5. You understand that there is no warranty against damage to your computers, data, dog or goldfish as consequence of using this software, which is provided as is, in good faith.

  6. You may share config files in order to assist other users to setup their system.

  7. In case you don't believe in dragons you agree to honour the above terms simply because it's the right thing to do.

CONTACT

If you have any questions or require technical assistance, please contact the author at andy@broad.ology.org.uk

COPYRIGHT

This software is copyrighted by it's author Andy Broad (c) 2016 All rights reserved.

THANKS

Thanks to various people for helping me test this, including but probably not limited too Mike Brantley, Nick Clover, Paul Sadlik, Ken Wilde. Thanks to Olaf Barthel for some networking advice during development. Thanks to Massimo Tantignone for help debuging an error in the clipboard protocol that was tripping ClipViewer.