Master Your Linux Keyboard (And Fix Caps Lock Forever)

If the command line is your preferred management interface, smooth out your keyboarding with these handy utilities.

By  Carla Schroder | Jul 9, 2007
Page 1 of 2
Print ArticleEmail Article
  • Share on Facebook
  • Share on Twitter
  • Share on LinkedIn

Want to get rid of the evil caps lock key without mutilating your keyboard? Want to give those silly Windows keys useful jobs, or put all those extra multi-media keys to work? Want to become a powerhouse keyboarding commando? Then come along and join the fun, because Linux has all kinds of good tools for taming wayward keyboards and increasing your efficiency. In this two-part series we're going to use xmodmap, XBindKeys, and KeyTouch to create custom keybindings for launching applications and running commands.

Exorcising Caps Lock

The placement of the caps lock key is a demonstration of malicious cunning. It's above the shift key and it's usually oversized, so it's way too easy to hit it when you don't want to, which for me is all the time. On a case-sensitive operating system it's not all that useful anyway. Unhappy users often resort to remedies like prying it off entirely or covering it with duct tape. You can do this if you're careful, but elite geeks resort to more sophisticated measures that do not mangle their nice keyboards. It's not the fault of the keyboards that manufacturers have giant Windows-sized blind spots, and as always, Linux makes lemonade out of lemons and provides useful alternatives.

This command reverses whatever position the caps lock key is in, so first make sure it is not on:

$ xmodmap -e "remove lock = Caps_Lock"

What if you do this when caps lock is on? One remedy is get used to typing like a dork: "dEAR jUPITERMEDIA, i WANT MORE STORIES ABOUT hp, ibm, AND dELL." Or you could fix it. First run this command:

$ xmodmap -e "add lock = Caps_Lock"

Then make sure it is not on, and re-run the "remove lock" command.

This won't survive a reboot, so put it in your ~/.bashrc file to make it permanent.

XBindKeys For Launching Applications

KDE and GNOME, window managers like IceWM and Fluxbox, and many applications come with their own set of prefab keybindings. You should investigate these before going on a customization spree, or you run the risk of creating conflicts. We're going to learn how to use XBindKeys. XBindKeys is not dependent on any particular desktop or window manager, and should run on pretty much any Linux or Unix system."

The easy way is to install xbindkeys-config along with xbindkeys, which gives you a typically plain GTK-based graphical configuration tool, as Figure 1 shows.

xbindkeys-config comes with Debian and all of its descendants. If you want an RPM and can't find one, get the source tarball from the Debian repository.

Launching graphical applications with root privileges is easy when you know a few slick tricks. In this example I have configured the left Windows key to launch a root file manager, and the right Windows key to launch a root text editor. Before you do anything else you must create a default configuration file with this command:

$ xbindkeys --defaults > $HOME/.xbindkeysrc

xbindkeys won't work without this. Take a look at it to get an idea of how to manually configure it; you might even make a copy to study, because xbindkeys-config will overwrite it.

Next, follow these steps to create a new keybinding:

  1. Hit the "New" button in xbindkeys-config
  2. Press "Get Key"
  3. Press a key or key combination on your keyboard
  4. On the "Action" line, type in your command
  5. Press "Run Action" to test it
  6. If it works, hit Apply and do more keybindings, or hit Save&Apply&Exit. Your changes will not be saved until you press the Save&Apply&Exit button

Figuring Out Commands

The tricky bit with xbindkeys-config is knowing the correct application launching commands. The simplest command is the program's name with no options, like kate or gimp or firefox. (Shame on Linux distributions and desktop environments that obscure the real application names - users will not faint at the sight of useful information.) Anything that works on the command line will work in xbindkeys-config. For launching graphical applications with rootly powers, or as any other user, you need gksu or kdesu. Using one of these gives you a graphical login window, like Figure 2.

gksu is a graphical front-end to both su and sudo. Just to add to the fun and confusion, so is gksudo. Making it even more fun is Ubuntu makes gksu behave like gksudo. So let's talk about this first.

Comment and Contribute
(Maximum characters: 1200). You have
characters left.
Get the Latest Scoop with Enterprise Networking Planet Newsletter
Helpful Links
  • Yankee Group Mobile WAN Optimization Report

    Mobile work continues to evolve. Your organization must keep up with the demands of its mobile workforce. This report introduces the concept of mobile WAN optimization and provides three case studies including RCM, PRTM and Einstein that highlight how this emerging technology can help IT departments achieve what previously appeared to be conflicting goals. Read >

  • Network Security Resources

    More threats than ever before pose a danger to today's enterprise network. Get the latest tips and intel on the newest risks in our guide to network security resources. Read >

  • Extreme Savings: Cutting Costs with WAN Optimization

    Did you know it's possible to cut IT costs without impacting day-to-day IT operations? In fact, when you download this whitepaper from Riverbed on cost-savings through WAN optimization, you'll discover how businesses of all different sizes have realized a return on investment in just a few months through significant hard cost savings in areas such as bandwidth reduction and IT consolidation. It's called Extreme Savings and its only from Riverbed. Read >