Oberon/ETH Oberon/mouse



Mouse support

This page addresses hardware, configuration and functionality. A usage tutorial is also available. Summary The Oberon TUI and GUI can be controlled at best with a 3-button mouse as originally designed. However, many potential Oberon users have systems fitted with 2-button mice and are not ready to acquire another mouse in spite of the low cost. The 2-button support is particularly welcomed by users liking track balls.

Oberon can be controlled:


 * 1) with a 3-button mouse as originally designed. The mouse buttons are, by convention, named from left to right ML, MM and MR.
 * 2) with a 2-button mouse (ML, MR), substituting the missing MM button by the keyboard Ctrl-key (left and right).
 * 3) with a 2-button mouse (ML, MR), replacing a MM click by a succession of two ML clicks. The first ML click sets the caret as is usual. The second ML click, at the same mouse focus, is interpreted like a MM click. The second click may occur any time after setting the caret, on the condition that the mouse focus is not changed. Or else, the caret is moved. This basic rule should be easily mastered by expert 3-button mouse users. Of course, this device was introduced at the cost of some loss of comfort as is documented in the subsequent tables.

When Oberon is started, it is ready to be controlled with a 2-button mouse according to 3., irrespective of the mouse type. If the mouse has effectively 2 buttons, hitting the F8-key switches the mode of operation to 2. But, if on hitting the F8-key Oberon recognizes the signals of a 3-button mouse, it will switch the mode of operation to 1. The change of mode is made apparent by the tiny double-arrow icon at the left of the NamePlate of open documents in the GUI and by an equivalent icon in the menu bar of documents in the TUI.

With a 3-button mouse installed, one can practice the modes 2. and 3. by simply ignoring the middle button, though the button retains its functionality and a mixed mode operation is always possible.

Note 1: Track balls are usually fitted with 2 buttons and it is becoming increasingly difficult to acquire a 3-button track ball. A 4-button track ball represents a mediocre alternative since it requires to use the index finger for the ML and MM clicks, which makes a ML + MM interclick difficult to execute.

Note 2: "+" denotes an interclick, as in MR + ML meaning: press MR, hold it down and press ML before releasing both buttons. "&" denotes the concatenation of ML clicks.

Note 3: A right-handed mouse is assumed, but a left-handed mouse is also supported (see below). How to install a mouse driver Oberon can support a wide range of mouse types of all commonly used brands. The most widespread is the PS/2-compatible mouse, or bus mouse, attached to a 6-pin miniature DIN connector. All others mice connect to serial ports, either built-in or on expansion cards. Each machine is allowed up 4 serial ports. How to select the correct mouse driver As from this version, a mouse can easily be replaced by another of a different type and with a different interface. More than one mouse may be connected to a machine: the system can detect them and the user can select the best one. The next three commands have been designed specifically to let the system sort out mice, instead of letting the user question which parameter is appropriate, as is required for the third command. Previously, the mouse driver was chosen interactively during the installation.

A mouse driver for a different is installed in these ways: To to select the correct mouse driver at each system start do:

