Short: P96 Multi-Monitor Mouse Movement Author: thomas.richter@alumni.tu-berlin.de (Thomas Richter) Uploader: thomas ricther alumni tu-berlin de (Thomas Richter) Type: util/cdity Version: 42.5 Requires: P96 >= 3.1.0 Architecture: m68k-amigaos >= 3.1 P96ScreenCx enables free multi-monitor mouse travel on P96 setups. Thus, once properly configured, the mouse pointer can travel horizontally and vertically between adjacent monitors. For example, the output of two graphic cards are displayed on two monitors side by side, the mouse enters the right monitor when leaving the left monitor on the right side, and vice versa. While intuition does (not yet?) allow free movements between monitors, this commodity enables the mouse monitor to travel freely between monitors. ---------------------------------------------------------------------- New in release 42.5: - P96ScreenCx no longer switches screens while any of the mouse buttons are pressed. This avoids trouble in case a menu is open, or you drag a window. ---------------------------------------------------------------------- New in release 42.4: - P96ScreenCx has to create synthetic mouse movement events to position the mouse at the adjancent edge of the target screen. The mechanism by which P96ScreenCx created these events was overly complicated, and also caused side effects with other commodities. This release uses a much simpler mechanism through the commodities.library that improves compatibility with other programs. - Mouse pointer movement through Amiga/CBM+cursor keys did not trigger screen flipping, i.e. the mouse pointer could not leave the current screen if moved by cursor keys. This has been fixed, P96ScreenCx now also recognizes pointer movements through cursor keys. ---------------------------------------------------------------------- New in release 42.3: - One of the direction-indicator bits in the internal movement analysis was broken and could have placed the mouse pointer incorrectly on vertical movements. - A new tooltype / command line argument has been added. ACTIVATE_SCREEN attempts to record the last active window on a screen switched away from, and then attempts to restore the input focus when switching back to the screen. However, due to the intuition internal event handling, this tooltype may have some impact on autoscroll screens such that the screen may scroll away while the window activation is still in process. Thus, mouse pointer re-position may be deferred if if this enabled. ---------------------------------------------------------------------- New in release 42.2: - The DONOTWAIT tooltype apparently confused the tool when started from the workbench as it confused it with the monitor search path. This was fixed. - The default diagnostic output if run from the workbench goes now into a console window. - The commodity warns now if no switchable boards are found or all boards are in the display chain. ---------------------------------------------------------------------- New in release 42.1: - This is the first Aminet release. ---------------------------------------------------------------------- Installation: - Copy P96ScreenCx to the WBStartup folder (on Os 3.9 or above) - or RUN it in the Startup-Sequence - Edit the monitor tooltypes to match the monitor arrangement, see below. P96ScreenCx does not have a graphical user interface. It reads its configuration from its own tool types or command line interface, and the tooltypes of the P96 monitors. For configure the placement of the physical monitors, one of the following new tooltypes can be added to the existing monitor icons: LEFT_OF= RIGHT_OF= ABOVE= BELOW= is the BOARDTYPE of another P96 monitor, or the keyword "Native" to configure placement relative to the native Amiga output. For example, consider the following 3-monitor setup: +-----------+ +----------+ +-----------+ | | | | | | | GBA-PII++ | | Native | | CVision3D | | | | | | | +-----------+ +----------+ +-----------+ Then the tooltypes of the GBA-PII++ monitor icon in DEVS:Monitors includes the following new tooltype: LEFT_OF=Native and the tool type of the CVision3D monitor icon includes the new tooltype: RIGHT_OF=Native The following setup +-----------+ +----------+ +-----------+ | | | | | | | Native | | GBA-PII++| | CVision3D | | | | | | | +-----------+ +----------+ +-----------+ would be represented by: RIGHT_OF=Native in the GBA-PII++ icon and RIGHT_OF=GBA-PII++ in the CVision3D icon -or- LEFT_OF=CVision3D in the GBA-PII++ icon. There is no need to "double link" the CVIsion3D monitor with the GBA-PII++ monitor icon, i.e. only one of the two latter tool types need to be added: One tooltype in the GBA-PII++ icon, one tooltype in the CVision3D monitor icon, or two tooltypes in the GBA-PII++ icon and none in the CVision3D monitor icon. ---------------------------------------------------------------------- P96 drivers only participate in multi-monitor switching if their DISPLAYCHAIN tooltype is set to NO. Otherwise, they are assumed to be displayed on the same monitor as the native Amiga video, and thus do not receive their own set of tool types. Placement relative to "shared" P96 cards in the display chain is indicated by the "Native" monitor. Thus, the following setup +-----------+ +-----------+ | GBA-PII++ | | | | Native | | CVision3D | | | | | +-----------+ +-----------+ with GBA-PII++ and Amiga output sharing the same screen is indicated by a single tooltype in the CVision3D monitor icon, namely RIGHT_OF=Native Tooltypes of the GBA-PII++ monitor are not used. ---------------------------------------------------------------------- Quirks: If you have a GBA-PII++ board, ensure that the P96 component is named "GBA-PII++" WITH A DASH IN THE NAME. That is, LIBS:Picasso96 should contain a file named GBA-PII++.card If necessary, rename the file accordingly (with the dash) and update the BOARDNAME tooltype of its monitor icon to BOARDNAME=GBA-PII++ again with a dash. This is because the card driver identifies itself as GBA-PII++ with dash. Unfortunately, some installations may have named card drive and BOARDNAME incorrectly. ---------------------------------------------------------------------- P96ScreenCx command line arguments: P96ScreenCx MONITORS/K,ACTIVATE_SCREEN/S,CX_PRIORITY/N MONITORS The directory name where the P96 monitor icons are kept. This should typically be DEVS:Monitors, but any other directory can be configured as well. CX_PRIORITY The priority of the P96ScreenCx "commodity" component relative to all other commodities. The default is 0. This is typically not required. ACTIVATE_SCREEN If given as command line argument or as tool type, the commodity attempts to restore the input focus on screens being switched to. May defer window pointer repositioning on autoscroll screens, though. The above command line arguments are also recognized as ToolTypes of the P96ScreenCx icon, if run from the workbench. In addition, the following ToolType is also recognized: WINDOW= This is a path to a CON: window to which P96ScreenCx writes its diagnostic output, if any. By default, the output goes to the console if run from the shell, or to a newly opened console window if run from the workbench. ---------------------------------------------------------------------- The THOR-Software Licence (v3, January 2nd 2021) This License applies to the computer programs known as the "P96ScreenCx". The "Program", below, refers to such program. The "Archive" refers to the package of distribution, as prepared by the author of the Program, Thomas Richter. Each licensee is addressed as "you". The Program and the data in the archive are freely distributable under the restrictions stated below, but are also Copyright (c) Thomas Richter. Distribution of the Program, the Archive and the data in the Archive by a commercial organization without written permission from the author to any third party is prohibited if any payment is made in connection with such distribution, whether directly (as in payment for a copy of the Program) or indirectly (as in payment for some service related to the Program, or payment for some product or service that includes a copy of the Program "without charge"; these are only examples, and not an exhaustive enumeration of prohibited activities). However, the following methods of distribution involving payment shall not in and of themselves be a violation of this restriction: (i) Distributing the Program on a physical data carrier (e.g. CD-ROM, DVD, USB-Stick, Disk...) provided that: a) the Archive is reproduced entirely and verbatim on such data carrier, including especially this licence agreement; b) the data carrier is made available to the public for a nominal fee only, i.e. for a fee that covers the costs of the data carrier, and shipment of the data carrier; c) a data carrier with the Program installed is made available to the author for free except for shipment costs, and d) provided further that all information on said data carrier is redistributable for non-commercial purposes without charge. Redistribution of a modified version of the Archive, the Program or the contents of the Archive is prohibited in any way, by any organization, regardless whether commercial or non-commercial. Everything must be kept together, in original and unmodified form. Limitations. THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS LICENCE BY USING OR REDISTRIBUTING THE PROGRAM. Thomas Richter ---------------------------------------------------------------------- Send ideas, improvements, bugreports (please as concrete as possible) to: Thomas Richter EMail: thomas.richter@alumni.tu-berlin.de ---------------------------------------------------------------------- Thomas Richter, January 2022.