System keeps reverting to US keyboard layout

On one of my machines (a laptop) the system starts up with a US keyboard layout whenever I login. My locale looks like:

LANG=en_GB.UTF-8
LC_CTYPE=en_GB.UTF-8
LC_NUMERIC=“en_GB.UTF-8”
LC_TIME=“en_GB.UTF-8”
LC_COLLATE=“en_GB.UTF-8”
LC_MONETARY=“en_GB.UTF-8”
LC_MESSAGES=“en_GB.UTF-8”
LC_PAPER=“en_GB.UTF-8”
LC_NAME=“en_GB.UTF-8”
LC_ADDRESS=“en_GB.UTF-8”
LC_TELEPHONE=“en_GB.UTF-8”
LC_MEASUREMENT=“en_GB.UTF-8”
LC_IDENTIFICATION=“en_GB.UTF-8”
LC_ALL=

If I go to System Settings -> Input Devices -> Keyboard -> Layouts, where I have added gb English(UK), and uncheck Configure layouts and then re-check it the system adopts the UK keyboard layout, but only for the current session.
I have not been able to find where the global settings are kept (most postings on the internet refer to /etc/default/locale which openSuSE doesn’t use).
I’d be grateful if someone could tell me how I can get the UK keyboard layout to stick.

system keyboard is in Yast keyboard. You can set for each user in the desktop settings

Yast has the system keyboard set to “English (UK)”. I don’t know where Yast is storing this, though, given that openSuSE seems not to put it where the other distros have the default locale settings.

The desktop settings don’t stick as I explained in my original post; I can only get them right for a given session.

This might be related to another problem on this machine, namely that X often doesn’t start when the machine boots so that I don’t get the graphical login screen. When I then login (as a user) at the command line so that I can start X I get the error message:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_GB.UTF-8,LANG=en_GB.UTF-8): No such file or directory

Needless to say, I don’t know what file or directory is missing.