From ArchWiki
Revision as of 15:26, 6 June 2013 by Little (Talk | contribs)

Jump to: navigation, search

KeyTouch is a program which allows you to easily configure the extra function keys of your keyboard. This means that you can define, for every individual function key, what to do if it is pressed.

This HOWTO will try to explain how keytouch is used in Arch Linux. For further documentation, please have a look at the keytouch official documentation.


Keytouch can be installed with the keytouchAUR package, available in the Arch User Repository.

Keyboard File

You need a keyboard file for your keyboard model. The package build includes some of them. You can also check the official keyboards list.

If your model is not included in the keytouch package you will need to create one for yourself.

Creating a Keyboard File

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Keytouch#)

Install the keytouch-editorAUR from the Arch User Repository. Make sure you have evdev loaded (you should not need to do this if you using the stock kernel)

# modprobe evdev

We are going to need to make a keyboard file which is very simple. You need to find out which input device is your keyboard first:

# ls /dev/input/

Every event device (like a keyboard or a mouse) is related to one of these files. To find out which file belongs to your keyboard, run:

# keytouch-editor /dev/input/eventX mykeyboardconfig

If the previous command fails due to a missing kdesu dependency, try the following variation:

# keytouch-editor-bin /dev/input/eventX mykeyboardconfig

Replace the X by a number. KeyTouch editor will first show some information about the device, including its name (”Input device name”) that can tell you if you have chosen the correct event device. KeyTouch editor asks you to press one of the extra function keys. If the program continues after pressing the extra function key, you have chosen the right event device. If not terminate the program by pressing Ctrl+C and try another event device. Note that when your keyboard is connected via USB there are two event devices: /dev/input/eventA (where A is replaced by a number) for all ”normal” keys and /dev/input/eventB (where B = A+1) for the extra function keys.

  • After you have found the correct device, follow the steps. keytouch-editor asks your name and the name of the manufacturer and model of your keyboard.
  • Now it is time to tell keytouch-editor about your extra function keys. You will see the following message:
Press an extra function key or press enter to finish...

If your keyboard is connected via USB or you started keyTouch editor with the ”–acpi” option, you will not see this message, but instead:

Press return to a new key or enter F followed by return to finish...
  • First you will have to press the extra function key so that the program knows which key you mean. It is important that you do not press any other key than the extra function key. After pressing the key you will be asked to enter the keys name, keycode and default action.
  • Key name

Choose an appropriate name for the key. If there is for example a text label on the key, use the label as the key’s name.

  • Keycode

Use one of the keycodes listed below. It actually doesn’t matter which keycode you choose. However it is recommended that you choose a keycode that matches the best the function of the key. A keycode may only be used once in a keyboard file.

AGAIN               EJECTCLOSECD        MAIL              REFRESH
ALTERASE            EMAIL               MEDIA             REWIND
BACK                EXIT                MENU              RIGHTMETA
BASSBOOST           FASTFORWARD         MOVE              SCROLLDOWN
BOOKMARKS           FILE                MSDOS             SCROLLUP
BRIGHTNESSDOWN      FINANCE             MUTE              SEARCH
BRIGHTNESSUP        FIND                NEXTSONG          SENDFILE
CALC                FORWARD             OPEN              SETUP
CAMERA              FRONT               PASTE             SHOP
CANCEL              HANGUEL             PAUSE             SLEEP
CHAT                HANJA               PAUSECD           SOUND
CLOSE               HELP                PHONE             SPORT
CLOSECD             HOMEPAGE            PLAY              STOP
COFFEE              HP                  PLAYCD            STOPCD
COMPOSE             ISO                 PLAYPAUSE         SUSPEND
CONNECT             KBDILLUMUP          PRINT             VOLUMEDOWN
COPY                KPCOMMA             PROG1             VOLUMEUP
CUT                 KPEQUAL             PROG2             WAKEUP
CYCLEWINDOWS        KPLEFTPAREN         PROG3             WWW
DELETEFILE          KPPLUSMINUS         PROG4             XFER
DIRECTION           KPRIGHTPAREN        PROPS             YEN
EDIT                LEFTMETA            QUESTION
EJECTCD             MACRO               RECORD

You can find the correct keycodes from the official keycodes list.

  • Default action

It is important to realize that the default action for a key, is not the action you want to use for this key, but one that corresponds to the function of the key. The default action can be a program or a plugin. If it is a program, just fill in the name of the program. If it is a plugin type ”plugin” (without the quotes) instead. Then fill in the name of the plugin. To get a list of all available plugins, run keyTouch and go to the ”Preferences” part. Select the plugin and click the ”Information...” button to get a list of the functions of the selected plugin. After entering the plugins name in keytouch-editor, fill in the function name. Note that the name and function you fill in are case sensitive.

  • When you entered the information, the program asks again to press an extra function key. If there are no more extra function keys, just press enter to write the output file and terminate the program.

Share it

After you made the file and tested it, it would be a good idea to send it to the author of keytouch so he can include it in the next release. This helps future users of keytouch who have the same keyboard as you do.


(You know there's a missing @ because of spam bots ;))

Configure keytouch

  • We now need to run keytouch
$ keytouch
  • What to do...
  1. When you see the list of keyboards select import and find where you put the keyboard config file you just made.
  2. Now you should see your keyboard module and manufacturer. Select it and click ok.
  3. Now you get to the keytouch configuration theme. I think this is pretty self explanatory.

Starting the keytouch daemon

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: sysvinit has been replaced by systemd and the file rc.conf is no longer available.see the news (Discuss in Talk:Keytouch#)
  • You should start the keytouch daemon at boot time (add keytouch to the daemons array in /etc/rc.conf)
  • You have to load keytouchd on your session startup. There is a script /etc/X11/Xsession which runs all daemons located in /etc/X11/Xsession.d/ including the keytouchd.
    • You can add /etc/X11/Xsession into your ~/.xinitrc if you log in from console
    • If you, however, use KDM as your login manager .xinitrc will not be parsed. You can add /etc/X11/Xsession to your session list of your Desktop Environment (Gnome, Kde, Xfce-svn, among others).


  • When I change the volume with the special keys, the OSD looks ugly. What's wrong?:

Maybe you have started the /etc/X11/Xsession script as root. This is what happens when you place "/etc/X11/Xsession" on a script like /opt/kde/share/config/kdm/Xstartup. The only thing that /etc/X11/Xsession script does, is to look on /etc/X11/Xsession.d/ and execute every script that is there. Once you have installed keytouch, two scripts are created there:

$ pwd
$ ls
91keytouch-acpid_launch  92keytouchd_launch

If them aren't executed, there is no keytouchd for you. But if you execute them as root (e.g. in a KDM startup script) they will look ugly and that isn't good for most people. Just run them as yourself (e.g. creating a symbolic link of /etc/X11/Xsession in ~/.kde/Autostart).

  • My multimedia keys (Play/Pause/Previos/Next...) do not work at all:

The problem is probably the same as above. If you run keytouchd as root, the programs you run with the multimedia keys are expected to run as root, they just won't work.

  • I've just created a brand new keyboard file for my own model (using keytouch-editor) but when I select it in keytouch, it says that my keyboard file doesn't exist. I know that is there!:

Actually, the error isn't that the file doesn't exist: It only has a bad filename. When you make your own keyboard file, you have to make sure that your filename has exactly this format:


For example:


That should do the trick.