Currently I have to run
setxkbmap gb every time I restart my system. This started happening since I upgraded to Ubuntu 15.04 with systemd. It used to work putting this command in the
.xsession file, which still starts my window manager and changes the cursor and so on. Here are its contents:
xsetroot -cursor_name left_ptr feh --bg-fill ~/wallpapers/luke-twyman-wallpaper-1920x1200.jpg setxkbmap -layout gb xmonad
Also, the actual system console is set to the correct gb locale and the keyboard layout is fine. This problem is only with X.
Also it may be relevant that I use the text login, which I enabled with
systemctl set-default multi-user.target. I don't really understand why that command has this effect but I guess that would be another question.