XKeyCaps

xkeycaps is a graphical front-end to xmodmap. It opens a window that looks like a keyboard; moving the mouse over a key shows what KeySyms and Modifier bits that key generates. Clicking on a key simulates KeyPress/KeyRelease events on the window of your choice. It is possible to change the KeySyms and Modifiers generated by a key through a mouse-based interface. This program can also write an input file for xmodmap to recreate your changes in future sessions.

I wrote this program in 1991 when I found myself having to use Yet Another Different Keyboard, and finding that yet again I had forgotten the syntax of xmodmap since the last time I needed to figure out how to get the Caps-Lock and Control keys to be in the right places.

So, in full-tilt pique at the fact that the crummy computers I had to use still didn't have this basic utility that my 128k Macintosh had in 1984, I hacked it together, taught it about the four or five keyboards I had access to, and about the half dozen more I was able to find descriptions of in manuals, and released the result. Since then, I've been sent new keyboard descriptions with great regularity, so that it now knows about (at final count) 208 different configurations! (Isn't it sick that so many different configurations even exist?)

If our hearts are pure, we can stamp out xmodmap in our lifetime.

The final version, as a compressed tar file:
xkeycaps-2.46.tar.Z

The manual:
XKeyCaps 2.46 Manual.

Stick a fork in it. It's done:


What follows is a list of the keyboard types that xkeycaps knows about (this is the output of ``xkeycaps -help''.) If you're using a keyboard not on this list, pick one that looks similar, and start pressing keys on your (real) keyboard. If the right keys light up on the screen, then you've found a keyboard model that is close enough for you to use.

Adesso Adesso PCK-301 (XFree86; US)
Amiga Non-A1000 (German)
Apple Extended II (MacX; US)
Apple Extended II (MkLinux; US)
Apple Extended II (MkLinux; German)
Apple Standard ADB (NetBSD; US)
Atari TT (US)
Compaq Presario 1655 (XInside; US)
Concurrent GA5000 (US)
Cramer 106 key Interfaces (XFree86; US)
Cramer 106 key Interfaces (Irix 5.2, 6.3; US)
Data General AViiON 300 PC (US)
Digital LK201 (US)
Digital LK401 (US)
Digital LK401 (Swedish TTY)
Digital LK401 (Swedish DP)
Digital LK421 (US)
Digital LK450 (XFree86)
Digital PCXAL (US)
Digital PCXAL (XFree86; US)
Gateway 2000 AnyKey Keyboard (XFree86; US)
GVC/ARM Concorde 105 key (XFree86; US)
Hewlett-Packard HP9000 ITF HIL (US)
Hewlett-Packard HP9000 ITF HIL (German)
Hewlett-Packard HP9000 ITF HIL (Finnish)
Hewlett-Packard HP9000 ITF HIL (Swedish)
Hewlett-Packard Aptrex Terminal (USASCII)
Hewlett-Packard 700/RX Terminal (101 key; US)
Hewlett-Packard 700/RX Terminal (102 key; United Kingdom)
Hewlett-Packard 700/RX Terminal (102 key; Swedish/Finnish)
Hewlett-Packard HP9000 PS2 DIN (US)
Hewlett-Packard HP9000 PS2 DIN (German)
Hewlett-Packard Apollo (US)
IBM PC/RT (US)
IBM PC/RT 102 (Swedish 7-bit)
IBM PC/RT 102 (Swedish 8-bit)
IBM RS/6000 (AIXWindows R4; US)
IBM RS/6000 (AIXWindows R4; German)
IBM RS/6000 (X11R5; US)
IBM ThinkPad 560 (XFree86; Spanish)
IBM ThinkPad 770 (XFree86; US)
Kinesis 120 key (XFree86; US)
Kinesis 120 key (Sun Interface Converter; US)
KTX 1000 IBM 104 Key Compatible (XFree86; US)
Labtam MT200 Terminal (US)
MidwestMicro Elite SoundBook (US)
Microsoft `Natural' 104 key (XFree86; US)
Microsoft `Natural' 104 key (Irix 5.2, 6.3; US)
Microsoft `Natural' 104 key (Sun Interface Converter; US)
Microsoft `Natural' 104 key (Gateway 2K XFree86; US)
Microsoft `Natural' 104 key (HP-UX; US)
Microsoft `Natural' 105 key (HP-UX; German)
Microsoft `Natural' 105 key (Sun Interface Converter; Swedish)
Microsoft `Natural' 105 key (XFree86; US)
Microsoft `Natural' 105 key (XFree86; German)
Microsoft `Natural' 105 key (XFree86; Italian)
Microsoft `Natural' 105 key (XFree86; Spanish)
Microsoft `Natural' 105 key (XFree86; Belgian)
MIPS Magnum 3000 (US)
MIPS Magnum AT (US)
MIPS RS-2030 (US)
NCD N97 (US)
NCD N101 (US)
NCD N102 (US)
NCD N102 (French)
NCD N102 (Norwegian)
NCD N102 (Swedish/Finnish)
NCD N107 (US)
NCD N108 (US)
NCD N108 (German)
NCD vt220 (US)
NCD 123UX (US)
NCD 123NA (US)
NCD PC-Xview (US)
NeXT Non-ADB (US)
Northgate OmniKey 102 (XFree86; US)
Northgate OmniKey Ultra (XFree86; US)
Ortek Enhanced Keyboard (XFree86; US)
PC 84 key PC/AT (XFree86; US)
PC 101 key, wide Delete, short Enter (Hewlett-Packard PC; US)
PC 101 key, wide Delete, short Enter (OpenWindows/x86; US)
PC 101 key, wide Delete, short Enter (Santa Cruz Operation; US)
PC 101 key, wide Delete, short Enter (DELL PC; US)
PC 101 key, wide Delete, short Enter (AGE XoftWare, XStation 130; US)
PC 101 key, wide Delete, short Enter (AGE XoftWare, 2.0 PC; US)
PC 101 key, wide Delete, short Enter (Hummingbird eXceed; US)
PC 101 key, wide Delete, short Enter (Pericom X-Line; US)
PC 101 key, wide Delete, short Enter (XInside; US)
PC 101 key, wide Delete, short Enter (Sun Interface Converter; US)
PC 101 key, wide Delete, short Enter (OpenWindows/IBM PReP PPC; US)
PC 101 key, wide Delete, tall Enter (XFree86; US)
PC 101 key, thin Delete, tall Enter (XFree86; US)
PC 101 key, thin Delete, tall Enter (XFree86; Thai)
PC 102 key, wide Delete, short Enter (XFree86; German)
PC 102 key, wide Delete, tall Enter (XFree86; US)
PC 102 key, wide Delete, tall Enter (XFree86; German)
PC 102 key, wide Delete, tall Enter (XFree86; Italian)
PC 102 key, wide Delete, tall Enter (XFree86; Spanish)
PC 102 key, wide Delete, tall Enter (XFree86; Swedish/Finnish)
PC 102 key, wide Delete, tall Enter (XFree86; French)
PC 102 key, wide Delete, tall Enter (XFree86; United Kingdom)
PC 102 key, wide Delete, tall Enter (XFree86; Belgian)
PC 102 key, wide Delete, tall Enter (XFree86; Swiss French)
PC 102 key, wide Delete, tall Enter (XFree86; Norwegian)
PC 102 key, wide Delete, tall Enter (Exceed/Siemens-Nixdorf; German)
PC 102 key, wide Delete, tall Enter (SCO UnixWare 2; Norwegian)
PC 102 key, wide Delete, tall Enter (Hewlett-Packard PC; United Kingdom)
PC 102 key, wide Delete, tall Enter (Hewlett-Packard PC; Swedish/Finnish)
PC 102 key, wide Delete, tall Enter (Hewlett-Packard PC; German)
PC 102 key, wide Delete, tall Enter (XFree86; Portuguse)
PC 102 key, thin Delete, tall Enter (XFree86; United Kingdom)
PC 104 key, wide Delete, short Enter (XFree86; US)
PC 104 key, wide Delete, short Enter (XAccel; US)
PC 104 key, wide Delete, short Enter (OpenWindows/x86; US)
PC 105 key, wide Delete, tall Enter (XFree86; US)
PC 105 key, wide Delete, tall Enter (XFree86; Canadian)
PC 105 key, wide Delete, tall Enter (XFree86; CF)
PC 105 key, wide Delete, tall Enter (XFree86; United Kingdom)
PC 105 key, wide Delete, tall Enter (XFree86; German)
PC 105 key, wide Delete, tall Enter (XFree86; Swedish/Finnish)
PC 105 key, wide Delete, tall Enter (XFree86; Danish)
PC 105 key, wide Delete, tall Enter (XFree86; Swedish)
PC 105 key, wide Delete, tall Enter (XFree86; Icelandic)
PC 105 key, wide Delete, tall Enter (XFree86; Italian)
PC 105 key, wide Delete, tall Enter (XFree86; Spanish)
PC 105 key, wide Delete, tall Enter (XFree86; Belgian)
PC 105 key, wide Delete, tall Enter (XFree86; Slovene)
PC 105 key, wide Delete, tall Enter (XFree86; Turkish)
PC 105 key, wide Delete, tall Enter (XFree86; French)
PC 105 key, wide Delete, tall Enter (XFree86; Norwegian)
PC 107 key, wide Delete, tall Enter (XFree86; Brazilian ABNT2)
PC Cherry ErgoPlus (XFree86; German)
PC CoolKeyboard 107 key (XFree86; US)
PC Happy Hacking Keyboard (PC mode; XFree86; US)
PC Sunshine KB-6868 105 key (XFree86; US)
Phase X Systems PX 101 key, wide Delete, short Enter (US)
Phase X Systems PX 101 key, thin Delete, tall Enter (US)
Phase X Systems PX CH2 (Wyse 102 key; US)
Shine `Natural' 106 key (XFree86; Portuguese)
Silicon Graphics 101 key (Irix 5.2, 6.3; US)
Silicon Graphics 101 key (IRIX 6.2; German)
Silicon Graphics 101 key (IRIX 5.2; German)
Silicon Graphics 101 key (IRIX 4.0 R5; US)
Silicon Graphics 101 key (IRIX 4.0 R4; US)
Silicon Graphics 102 key (IRIX 6.2; Norwegian)
Soft Key Butterfly (US)
Soft Key Butterfly (German)
Sony NWS 1250 (US)
Sony NWS 3410 (US)
Sun Microsystems Type 2 (X Consortium; US)
Sun Microsystems Type 3 (X Consortium; US)
Sun Microsystems Type 4 (OpenWindows; US)
Sun Microsystems Type 4 (OpenWindows; Swedish/Finnish)
Sun Microsystems Type 4 (X11R6; US)
Sun Microsystems Type 4 (X11R6; Swedish)
Sun Microsystems Type 4 (X11R6; German)
Sun Microsystems Type 4 (OpenWindows; Catalan/Spanish)
Sun Microsystems Type 4 (X11R6; Catalan/Spanish)
Sun Microsystems Type 4 (X11R4/R5; US)
Sun Microsystems Type 4 (XFree86; US)
Sun Microsystems Type 5 (OpenWindows; US)
Sun Microsystems Type 5 (OpenWindows; Swiss-French)
Sun Microsystems Type 5 (X11R6; French)
Sun Microsystems Type 5 (OpenWindows; Swedish)
Sun Microsystems Type 5 (OpenWindows; United Kingdom)
Sun Microsystems Type 5 (OpenWindows; German)
Sun Microsystems Type 5 (X11R6; Swiss-German)
Sun Microsystems Type 5 (OpenWindows; Spanish)
Sun Microsystems Type 5 (X11R6; US)
Sun Microsystems Type 5 (X11R4/R5; US)
Sun Microsystems Type 5 (X11R4/R5 + patch; Swedish)
Sun Microsystems Type 5 (X11R4/R5 + patch; Katakana)
Sun Microsystems Type 5/PC (OpenWindows; US)
Sun Microsystems Type 5/PC (OpenWindows; German)
Sun Microsystems Type 5/PC (X11R6; US)
Sun Microsystems Type 5/PC (X11R4/R5; US)
Sun Microsystems Type 5/PC (X11R4/R5 + patch; US)
Sun Microsystems 101A (X11R4/R5; US)
Takaoka Xmint Terminal (Katakana)
Tektronix XP20 101 key (X11R5; US)
Tektronix XP20 101 key (X11R4; US)
Tektronix XP217C 101 key (US)
Tektronix X358 102 key (German)
Tektronix XP119 Sun 5/PC (US)
Tektronix VT200 (Ultrix; US)
Tektronix VT200 (Ultrix; Danish)
Tektronix VT200 (Ultrix; German)
Tektronix VT200 (Ultrix; Finnish)
Tektronix VT200 (Ultrix; French)
Tektronix VT200 (Ultrix; Italian)
Tektronix VT200 (Ultrix; Katakana)
Tektronix VT200 (Ultrix; Norwegian)
Tektronix VT200 (Ultrix; Spanish)
Tektronix VT200 (Ultrix; Swedish)
Tektronix VT200 (Ultrix; Swiss-German)
Tektronix VT200 (Ultrix; United Kingdom)
Tektronix VT200 (VMS; US)
Tektronix VT200 (US-ESC)
Tektronix VT200 (US-F11)
Tektronix Tek-LK401 (US)
Tektronix Tek-LK401 (Swedish TTY)
Tektronix Tek-LK401 (Swedish DP)
Tektronix Tek-Sun Type4 (US)
Tektronix XN11 Terminal (Swedish/Finnish)
Texas Instruments TravelMate 4000M (US)
Texas Instruments Explorer (US)
Toshiba Libretto 100CT (US)
Toshiba Tecra 500CDT (US)


© 1991-2005 Jamie Zawinski <jwz@jwz.org>
do not write below this line