MouseTweaks

Differences between revisions 18 and 19
Revision 18 as of 2006-12-02 17:46:36
Size: 7584
Editor: vodsl-9985
Comment:
Revision 19 as of 2006-12-05 22:27:22
Size: 9072
Editor: vodsl-8475
Comment:
Deletions are marked like this. Additions are marked like this.
Line 89: Line 89:
 * Dwell clicking would belong to the accessibility features of the mouse.
 * See below for a sample configuration dialogue for dwell clicking:
 inline:DwellConfigDialog.png
Line 90: Line 93:
 * Dwell clicking would belong to the accessibility features of the mouse.
 * A checkbox in the mouse preferences will allow the user to activate dwell clicking.
 * Below is a sample tab about dwelling that could be added to the Mouse Preferences and/or to the Accessibility Preferences:
 * The checkbox 'Enable Dwelling' is used to enable the dwell clicking the account of the current user.
 * The checkbox 'Automatically enable after login' will automatically enable dwell clicking for that user after he logs in.
 * The slider 'Dwell tolerance' makes the system ignore movements of less than the set number of pixels when dwelling. In other words: if the pointer moves for less than the specified number of pixels, the movement is ignored. (Still to specify, in reference to what coordinates the pixels are counted.)
 * The user can choose between the ways of doing the dwell clicking (radio buttons in the configuration dialogue):

  1. Dwell clicking with the help of a window to choose between left click, right click, double click and drag&drop. (Dwelling with ClickType Window)
Line 94: Line 100:
  inline:MousePrefDwelling.png
 * When dwelling is enabled, the 'Select Click Type' window appears on screen. When the user stops moving the mouse for the wait time specified, the computer automatically performs the click type selected in the 'Select Click Type' window.
 * When the checkbox 'Automatically switch back to single click mode' is activated, the Single Click button in the 'Select Click Type' window is automatically selected after another click type has been performed; if it is not activated, the current click type remains activated until the user selects another click type.
 * The dwelling tolerance slider makes the dwell clicking function ignore movements of the pointer that are smaller than the specified amount of pixel.
 * '''Remark:''' I thought about another method of dwelling: when the pointer does not move, the shape of the pointer cycles between 2 states for example every 2 seconds. When the pointer has its second shape, if you move the mouse in one direction it makes a click, in another direction it makes another click type,... When the cursor has his first shape, you can move the mouse without having the system do a click.
   * When dwelling is enabled, and this way of dwelling is selected, the 'Select Click Type' window appears on screen.
   * The system clicks on the pointers location, if the pointer stays without moving on that location for the time set in 'Time to wait before click' (let us call this time the dwell delay)
   * The type of click which is performed corresponds to the click type that is set in the 'Select Click Type' Window.
   * To change click type, the user has to move the pointer over the button that corresponds to the click type that he wants, and wait for the dwell delay to elapse without moving. The system then performs a left click on that button, regardless of what click type is currently set. (This applies only to the 'Select Click Type' window.)
   * If the checkbox 'Automatically switch back to single click mode' is activated, the dwell clicking function automatically reenables the left click after another click type has been performed. If this checkbox is not activated, the current click type does only change when the user selects another click type in the 'Select Click Type' window.
   * The 'Drag And Drop' click type works like this: the user moves the pointer over the item to drag; after the dwell delay has elapsed, the item is grabbed (the user sees it because the item gets selected or we could make the pointer change its shape); after the item is grabbed, the user has a time t1 corresponding to the dwell delay to begin movement; the item is dragged as long as the pointer does not stop moving for a time t2 corresponding to the dwell delay. We have set for simplicity reasons t1 = t2 = dwell delay. In order to be able to fine tune the drag and drop, we could add 2 more sliders in this part the the configuration dialogue; the first to set t1 and the second to set t2.


  2. Dwell clicking where the type of click is determined by time and a gesture
Line 129: Line 140:
  1. If yes, how to enable it? In this case, I think this particular question belongs to the specification of making the login screen accessible: https://blueprints.launchpad.net/distros/ubuntu/+spec/access-gdm   1. If yes, how to enable left click&hold to open the contextual menu at login time? In this case, I think this particular question belongs to the specification of making the login screen accessible: https://blueprints.launchpad.net/distros/ubuntu/+spec/access-gdm

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

Many people have difficulty using a normal mouse or use special mouse-emulating hardware. Their experience could be made much better with some simple software tweaks.

MouseTweak #1:

left click&hold to open the contextual menu (i.e.: the menu that the user gets with the right click)

MouseTweak #2:

dwell clicking: i.e.: make a left click, a left double click, a right click and a left click&drag without pressing any mousebutton.

MouseTweak #3:

mouse gestures

MouseTweak #4:

Rationale

MouseTweak #1:

There are users that can only operate one mousebutton. These users have to find an alternative way to make the contextual menu appear. If they could make the contextual menu appear with a click&hold of their unique mousebutton (usually being the left mousebutton), they would have a direct and efficient way to access the contextual menu.

MouseTweak #2:

Users that can only move the pointer, but that are not able to press on a button cannot do anything on a computer if they don't have a way to do clicks. Dwell clicking will give them a way to do the different clicks without having to press any button.

MouseTweak #3:

MouseTweak #4:

Use cases

