Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Mouse keys
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Feature of some graphical user interfaces that uses the keyboard as a pointing device}} '''Mouse keys''' is a feature of some [[graphical user interface]]s that uses the keyboard (especially [[numeric keypad]]) as a [[pointing device]] (usually replacing a [[Computer mouse|mouse]]). Its roots lie in the earliest days of [[visual editor]]s when line and column navigation was controlled with [[arrow keys]]. Today, mouse keys usually refers to the numeric keypad layout standardized with the introduction of the [[X Window System]] in 1984.<ref>[https://www.xfree86.org/current/XKBproto.pdf The X Keyboard Extension: Protocol Specification]</ref><ref>[https://www.xfree86.org/current/XKBlib.pdf The X Keyboard Extension: Library Specification]</ref> ==Layout== [[Image:X window system MouseKeys default numpad layout.svg|thumb|left|X window system MouseKeys default numpad layout]] {| class="wikitable" |- ! key ! action |- ! {{Key press|Num Lock}} | with {{Key press|[[Alt key|Alt]]|[[Shift key|Shift]]}} enable/disable MouseKeys |- ! {{Key press|8}} | cursor up |- ! {{Key press|2}} | cursor down |- ! {{Key press|6}} | cursor right |- ! {{Key press|4}} | cursor left |- ! {{Key press|7}} | cursor up and left |- ! {{Key press|9}} | cursor up and right |- ! {{Key press|3}} | cursor down and right |- ! {{Key press|1}} | cursor down and left |- ! {{Key press|/}} | [[X Window System core protocol#Mappings|select primary button]] |- ! {{Key press|*}} | [[X Window System core protocol#Mappings|select modifier button]] |- ! {{Key press|-}} | [[X Window System core protocol#Mappings|select alternate button]] |- ! {{Key press|5}} | [[Point and click|click selected button]] |- ! {{Key press|+}} | [[Double-click|double click selected button]] |- ! {{Key press|0}} | [[Drag and drop|depress selected button]] |- ! {{Key press|.}} | [[Drag and drop|release selected button]] |- ! {{Key press|Enter}} | [[enter key]] |} ==History== Historically, MouseKeys supported GUI programs when many [[Computer terminal#Graphical terminals|terminals]] had no dedicated [[pointing device]]. As pointing devices became ubiquitous, the use of mouse keys narrowed to situations where a pointing device was missing, unusable, or inconvenient. Such situations may arise from the following: *precision requirements (e.g., [[technical drawing]]) *[[accessibility|disabled user]] or ergonomics issues *environmental limits (e.g., vibration in car or plane) *broken/missing/unavailable equipment In 1987, Macintosh Operating System 4.2 Easy Access provided MouseKeys support to all applications. Easy access was (de)activated by clicking the {{Key press|shift}} key five times.{{citation needed|date=August 2024}} By the early 2020s, with [[Graphics tablet|graphics tablets]] becoming more common, a configuration change may be required before enabling MouseKeys.{{citation needed|date=August 2024}} ==MouseKeysAccel== [[Image:X Protocol MouseKeysAccel Control Trajectory.svg|thumb|left|X window system MouseKeysAccel trajectory]] {| class="wikitable" |- ! parameter ! meaning |- ! mk_delay | milliseconds between the initial key press and first repeated motion event |- ! mk_interval | milliseconds between repeated motion events |- ! mk_max_speed | steady speed (in action_delta units) applied each event |- ! mk_time_to_max | number of events (count) accelerating to steady speed |- ! mk_curve | ramp used to reach maximum pointer speed |} The [[X Window System]] MouseKeysAccel control applies action (usually cursor movement) repeatedly while a direction key {1,2,3,4,6,7,8,9} remains depressed.<ref>The X Keyboard Extension: Library Specification, Library Version 1.0/Document Revision 1.1, X Consortium Standard, X Version 11 / Release 6.4, Keyboard Controls, 10.5.2, [https://www.x.org/releases/X11R7.6/doc/libX11/specs/XKB/xkblib.html#the_mousekeysaccel_control The MouseKeysAccel Control]</ref> When the key is depressed, an ''action_delta'' is immediately applied. If the key remains depressed, longer than ''mk_delay'' milliseconds, some action is applied every ''mk_interval'' milliseconds until the key is released. If the key remains depressed, after more than ''mk_time_to_max'' actions have been applied, ''action_delta'' magnified ''mk_max_speed'' times, is applied every ''mk_interval'' milliseconds. The first ''mk_time_to_max'' actions increase smoothly according to an exponential. <math> \mathrm{action\_delta} \times \mathrm{mk\_max\_speed} \times \left( \frac{ i } { \mathrm{mk\_time\_to\_max} } \right) ^{\frac{ 1000 + \mathrm{mk\_curve} } { 1000 }} </math> {| class="wikitable" |- ! mk_curve ! result |- ! -1000 | uniform speed, linearly increasing action |- ! 0 | uniform acceleration, linearly increasing speed |- ! 1000 | uniform jerk, linearly increasing acceleration |} These five parameters are configurable.<ref>[http://library.gnome.org/users/gnome-access-guide/stable/dtconfig-mousekeys.html.en GNOME Documentation Library, Configuring a Keyboard-Based Mouse] {{webarchive|url=https://web.archive.org/web/20100612115254/http://library.gnome.org/users/gnome-access-guide/stable/dtconfig-mousekeys.html.en |date=2010-06-12 }}</ref> ==Enabling== Under the [[X Window System]]s [[X.Org Server|X.Org]] and [[XFree86]] used on [[Unix-like]] systems such as [[Linux]], [[Berkeley Software Distribution|BSD]], and [[IBM AIX|AIX]], MouseKeys (and MouseKeysAccel), when available, is nominally (de)activated by {{key press|Alt}}+{{key press|Shift}}+{{key press|Num Lock}}.<ref>The X Keyboard Extension: Library Specification, Library Version 1.0/Document Revision 1.1, X Consortium Standard, X Version 11 / Release 6.4, Keyboard Controls, 10.5.1, [https://www.x.org/releases/X11R7.6/doc/libX11/specs/XKB/xkblib.html#the_mousekeys_control The MouseKeys Control]</ref> MouseKeys without acceleration (also known as plot mode) is sometimes available with {{key press|Shift}}+{{key press|Num Lock}}. This is nominally independent of the [[window manager]] in use, but may be overridden, or even made unavailable by a [[configuration file]]. Before enabling, it may be necessary to change system configuration. The [https://www.x.org/archive/X11R7.7/doc/man/man1/setxkbmap.1.xhtml setxkbmap] utility can be used to change the configuration under Xorg:<ref>{{cite web |url=https://manpages.ubuntu.com/manpages/jammy/en/man7/xkeyboard-config.7.html |title=xkeyboard-config manual page |date=2012 |access-date=15 March 2015}}</ref> <code>setxkbmap -option keypad:pointerkeys</code> There are also various utilities to allow more precise control via user-configurable key bindings, such as [https://beesbuzz.biz/code/269-xmousekeys xmousekeys] and [https://www.semicomplete.com/projects/xdotool/ xdotool]. Since [[KDE Plasma 5|KDE 5]], MouseKeys is enabled and configured by systemsetting5<ref>[https://docs.kde.org/trunk5/en/systemsettings/systemsettings/general.html KDE.org, Using System Settings, System Settings Categories and Modules]</ref> (Hardware β Input Devices β Mouse β Keyboard Navigation) MouseKeys for [[Apple Inc.]]'s [[macOS]] is enabled and configured via the [[Accessibility]]<ref>[https://www.apple.com/accessibility/macosx/physical.html Apple.com, Mac OS X, Accessibility]</ref> ([apple] β System Preferences β Accessibility β Mouse & Trackpad). [[Microsoft]] changed the method of enabling between [[Windows 2000]],<ref>Microsoft.com, Accessibility Tutorials, Windows 2000, [http://www.microsoft.com/enable/training/windows2000/default.aspx Turning MouseKeys On and Off]</ref> [[Windows XP]] (added diagonal cursor movement and MouseKeysAccel),<ref>Microsoft.com, Accessibility Tutorials, Windows XP, [http://www.microsoft.com/enable/training/windowsxp/mousekeys.aspx MouseKeys: Control the Mouse Pointer Using the Numeric Keypad]</ref> and [[Windows Vista]].<ref>Microsoft.com, Accessibility Tutorials, Windows Vista, [http://www.microsoft.com/enable/training/windowsvista/mousekeys.aspx Control the mouse pointer with the keyboard (Mouse Keys)]</ref> ==Common usage== ===Replacing the mouse keys=== Replacing the mouse keys by the numeric keypad is as follows: Typing {{key press|5}} (with the numeric keypad) is equivalent to clicking the selected button. By default, the selected button is the primary button (nominally under [[index finger]], left button for most right-handed people and right button for most left-handed people). Typing {{key press|-}} (with the numeric keypad) selects the alternate button (nominally under [[ring finger]], right button for most right-handed people and left button for most left-handed people). Typing {{key press|*}} (with the numeric keypad) selects the modifier button (nominally under the [[middle finger]], middle button of a 3-button mouse). Typing {{key press|/}} (with the numeric keypad) selects the primary button. The selection remains in effect until a different button is selected. Assignment of left/middle/right button to primary/modifier/alternate, alternate/modifier/primary, or something else is settable by many means. Some mice have a switch, that swaps assignment of right and left keys. Many laptop bioses have a setting for mouse button assignment. Many window managers have a setting that permutes the assignment. Within the [[X Window System core protocol]], permutation can be applied by [https://www.x.org/archive/X11R7.7/doc/man/man1/xmodmap.1.xhtml xmodmap]. ===Moving the pointer by keys=== Other than {{key press|5}}, all other numeric keys from the numeric keypad are used to move the pointer on the screen. For example, {{key press|8}} will move the pointer upwards, while {{key press|1}} will move it diagonally downwards to the left. == See also == *{{annotated link|FilterKeys}} *{{annotated link|Sticky keys}} *{{annotated link|ToggleKeys}} *{{annotated link|Virtual keyboard}} ==References== {{Reflist}} {{DEFAULTSORT:Mouse Keys}} [[Category:Computer accessibility]] [[Category:Computing input devices]] [[Category:User interface techniques]] [[Category:Ergonomics]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Annotated link
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite web
(
edit
)
Template:Key press
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Webarchive
(
edit
)