How can I map a character to a key combination?

I'm a bit of a fan of the interrobang (‽), but it obviously is not on my keyboard. How can I map that character to a key combination?


Another, low-level option to try, especially if you can't get xkb to work is to use xmodmap directly.

The first thing to do would be to get a sense of your current keyboard layout. Open a terminal and type:

xmodmap -pke

This will give you a list of numbered positions on your keyboard and what they are mapped to. E.g., you might see an entry like:

keycode 14 = 5 percent 5 percent

This means that a certain key is mapped to 5 when pressed normally, the percent sign % when pressed with a shift. (And the next two values are for when Mode_shift is active; but let's not get into that right now.

If I wanted to change this key I could type in:

xmodmap -e "keycode 14 = 5 U203D 5 UD203D"

Now, instead of getting a percent sign % when I type shift-5, I get ‽.

That's just an example; probably you don't want to remap % to ‽. But maybe there's some other key you don't use a lot. For example, one nice option might be to remap the shift-Menu instead. So I see from xmodmap -pke that I have:

xmodmap -e "keycode 135 = Menu Menu Menu Menu"

I might make it instead:

xmodmap -e "keycode 135 = Menu U203D Menu U203D"

If I want to make that permanent, just throw it inside some init script that runs automatically, like .profile, .bashrc or .xinitrc, or create your own that Lubuntu loads automatically.

However, it's very important to run xmodmap -pke first to see what your initial set up looks like. Your keycode numbers may well be different from mine. And it's also the best way to see what else is available.

Anyway, that's a very low-level option. If you want a high-level option, look at something like autokey or xdotool instead.


Another option is to make use of the 'compose' key. Using Ubuntu, choose one in the Keyboard → Layouts → Option configuration (I choose Right Alt). For Kubuntu, go to System Settings → Input Devices → Keyboard → Advanced, check "Configure keyboard options", and then select your chosen key under "Compose key position".

To use the compose key, type Compose + ? + !.

There are lots of useful looking characters you can generate in this way: http://www.hermit.org/Linux/ComposeKeys.html


Here's something that works okay:

  1. Install xdotool Install xdotool (brilliant piece of software by the way)
  2. go to System → Preferences → Keyboard Shortcuts
  3. Add a new shortcut, as the command choose xdotool key ctrl+shift+u type "203d "

This is based on Matt's answer, but it will type the keys for you every time you hit the keyboard shortcut (albeit a bit slowly, about 150ms).

To add any other character, go to the gnome character map and search for it; In the status bar you should see the hexadecimal index of the glyph - i.e. "U+203d".

I now have the interrobang mapped to Ctrl+?, see‽ :-)


In GNOME you can enter unicode characters by type Ctrl+Shift+u+unicode point, followed Space or Enter.

So, type an interrobang, you'd enter Ctrl+Shift+u+2032d+Space.

How cool is that‽ Actually, I think it's a bit clumsy, but it does the job.