&#160;
 * at startup, set the config strings: MT, MP, MB (see below)
 * or execute one of the following command
 * or edit a line containing one of the following commands, in the System section of Oberon.Text.
 * ConfigInput.WatchMouse [ seconds | 5 ]


 * Lets the system watch a mouse movement for a number of seconds. If a mouse manifests itself, the mouse driver is configured to operate with it. If not, a system log message invites the user to configure the mouse driver. Moving a mouse may be enough to let the system recognize that mouse. Else, pressing Ctrl-Shift launches a SelectMouse command described next.
 * ConfigInput.SelectMouse


 * Lets the system attempt to configure a series of mice with different specifications on the available COM ports. The search ends when a mouse is effectively reacting as expected, else a PS/2-style mouse is configured as final default. A Mouse Configuration user interface is telling which mouse type the driver was configured successfully. By following the instructions in the menu it is still possible to choose a different mouse of a different type or attached to another port, or to accept the final choice which is displayed in the System log. This system service makes it easy to edit the correct command in Oberon.Text.
 * ConfigInput.Mouse mt [ mp [ mb ] ] ~


 * Sets up the mouse driver to operate a mouse of type mt, connected to the port mp, with mb buttons. One should preferably let the system select the correct mouse (cfr. previous command). Thoroughly choose a combination of parameters fitting the mouse characteristics, else mouse control will be lost. To remedy such a mishap, activate Scroll Lock to transfer the mouse control to the keyboard.


 * mt (respectively MT), the mouse type is:

           mt   Mouse description PS2  PS/2-style or built-in MSI  Microsoft IntelliMouse or new Logitech LM1  Logitech type 1 LM2  Logitech type 2 LM3  Logitech type 3 MS1  Mouse Systems type 1 MS2  Mouse Systems type 2 MS3  Mouse Systems type 3 MS4  Mouse Systems type 4 MSM  Microsoft 2-button


 * mp (respectively MP), the mouse port is 1 .. 4 for COM1 to COM4 for a mouse with a serial interface. 1 is the default value. Not applicable to a PS2 mouse; use 1.


 * mb (respectively MB), the number of buttons is:

           2   the keyboard Ctrl key emulates the MM buttom 3  the keyboard Ctrl key retains its usual function -2              -3   The default value. Switched to 3 as soon as a real MM button is found


 * Practical hint: Two such commands can be used in combination to switch mice on a laptop:


 * ConfigInput.SelectMouse PS2 1 -3 ~ to operate the stick (between G and H) and 2 buttons below the space bar


 * ConfigInput.SelectMouse LM1 2 -3 ~ to operate a serial 3-button mouse installed for working with Oberon


 * The mouse configuration selected at installation time is stored in the configuration data and reused when Oberon is started. This information can be modified on-the-fly at boot time or permanently stored. The mouse type is specified as MT= "", the port as MP="" and the number of buttons as MB="" and the values are chosen as described above.

Mouse commands in text (1) Delete the text stretch/gadget and paste what is then in a scratch pad back at the caret with Edit.Recall, TextDocs.Recall or with the [Recall] Iconizer in System3.Tool of the GUI.

(2) Implicit open - TUI: Edit Open / GUI: Desktops.OpenDoc

(3) The combination of Delete and Copy to corresponds to a cut-and-paste operation in other text editors but a pre-condition must hold true: no other selection may exist, else the selection will be copied. Mouse commands on the menu bar of a viewer (1) The menu bar can only be moved within the limits of adjacent menu bars or screen border.

(2) The document can be relocated in the adjacent track or in the same track above or below another document. If the menu bar is dragged on top of another, the document below it is closed.

Inside the NamePlate in the menu bar, mouse clicks have the following meaning: Mouse commands on the scroll bar of a viewer Mouse commands in the control area of a gadget Most visual gadgets are rectangular in shape, and for those gadgets the control area is a border a few pixels wide inside the edge of the gadget. Inside the gadget, but not in the control area, the gadget does whatever it is supposed to do (Buttons can be pushed, CheckBoxes checked, etc). In the control area, the gadget responds to the control mouse combinations listed in this table. How to replace the mouse by the keyboard The full functionality of the mouse can be transferred to the numeric pad of the keyboard by activating Scroll Lock. To return control to the mouse, deactivate Scroll Lock.
 * "5" - takes over the function of the MM key (activate)
 * "Ins" - takes over the function of the ML key (set caret)
 * "Del" - takes over the function of the MR key (select)
 * The 8 keys surrounding the "5" - move the mouse focus
 * The 8 keys surrounding the "5" - move the mouse focus

The Ctrl key is possibly also available as MM key.

How to define a left-handed mouse A left-handed mouse, with buttons arranged in reverse order [ MR, ML ], is defined by a config string "MM=digits" (Mouse Mapping). digits is exactly 3 digits, with each digit representing a mouse button: 0 = ML, 1 = MM, 2 = MR. It is convenient to use the Ctrl-key to the right of the keyboard in conjunction with a left-handed mouse.
 * MM = "012" - right-handed, assumed when Oberon is booted
 * MM = "210" - left-handed
 * MM = "021" - Logitech cordless mouse
 * MM = "021" - Logitech cordless mouse

How to install a USB mouse driver UsbMouse.Init


 * Installs a USB mouse driver. The USB system must be active already.

[Top]

''4 Aug 2001 - Copyright © 2001 ETH Zürich. All rights reserved.''

E-Mail: oberon at lists.inf.ethz.ch

Homepage: http://www.ethoberon.ethz.ch/