Mobility
6334
Comment:
|
← Revision 15 as of 2008-08-06 17:00:48 ⇥
6120
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Window Manager Independent Acessibility for Mobility Impaired Disabilities = | = Acessibility Information for the Mobility Impaired = A quick guide to window manager independent and command line accessibility in Ubuntu for people who have difficulty using the standard keyboard and mouse devices. |
Line 4: | Line 6: |
About me, the author: My profession is software developer and I am a person with mobility impaired disability. About 1,5 years ago, I changed from Windows to Linux. As a result of my disability, I needed special settings for my keyboard and mouse/trackball. Without the linux experience of a friend, it would have been hardly possible to configure these settings. | About me, the author: My profession is software developer and I am a person with mobility impaired disability. About 1,5 years ago, I switched from Windows to Linux. As a result of my disability, I needed special settings for my keyboard and mouse/trackball. Without the linux experience of a friend, it would have been hardly possible to configure these settings. |
Line 8: | Line 10: |
== stickykey on the console == | == Stickykey on the console == |
Line 11: | Line 13: |
'''1. Step:''' Create a file eg. {{{~/.loadkeys}}} with the following content (maybe, you have to adjust 'keymaps'!!): | '''1. Step:''' Create a file eg. {{{~/.loadkeys}}} with the following content: |
Line 14: | Line 16: |
keycode 29 = SCtrl keycode 42 = SShift |
|
Line 15: | Line 19: |
keycode 56 = SAlt | |
Line 16: | Line 21: |
keycode 100 = SAlt | keycode 100 = SAltGr |
Line 18: | Line 23: |
'''2. Step:''' Call {{{loadkeys /home/thilo/.loadkeys}}}. | '''2. Step:''' Call {{{loadkeys /home/thilo/.loadkeys}}}. Hint: Can only be done by root!!! |
Line 20: | Line 25: |
Now, the modifier keys on the right site of the keyboard work with stickykeys. | Now, all modifier keys of the keyboard work with stickykeys. |
Line 22: | Line 27: |
In the 'Configuration example' below you see a setup for daily usage. | In the [[#example|Configuration example]] below you see a setup for daily usage. |
Line 27: | Line 32: |
=== Comments === Good point. I thought I remembered there being some utility that did this in the very old days? Perhaps I'm thinking of 1-finger for DOS? In any case it would be very useful to get this formalised in a general script that will work on all systems (whatever the keyboard layout is, etc.) so we can get it packaged for Ubuntu. When your X breaks (on your latest-crack unstable system) and you have to work from the command prompt it would be useful to be able to simply type 'stickykeys' from any standard Ubuntu install and have this 'Just Work'. If you dont have a way of looking up all the settings described above it's a pain. So, who can write such a script? :) -- HenrikOmma == stickykey on the X server == Because of the missing tool 'xorgcfg' or 'xf86cfg' [https://launchpad.net/distros/ubuntu/+ticket/506] in the ubuntu repository, you have to use the commandline tool 'xkbset'. Which isn't very user-friendly. You have to call 'xkbset' twice. By the first call, you set the expire of the accessx settings. This is necessary, because there is a default timeout. By the second call, you can adjust the accessx settings themself. I don't know why, but in my settings, this was the required order! |
== Stickykey on the X server == Because of the missing tool 'xorgcfg' or 'xf86cfg' [[https://launchpad.net/distros/ubuntu/+ticket/506]] in the ubuntu repository, you have to use the commandline tool 'xkbset'. Which isn't very user-friendly. You have to call 'xkbset' twice. By the first call, you set the expiry of the accessx settings. This is necessary, because there is a default timeout. By the second call, you can adjust the accessx settings themself. I don't know why, but in my settings, this was the required order! |
Line 51: | Line 50: |
In the 'Configuration example' below you see a setup for daily usage. | In the [[#example|Configuration example]] below you see a setup for daily usage. |
Line 55: | Line 54: |
The first tricky bit for me was to find out the correct settings for the 'Input''''''Device' section of the {{{/etc/X11/xorg.conf}}}. I had to google a lot and had to try some protocols to find out which one supports all the buttons of my kensington usb trackball. Lets have a look at the 'InputDevice' section of my {{{xorg.conf}}}: | The first tricky bit for me was to find out the correct settings for the 'Input''''''Device' section of the {{{/etc/X11/xorg.conf}}}. I had to google a lot and had to try some protocols to find out which one supports all the buttons of my kensington usb trackball. Lets have a look at the 'Input''''''Device' section of my {{{xorg.conf}}}: |
Line 96: | Line 96: |
In the 'Configuration example' below you see a setup for daily usage. | In the [[#example|Configuration example]] below you see a setup for daily usage. |
Line 98: | Line 98: |
<<Anchor(example)>> == Configuration example == === Console === To activate the loadkeys settings on each console login, I've added the following line to {{{/etc/rc.local}}}: {{{ loadkeys /home/thilo/.loadkeys > /dev/null}}} |
|
Line 99: | Line 103: |
== Configuration example == | === X server === |
Line 118: | Line 122: |
Now create a link from this stript to {{{/etc/X11/Xsession.d}}}, for example {{{/etc/X11/Xsession.d/91xinit}}}. The script starts now before the X server. Beware: The link shouldn't have any extention. | Now create a link from this script to {{{/etc/X11/Xsession.d}}}, for example {{{/etc/X11/Xsession.d/91xinit}}}. The script starts now before the X server. Beware: The link shouldn't have any extention. ---- thilo <<DateTime(2006-03-16T12:39:00Z)>> |
Acessibility Information for the Mobility Impaired
A quick guide to window manager independent and command line accessibility in Ubuntu for people who have difficulty using the standard keyboard and mouse devices.
Introduction
About me, the author: My profession is software developer and I am a person with mobility impaired disability. About 1,5 years ago, I switched from Windows to Linux. As a result of my disability, I needed special settings for my keyboard and mouse/trackball. Without the linux experience of a friend, it would have been hardly possible to configure these settings.
The following article is just a hint for advanced users, having the same problem.
Stickykey on the console
To enable stickykeys on the console, you need loadkeys. It is a program to manipulate key mappings and should be available on each base system.
1. Step: Create a file eg. ~/.loadkeys with the following content:
keymaps 0-15 keycode 29 = SCtrl keycode 42 = SShift keycode 54 = SShift keycode 56 = SAlt keycode 97 = SCtrl keycode 100 = SAltGr
2. Step: Call loadkeys /home/thilo/.loadkeys. Hint: Can only be done by root!!!
Now, all modifier keys of the keyboard work with stickykeys.
In the Configuration example below you see a setup for daily usage.
For further information refer to: http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-15.html
Stickykey on the X server
Because of the missing tool 'xorgcfg' or 'xf86cfg' https://launchpad.net/distros/ubuntu/+ticket/506 in the ubuntu repository, you have to use the commandline tool 'xkbset'. Which isn't very user-friendly. You have to call 'xkbset' twice. By the first call, you set the expiry of the accessx settings. This is necessary, because there is a default timeout. By the second call, you can adjust the accessx settings themself. I don't know why, but in my settings, this was the required order!
With xkbset -h you will get a help message.
An example for setting the expiry of the accessx settings: xkbset exp -bell -sticky -twokey -latchlock -accessx -feedback -stickybeep -led
You have to disable the expiry of all accessx settings you need. Because, if you set an explicit timeout with '0', you will cause a xorg runtime error.
An example for adjust the accessx settings: xkbset bell sticky -twokey latchlock feedback led stickybeep
For further information refer to: http://www.xfree86.org/current/xset.1.html
In the Configuration example below you see a setup for daily usage.
Configuration of a mouse/trackball on the X server
The first tricky bit for me was to find out the correct settings for the 'InputDevice' section of the /etc/X11/xorg.conf. I had to google a lot and had to try some protocols to find out which one supports all the buttons of my kensington usb trackball. Lets have a look at the 'InputDevice' section of my xorg.conf:
Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "Device" "/dev/input/mice" Option "Protocol" "ExplorerPS/2" Option "Buttons" "6" Option "ZAxisMapping" "5 6" Option "Emulate3Buttons" "no" Option "DragLockButtons" "1 4" EndSection
Some hints:
- 'Buttons': The correct number is the number of your mouse buttons plus two, if you have a wheel.
'ZAxisMapping': The buttons used for scrolling. (The movement of the wheel is mapped to buttons.)
'DragLockButtons': This is the setting for 'Drag and Drop'. In this example, button 4 is used to lock button 1. If you press button 4, button 1 is locked. If you press button 4 again, button 1 is released.
For further information refer to: http://www.xfree86.org/current/mouse5.html
The second tricky bit was to find out how to change the default button layout of my trackball, which wasn't very usefull to me. With the commandline tool xmodmap, you can change the layout of the buttons. For example, if you would have a mouse with 3 buttons, the following command would swap the left button with the right one.
xmodmap -e "pointer = 3 2 1"
For further information refere to: http://www.xfree86.org/current/xmodmap.1.html
To justify the acceleration and threshold, use the commandline tool 'xset'. For example:
xset m 7/10 2 This reduces the mouse acceleration to 0.7 and sets a threshold to 2
For further information refere to: http://www.xfree86.org/current/xset.1.html
As you can see, the configuration of a mouse/trackball with many buttons isn't very easy. A tool that displays the keycodes of the mouse and the keyboard is 'xev'. You can use it to check the layout of the buttons.
It is not easy to find the required mouse/trackball settings, especially if you need another button layout than the default one.
In the Configuration example below you see a setup for daily usage.
Configuration example
Console
To activate the loadkeys settings on each console login, I've added the following line to /etc/rc.local: loadkeys /home/thilo/.loadkeys > /dev/null
X server
Ok, now lets see how to setup the things above, so that they are called on each start of the X server. I've written a shell script, which contains all necessary tool calls. For example:
# setting the expiry of the accessx settings /usr/bin/xkbset exp -bell -sticky -twokey -latchlock -accessx -feedback -stickybeep -led # stickykey settings /usr/bin/xkbset bell sticky -twokey latchlock feedback led stickybeep # layout of the mouse buttons /usr/bin/xmodmap -e "pointer = 2 3 6 1 4 5" # mouse acceleration and threshold /usr/bin/xset m 7/10 2
Now create a link from this script to /etc/X11/Xsession.d, for example /etc/X11/Xsession.d/91xinit. The script starts now before the X server. Beware: The link shouldn't have any extention.
thilo 2006-03-16 12:39:00
Accessibility/doc/Guide/Mobility (last edited 2008-08-06 17:00:48 by localhost)