MouseTweak #1:

  • James is a disabled user that is only able to use the left mouse button. Every time he wants to open the contextual menu (which is usually opened with a right click), he has to do it in an indirect way: for example by selecting switch button in onboard. If the contextual menu appeared with a left click&hold, he would have an efficient and direct way to do it.

  • Cindy uses a tablet pc, that she controls mainly with a pen. The left click&hold would enable her to open the contextual menu with the pen.

  • It could also be useful on information terminals operated by touchscreens.
  • People running Ubuntu on an Apple PowerMac (PPC) traditionally have a mouse with only one button (I don't know if it has changed with the latest models). They will probably welcome a direct method to open the contextual menu.

MouseTweak #2:

  • Michael is a disabled user that uses an eyetracking device to move the pointer. However the device does not provide a way to do the clicks. Combined with dwell clicking, he gets the same functionality of a normal 2 button mouse.
  • Mary uses a headpointer to move the mouse on the screen. Her headpointer comes with a dwell clicking software that only runs on Windows. She needs an equivalent software that would allow her to use her headpointer also on Ubuntu.

MouseTweak #3:

MouseTweak #4:

Scope

MouseTweak #1:

The left click&hold to open the contextual menu should work in every application that offers a contextual menu.

MouseTweak #2:

The dwelling functionality has to work systemwide: i.e.: everywhere on the screen and in all applications.

MouseTweak #3:

MouseTweak #4:

Design

MouseTweak #1:

  • In order to avoid conflicts with the click&drag, the system could proceed like this: if after the mousedown, the mouse does not move for n milliseconds (for example specified with a slider), open the contextual menu; if the mouse moves before n time is elapsed, go for a drag&drop.

  • Of course, the current n has to be greater than the current double-click time; for simplicity reason, one could also generally make: minimum(n) > maximum (double-click time), as I did in my example tab below.

  • The left click&hold for the contextual menu should be optional. A check box in the mouse control panel and/or in the accessibility control panel should allow the user to enable and disable the function.

  • Below you can see a sample preference window built with 'Glade Interface Builder' that would offer a left click&hold; it is simply the 'Buttons tab' of the Mouse Preferences shipped with Ubuntu Edgy to which I have added a frame for the left click&hold.

MouseTweak #2:

  • Dwell clicking would belong to the accessibility features of the mouse.
  • See below for a sample configuration dialogue for dwell clicking:

    inline:DwellConfigDialog.png

  • The checkbox 'Enable Dwelling' is used to enable the dwell clicking the account of the current user.
  • The checkbox 'Automatically enable after login' will automatically enable dwell clicking for that user after he logs in.
  • The slider 'Dwell tolerance' makes the system ignore movements of less than the set number of pixels when dwelling. In other words: if the pointer moves for less than the specified number of pixels, the movement is ignored. (Still to specify, in reference to what coordinates the pixels are counted.)
  • The user can choose between the ways of doing the dwell clicking (radio buttons in the configuration dialogue):
    1. Dwell clicking with the help of a window to choose between left click, right click, double click and drag&drop. (Dwelling with ClickType Window) inline:DwellingClickTypeSelectionWindow.png

      • When dwelling is enabled, and this way of dwelling is selected, the 'Select Click Type' window appears on screen.
      • The system clicks on the pointers location, if the pointer stays without moving on that location for the time set in 'Time to wait before click' (let us call this time the dwell delay)
      • The type of click which is performed corresponds to the click type that is set in the 'Select Click Type' Window.
      • To change click type, the user has to move the pointer over the button that corresponds to the click type that he wants, and wait for the dwell delay to elapse without moving. The system then performs a left click on that button, regardless of what click type is currently set. (This applies only to the 'Select Click Type' window.)
      • If the checkbox 'Automatically switch back to single click mode' is activated, the dwell clicking function automatically reenables the left click after another click type has been performed. If this checkbox is not activated, the current click type does only change when the user selects another click type in the 'Select Click Type' window.
      • The 'Drag And Drop' click type works like this: the user moves the pointer over the item to drag; after the dwell delay has elapsed, the item is grabbed (the user sees it because the item gets selected or we could make the pointer change its shape); after the item is grabbed, the user has a time t1 corresponding to the dwell delay to begin movement; the item is dragged as long as the pointer does not stop moving for a time t2 corresponding to the dwell delay. We have set for simplicity reasons t1 = t2 = dwell delay. In order to be able to fine tune the drag and drop, we could add 2 more sliders in this part the the configuration dialogue; the first to set t1 and the second to set t2.
    2. Dwell clicking where the type of click is determined by time and a gesture

MouseTweak #3:

MouseTweak #4:

Implementation

MouseTweak #1:

Code

MouseTweak #2:

Code

MouseTweak #3:

Code

MouseTweak #4:

Code

Unresolved issues

MouseTweak #1:

  • Is the contextual menu needed at the login screen?
    1. If yes, how to enable left click&hold to open the contextual menu at login time? In this case, I think this particular question belongs to the specification of making the login screen accessible: https://blueprints.launchpad.net/distros/ubuntu/+spec/access-gdm

    2. If no, should it not be working at login screen for consistency reason? Or does in this case the fact prevail that a left click&hold is not a standard gui gesture and therefore disable it at the login screen.

MouseTweak #2:

  • At the login screen, there should also be a way to activate dwell clicking; I think again that this question is better suited in the specification about an accessible login screen: https://blueprints.launchpad.net/distros/ubuntu/+spec/access-gdm

  • What is better: a checkbox to automatically enable dwelling after login or making the account keep its activated/deactivated state across logins.
  • Maybe, the dwelling tolerance should be factorized out of the dwelling function and turn it into a systemwide movement 'rest' tolerance.

MouseTweak #3:

MouseTweak #4:

BoF agenda and discussion

MouseTweak #1:

MouseTweak #2:

MouseTweak #3:

MouseTweak #4:


CategorySpec

Accessibility/Specs/MouseTweaks (last edited 2008-08-06 16:24:12 by localhost)