# Dead keys: acute and diaeresis

**URL:** <https://community.keyboard.io/t/dead-keys-acute-and-diaeresis/854>\
**Category:** Model 01 Layouts\
**Created:** [December 12, 2017, 3:50pm UTC](https://community.keyboard.io/t/dead-keys-acute-and-diaeresis/854 "2017-12-12T15:50:02Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![misdre](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@misdre](https://community.keyboard.io/u/misdre)\
**Post date:** [December 12, 2017, 3:50pm UTC](https://community.keyboard.io/t/dead-keys-acute-and-diaeresis/854/1 "2017-12-12T15:50:02Z")

</div>

I’m updating the layout of my freshly received Model 01 and I’m just wondering: is it even possible to assign the acute and diaeresis diacritics modifying only the firmware?

Unlike backtick they don’t seem to have a keycode [https://github.com/keyboardio/Kaleidoscope/blob/master/src/key\_defs\_keyboard.h](https://github.com/keyboardio/Kaleidoscope/blob/master/src/key_defs_keyboard.h). It doesn’t appear to be an oversight as I don’t think it is even part of HID Keyboard scan codes of the USB spec. Does that mean I have to rely on OS facilities to type the right character? or is there an alternative relying only on the firmware?

I’m using a QWERTY-based layout (US International, sort of).

---

<div class="post-metadata">

**Author:** ![algernon](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/algernon/32/4404_2.png) [@algernon](https://community.keyboard.io/u/algernon)\
**Post date:** [December 12, 2017, 3:55pm UTC](https://community.keyboard.io/t/dead-keys-acute-and-diaeresis/854/2 "2017-12-12T15:55:54Z")

</div>

I’m not sure I follow. You mean things like `AltGr, ", o` resulting in `ö`?

---

<div class="post-metadata">

**Author:** ![misdre](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@misdre](https://community.keyboard.io/u/misdre)\
**Post date:** [December 12, 2017, 4:04pm UTC](https://community.keyboard.io/t/dead-keys-acute-and-diaeresis/854/3 "2017-12-12T16:04:53Z")

</div>

Not exactly - currently on my layout I have ` (backtick) as a dead key. It means that when I type it once, nothing appears, but the next letter will have a grave accent.

```
` e = è
` i = ì

```

and so on.

It is relatively easy to set up this way: there is a key and a keycode for `, and by default the US international keyboard makes it behave as a dead key (as explained above). I’d like to have another key for ´ (acute accent) but there doesn’t seem to exist a keycode for it. I’m wondering if there is a dedicated keycode I missed, or a different keycode that “standard” layouts such as US International would interpret as “dead-key acute”.

In the absence of that, does it mean I have to fully rely on the operating system tools and create a keymap to install on the OS/or other solutions such as xmodmap?

---

<div class="post-metadata">

**Author:** ![algernon](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/algernon/32/4404_2.png) [@algernon](https://community.keyboard.io/u/algernon)\
**Post date:** [December 12, 2017, 4:14pm UTC](https://community.keyboard.io/t/dead-keys-acute-and-diaeresis/854/4 "2017-12-12T16:14:32Z")

</div>

> [@misdre](#):
>
> I’m wondering if there is a dedicated keycode I missed, or a different keycode that “standard” layouts such as US International would interpret as “dead-key acute”.

Ah, I see. Thanks for the explanation!

> [@misdre](#):
>
> In the absence of that, does it mean I have to fully rely on the operating system tools and create a keymap to install on the OS/or other solutions such as xmodmap?

At the end of it, yes. But you can make things a little easier: if you set up a `Compose` key (if you use GNOME, `gnome-tweak-tool` can help with this; if you’re not, I have no clue), that allows you to type `à` with `AltGr Backtick a`, and `á` with `AltGr ' a`, and so on. Then you can create a few macros that type these for you.

My [Kaleidoscope-LangPack-Hungarian](https://github.com/algernon/Kaleidoscope-LangPack-Hungarian) plugin may be of interest to you, which does something very similar. It uses custom keycodes instead of macros, but the underlying idea is the same.

---

<div class="post-metadata">

**Author:** ![misdre](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@misdre](https://community.keyboard.io/u/misdre)\
**Post date:** [December 12, 2017, 5:49pm UTC](https://community.keyboard.io/t/dead-keys-acute-and-diaeresis/854/5 "2017-12-12T17:49:34Z")

</div>

Your plugin looks very interesting, custom keycodes might be a solution to my problem. Thanks a lot!

---

<div class="post-metadata">

**Author:** ![algernon](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/algernon/32/4404_2.png) [@algernon](https://community.keyboard.io/u/algernon)\
**Post date:** [December 12, 2017, 8:07pm UTC](https://community.keyboard.io/t/dead-keys-acute-and-diaeresis/854/6 "2017-12-12T20:07:33Z")

</div>

> [@misdre](#):
>
> custom keycodes might be a solution to my problem

FWIW, these keycodes are all on the firmware side, they do not end up in the HID report. The plugin translates them. You could use unused codes from the HID spec, and use xmodmap or similar to turn them into your desired symbols… but that sounds more work to me.

(Mind you, I’m biased, as I have a lot more experience with firmware, and 0 with xmodmap & friends. Never properly learned how to use them :p)

---

<div class="post-metadata">

**Author:** ![andrewg](https://yyz1.discourse-cdn.com/flex031/user_avatar/community.keyboard.io/andrewg/32/43_2.png) [@andrewg](https://community.keyboard.io/u/andrewg)\
**Post date:** [December 15, 2017, 11:09am UTC](https://community.keyboard.io/t/dead-keys-acute-and-diaeresis/854/7 "2017-12-15T11:09:16Z")

</div>

The names of the HID keyboard scan codes as found in header files such as `key_defs_keyboard.h` are slightly confusing. They are named according to what they _would_ produce in your OS _if_ your OS was configured to use US-QWERTY. But what the HID scan codes _mean_ is more along the lines of “the physical key that is found on the second row, third from the left on an IBM AT keyboard”. But that’s not very human-friendly, and since most people have a QWERTY keyboard in full view when they program, it makes sense to name the physical keys according to what is printed on them.

If you want a dead-diaeresis, under normal circumstances you would tell your OS to use a mapping that includes dead-diaeresis as one of the outputs. This could be a keymap (such as US-international+dead\_keys), an input method (such as compose key), or some other method that requires synchronisation between the keyboard firmware and a novel OS driver.
