Neo keyboard layout on the console

How can I use the Neo keyboard layout (version 2, of course) on the console? The manual says it can be activated during installation by loadkeys de neo, but how do I set it as the default console layout in configuration.nix? I guess console.keyMap = "neo"; won’t work, as the de is missing.

I think console.keyMap = "neo"; will work. Isn’t neo only a German layout? For example for colemak, one needs to do loadkeys us colemak but console.keyMap = "colemak"; works.

You can search the available console keymaps with find "$(nix eval --raw 'nixpkgs#kbd')/share/keymaps" -name '*.map.gz' | grep "neo". Note that the nix subcommand requires nixUnstable.

Unfortunately I can’t, since I haven’t yet a running NixOS installation (I’m just writing configuration.nix for my first NixOS installation and want it to use Neo right from the beginning). Could you tell me what’s the output of this command on one of your NixOS machines? Does it say that using just neo works?

The strange thing is that loadkeys expects two argument, a “group”, like de, and a layout within that group, like neo, but console.keyMap expects only a single string. Somewhere there must be a mapping defined between the strings that console.keyMap accepts and the pairs of strings that loadkeys expects. Where is this mapping defined? And where is it documented?

Yes, just “neo” is a valid keymap value. console.keyMap = "neo"; will do what you want.

1 Like