Can't change the keyboard layout on Centos 7

I have been stuck with this problem for hours now and this is getting really frustrating.

I have installed Centos 7.0.1406 on Oracle Virtualbox and during the installation I chose Norwegian keyboard layout because I have a norwegian keyboard.

The problem is on Ubuntu everything works as it should and when i type in æøå, I get those letters. But in centos7 something else appears. And the biggest problem is I don't have access to the pipe | character because I have no idea where to find it on my keyboard, because the default key gives something else.

I have been searching around and people keep saying that I have to edit /etc/sysconfig/keyboard but there is no keyboard in /etc/sysconfig

I have no idea what to do.

Would be ever so grateful for tips!


That functionality appears to be in systemd now. To list the current locale information:

# localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us

To list the available keymaps:

# localectl list-keymaps | grep no
de-latin1-nodeadkeys
et-nodeadkeys
mac-de-latin1-nodeadkeys
no
no-dvorak
no-latin1
sunt4-no-latin1

To set the keymap (taking a guess here on which you want):

# localectl set-keymap no
# localectl set-x11-keymap no

There's more information available in Red Hat's documentation. Good luck! https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/s1-Changing_the_Keyboard_Layout.html


While Boscoe's answer is completely right and relevant, the relevant settings are stored in /etc/vconsole.conf:

KEYMAP=us  # or whatever

and in /etc/X11/xorg.conf.d/00-keyboard.conf:

Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "us"
EndSection

You might be interested in being able to input in multiple languages. A detailed answer for that can be found here.

Also/etc/locale.conf:

LANG="en_US.UTF-8"