Support for Sticky Keys in Ubuntu has been quite sketchy for the past few releases. For the uninitiated, Sticky Keys allows you to hit the Ctrl / Shift keys with their letter combination without having to press them down together. (This is available in Windows too; hit Shift key five times in a row to bring up the necessary dialog box.)
I prefer to use Sticky Keys a lot. It makes typing faster and more accurate (when it comes to capitalization). That’s why I’m kinda partial to KDE-based distros: apart from the interface with lots of eye-candy, KDE’s implementation of accessibility features works. This is not true with GNOME, where there seems to be a bug in at-spi (the Assistive Technology Service Provider). I’ve already filed a bug report for this issue in Launchpad for Ubuntu. For a distro which keeps a separate page on accessibility (shows the Sticky Kets feature there too), it is ironic that this bug has remained for such a long time at ‘Low’ priority.
Anyway, a few days back I figured out how to fix this problem. I was browsing through keys in gconf-editor when I came across the accessibility-related values. Here’s how you can enable Sticky Keys in Ubuntu.
- Go to System Tools > Configuration Editor. If it is not enabled, you may need to edit your Main Menu to show this item by going to System > Preferences > Main Menu and doing the necessary edits. You can also launch gconf-editor using the terminal.
- In Configuration Editor, go to /desktop/gnome/accessibility/keyboard. Check the box stickykeys_enable. Uncheck the boxes next to stickykeys_modifier_beep and stickykeys_two_key_off. (It’s the second one which you MUST turn off.) Do this step before the next. (Don’t change the order.) If timeout_enable is checked, uncheck it.
- Double-click on the timeout field value and change it to some high value like 7200.
- Close Configuration Editor without making any more edits. If you change any other value, or open gconf-editor any day later then note that your ‘timeout’ value will be reset to default of 120 seconds.
Methinks the issue (of Sticky Keys) getting switched off every once in a while is because the stickykeys_two_key_off value is enabled even when it has been disabled from Preferences > Keyboard. Moreover, the reset of timeout value is also not expected behavior and is probably a bug too.
Hope this solves the issues for anyone else who wants to use Sticky Keys in Ubuntu (or any other GNOME-using distro)!