This post is part of the Colemak Necessities and Keboard Management series.

Minimally expanding my existing layouts for supporting Icelandic orthography.1

Background

Life outside Emacs can be daunting for a lot of reasons, the lack of auctex and org-latex being a major one. Additionally, for the purposes of my (somewhat current) country of residence2, it is often useful to be able to type Icelandic characters without resorting to something like typeit.

Compositional Choices

I already use klfc to generate a very portable (in a Unix sense) customized VIM based Colemak binding layout. Some reasons why I first decided to modify the compose keybindings instead of extending that are3:

  • The keys and bindings defined here aren’t in use enough for me to justify actually adding them to one of my levels.
  • It is slightly easier to share .XCompose files compared to the klfc compatible json files.
  • It also integrates nicely with my dotfiles and templates
    • There are a few tools for concatenating fragments4 but it seemed more straightforward to use my existing chezmoi machinery
      • The tools, especially ext-compose, can be used as a pretty definitve source of viable mappings

However, though the compose key and chords works great for TeX it isn’t exactly ideal for language bindings, so I ended up with a hybrid, where some keys are placed on the dead-greek (AltGr) level and the rest are via multi-key (a.k.a compose) chords.

Setting the Compose Key

Modern keyboards don’t often come with a dedicated compose key. For simplicity I opted to choose one of the default supported rules for the this:

I went with compose:ralt since compose:lalt isn’t thing. Setting this in sway is simple and stacks well with the other settings:

1# To test
2swaymsg 'input * xkb_options compose:ralt'

To set this permanently:

1input * {
2      xkb_options "compose:ralt"
3}

Mapping Icelandic

I used TypeIt as a reference, since I’m rather used to it. The mapping therefore proceeds in two stages, an AltGr layer, and some compose keychords.

AltGr Layer

For the base keys, I did end up first extending the AltGr layer, with the following, as depicted in Fig. fig:altgrlayeris 5:

Figure 1: AltGr layer mapping

Figure 1: AltGr layer mapping

Which is defined in another json file:

Installation is similar to the previous post:

 1git clone https://github.com/39aldo39/klfc
 2cd klfc
 3# Kanged from the AUR https://aur.archlinux.org/packages/klfc/
 4cabal v1-update
 5cabal v1-install --only-dependencies --ghc-options=-dynamic --force-reinstalls
 6cabal v1-configure --prefix=/usr --ghc-options=-dynamic
 7cabal v1-build
 8# Build layout
 9./dist/build/klfc/klfc ~/.config/klfc/colemak.json ~/.config/klfc/extendVIM.json ~/.config/klfc/is_altgr_Colevim.json -o colevimIS
10# Install
11cd colevimIS/xkb/
12./install-system.sh && ./scripts/install-xcompose.sh

Compose Keychords

It turns out there are really only two left:

1# ~/.XCompose
2<Multi_key> <a> <e> : "æ"
3<Multi_key> <o> <i> : "ö"

Conclusions

This is going to take a while to get used to for sure, but eventually it should help me reduce the time it takes me to get thoughts on (digital) paper in Icelandic. I will probably need to touch type on something like fastfingers 6.

I had hoped to include a bunch of unicode math and other compose keychords, but it is annoying to have to keep track of the translations like * to asterisk and similar7.


  1. Recall that the compose key is essentially for keychords, like a dead key on steriods. ↩︎

  2. Where the phrasing is mostly for legal purposes, as anyone dealing with immigration and taxation would know. ↩︎

  3. I ended up extending the layout a bit for the Icelandic mappings though. ↩︎

  4. Like xcompose, or ext-compose, or xcomposer, or xcomposegen, or even something with a GUI like Composition↩︎

  5. As in the previous post the images are made with keyboard-layout-editor↩︎

  6. Typingclub or typing.com or keybr are favorites but don’t support Icelandic yet. ↩︎

  7. Perhaps I too will try my hand at a cleaner xcompose generator. ↩︎


Series info

Colemak Necessities series

  1. Switching to Colemak
  2. Refactoring Dotfiles For Colemak
  3. Remapping Keys with XKB and KLFC
  4. Remapping Keys for ColemakVIM on MacOS
  5. Icelandic with Compose Keys on Linux <-- You are here!

Series info

Keboard Management series

  1. Remapping Keys with XKB and KLFC
  2. Remapping Keys for ColemakVIM on MacOS
  3. Icelandic with Compose Keys on Linux <-- You are here!