Bug 1087555 - Configuring keyboard using Yast2 to use a German Keyboard with deadkeys for console and KDE doesn´t survive a reboot
Configuring keyboard using Yast2 to use a German Keyboard with deadkeys for c...
Status: RESOLVED NORESPONSE
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: YaST2
Current
Other Other
: P5 - None : Normal (vote)
: ---
Assigned To: E-mail List
Jiri Srain
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2018-03-30 00:48 UTC by Alexander Nolting
Modified: 2018-08-16 08:58 UTC (History)
3 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---
snwint: needinfo? (a.nolting)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Nolting 2018-03-30 00:48:11 UTC
While I was exploring the bug report https://bugzilla.opensuse.org/show_bug.cgi?id=1055834 I figured out that Yast Keyboard Configuration does not handle the German keyboard settings properly.

I'm working on a Asus ROG Gaming Laptop with an external keyboard from Corsair K95 RGB. I need constantly grave and other accents so I would like to configure German deadkeys using Yast Keyboard module. This setting is only working in KDE and console for the actual session. After a reboot the layout is back to German nodeadkeys.

I investigated this issue and found that even if I manually setting up the system using localectl followed by a mkinitrd the settings are not saved.

This is what /etc/sysconfig/keyboard looks like after changing the keyboard:

## Path:        Hardware/Keyboard
## Description: Keyboard settings for the text console
## Type:        integer
## Default:
## ServiceRestart: kbdsettings
#
# Keyboard delay time in ms (250, 500, 750, 1000)
KBD_DELAY=""

## Type:	string(2.0,2.1,2.3,2.5,2.7,3.0,3.3,3.7,4.0,4.3,4.6,5.0,5.5,6.0,6.7,7.5,8.0,8.6,9.2,10.0,10.9,12.0,13.3,15.0,16.0,17.1,18.5,20.0,21.8,24.0,26.7,30.0)
## Default:
#
# Keyboard repeat rate (2.0 - 30.0)
KBD_RATE=""

## Type:        list(bios,yes,no)
## Default:     bios
#
# NumLock on? ("yes" or "no" or empty or "bios" for BIOS setting)
# This setting may interfere with GNOME /desktop/gnome/peripherals/keyboard/remember_numlock_state GConf key.
KBD_NUMLOCK="bios"

## Type:        yesno
## Default:     no
#
# ScrollLock on? ("yes" or "no")
KBD_SCRLOCK="no"

## Type:        yesno
## Default:     no
#
# CapsLock on? ("yes" or "no")
KBD_CAPSLOCK="no"

## Type:        yesno
## Default:     no
#
# Disable CAPS LOCK and make it a normal Shift key?
# (Ctrl Caps Lock will still toggle Caps Lock functionality)
# Note that you need to tweak the xkb maps or use xmodmap
# if you want to do the same under X-Windows. In ~/.Xmodmap:
# keycode 0x42 = Shift_L Shift_L
#
KBD_DISABLE_CAPS_LOCK="no"

## Type:        string
## Default:
#
# ttys for the above settings 
# Example: "tty1 tty2"
# "" for tty's 1-6
#
KBD_TTY=""

# The YaST-internal identifier of the attached keyboard.
#
YAST_KEYBOARD="german-deadkey,pc104"


This is what I setup manually:

localectl --no-convert set-locale de-latin1
localectl --no-convert set-x11-keymap de-latin1 pc104 de terminate:ctrl_alt_bksp
mkinitrd
Comment 1 Steffen Winterfeldt 2018-04-04 08:51:11 UTC
But t his is a localectl issue, then.
Comment 2 Alexander Nolting 2018-04-04 09:10:03 UTC
Hi Steffen,

I'm not familiar how Yast Keyboard settings aqre configured. Probably it use localectl as well, probably it does it's own thing. And if localectl is used my way (config+mkinitrd) it should result in a working configuration which also survives a reboot. Actually it simply does not work.

So, saying it's a localectl issue then is not really helpful and indicates me that you don't wnat spend time on this.
Am I correct?
Alex
Comment 3 Franck Bui 2018-04-04 10:12:45 UTC
Hi Alexander,

Could you show the content of /etc/vconsole.conf ?
Comment 4 Franck Bui 2018-04-04 10:13:40 UTC
(In reply to Alexander Nolting from comment #0)
> This is what I setup manually:
> 
> localectl --no-convert set-locale de-latin1
> localectl --no-convert set-x11-keymap de-latin1 pc104 de

These 2 commands are not supposed to configure the keyboard layout used by the virtual consoles.
Comment 5 Alexander Nolting 2018-04-05 12:50:49 UTC
Hi Franck,

here the output from /etc/vconsole

anolting@localhost:~> cat /etc/vconsole.conf 
FONT=eurlatgr.psfu
FONT_MAP=none
KEYMAP=de
anolting@localhost:~>

Please note, that I don´t want to setup specific settings in KDE use Systemsettings. In my opinion seetting up the keyboard in YasT should be enough for both WM/DE and console (vconsole/tty)

Thanks
Alex
Comment 6 Alexander Nolting 2018-04-05 13:01:09 UTC
Hello Franck,

by the way: before I opened this ticket, I investigated into the vconsole service not starting issue (can be found here: Bug 1055834 [FAILED] Failed to start Setup Virtual Console - https://bugzilla.opensuse.org/show_bug.cgi?id=1055834) as I´m having the same issue.

And after aas I digged into this I learned that systemd-vconsole-setup.service, systemd-vconsole-setup is invoked by systemd-localed.service, systemd-localed after setting up the system locale settings, as well as the console key mapping and default X11 key mapping using localectl.

I probably missed some configuration for vconsole but I´m prety sure if you use systemd/localed then thats the way to configure the system locale and keyboard  settings.

Please correct me and point to the right documentation if I´m wrong.
Thanks
Alex
Comment 7 Alexander Nolting 2018-04-05 13:59:30 UTC
Hi Franck,

It looks like that I have missed to set up the keymap using

localectl set-keymap --no-covnert keymap LANG=de_DE.utf8

followed by a mkinitrd.

Now I have a working vconsole. But KDE is still using nodeadkeys.

I used both XkbVariant=de and XkbVarain=basic.

Here my /etc/X11.xorg.conf.d/00-keyboard.conf:

localhost:/home/anolting # cat /etc/X11/xorg.conf.d/00-keyboard.conf 
# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# instruct systemd-localed to update it.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "de-latin1"
        Option "XkbModel" "pc104"
        Option "XkbVariant" "de"
EndSection

Thanks
Alex
Comment 8 Franck Bui 2018-04-09 11:29:25 UTC
Hello Alexander,

(In reply to Alexander Nolting from comment #6)
> 
> I probably missed some configuration for vconsole but I´m prety sure if you
> use systemd/localed then thats the way to configure the system locale and
> keyboard  settings.

That's correct, however please note that the system-wide settings are used by systemd and every services it starts.

But these can be overridden by the DE once the user logs in.
Comment 9 Franck Bui 2018-04-09 11:35:00 UTC
(In reply to Alexander Nolting from comment #7)
> Now I have a working vconsole.

Ok.

>  But KDE is still using nodeadkeys.
> 
> I used both XkbVariant=de and XkbVarain=basic.
> 
> Here my /etc/X11.xorg.conf.d/00-keyboard.conf:
> 
> localhost:/home/anolting # cat /etc/X11/xorg.conf.d/00-keyboard.conf 
> # Written by systemd-localed(8), read by systemd-localed and Xorg. It's
> # probably wise not to edit this file manually. Use localectl(1) to
> # instruct systemd-localed to update it.
> Section "InputClass"
>         Identifier "system-keyboard"
>         MatchIsKeyboard "on"
>         Option "XkbLayout" "de-latin1"
>         Option "XkbModel" "pc104"
>         Option "XkbVariant" "de"
> EndSection
> 

The content of /etc/X11/xorg.conf.d/00-keyboard.conf looks correct, so it's probably overridden (or ignored) by your DE once you log in.

As far as systemd is concerned, it seems that everything is OK.

I don't know if yast is supposed to also manage the settings used by the DE, I'm re-assigning this back to Steffen Winterfeldt in the hope that he'll clarify this.
Comment 10 Alexander Nolting 2018-04-09 16:04:07 UTC
Hello Franck,

the answers are not really satisfying me for several reasons:

1. You missed the issue which caused to open this bug report: the Yast2 Keyboard Module is not working properly. It does not manipulate the reuqired files properly.

2. MY DE is packaged and maintained by SuSE. If KDE is not configuring my Keyboard the way I want to have it configured in Yast2 and also not if I manually configure it using localectl, then there might be another issue found. It seems to me as the movement to localed requires more QA and testing.

3. It is (at the moment) not documented if and if so, how to configure locales system wide using any other option than Yast2. This includes also a lack of documentation of how SuSE has integrated systemd/localed/networkd etc... -> files used, tools used, configuration options supported and so on.

4. I still does not know (and it seems also not documented in SDB) from and to which location KDE does read/write it´s keyboard settings. I personally does all the home admin work for laptops of my family and I really appreciate the idea of having a configuration system like Yast as this much more clean and easier to use compared to KDE's systemsettings.

Can you please help me with that issues?

Regards
Alex
Comment 11 Franck Bui 2018-04-10 07:33:28 UTC
(In reply to Alexander Nolting from comment #10)
> Hello Franck,
> 
> the answers are not really satisfying me for several reasons:

Just to make it clear, I didn't say that there's no issue here, I just said that as far as systemd is concerned, every things look OK and the settings used by the system are updated correctly (both /etc/vconsole.conf and /etc/X11/xorg.conf.d/00-keyboard.conf).

To make it clear, the system settings are the ones used by PID1 and all services it spawns (for example it includes the locale used by all daemons to log messages in the journal).

Again if your DM/DE chooses to override these settings because you explicitly configure them through some menus then the behavior you're seeing is expected I would say.

However if you haven't done any changes in your DM/DE settings, then that probably means that they *always* overwrite the default (system) settings which might be your problem (especially if the settings are not taking effects after a reboot).

But currently I don't see any prob in neither systemd nor yast2, unless the yast2 is supposed to configure the settings of all supported DE, but I doubt it.
Comment 12 Alexander Nolting 2018-04-10 10:51:00 UTC
(In reply to Franck Bui from comment #11)
> (In reply to Alexander Nolting from comment #10)
> > Hello Franck,
> > 
> > the answers are not really satisfying me for several reasons:
> 
> Just to make it clear, I didn't say that there's no issue here, I just said
> that as far as systemd is concerned, every things look OK and the settings
> used by the system are updated correctly (both /etc/vconsole.conf and
> /etc/X11/xorg.conf.d/00-keyboard.conf).
> 
> To make it clear, the system settings are the ones used by PID1 and all
> services it spawns (for example it includes the locale used by all daemons
> to log messages in the journal).
> 
> Again if your DM/DE chooses to override these settings because you
> explicitly configure them through some menus then the behavior you're seeing
> is expected I would say.
> 
> However if you haven't done any changes in your DM/DE settings, then that
> probably means that they *always* overwrite the default (system) settings
> which might be your problem (especially if the settings are not taking
> effects after a reboot).
> 
> But currently I don't see any prob in neither systemd nor yast2, unless the
> yast2 is supposed to configure the settings of all supported DE, but I doubt
> it.

Hello Franck,

let me clarify also something:
I said all the time I want to have set my locales and Keyboard settings system-wide using Yast2. I mentioned also that I don't want and have configured KDE keyboard and locale behavior using KDE's systemsettings.

I have never said that systemd, localed has a problem. I said and mentioned that I've got vconsole managed by localed the way I want to have it, but I said also that YaST2 keyboard module wont do this job properly.

I also said that I don't know much about the internals of Yast and this includes also the answer to the question (at least you came also to this conclusion) if YaST is intended to setup the locales and keyboard behavior system-wide. And system-wide includes IMHO also the setup for any DE.

And last all the information about localectl I played with and the results I got were only to help you to figure out what may go wrong with Yast. I'm not here to blame you or any other working on this ticket. But IMHO support is not only to help the customer - one of its main function is to figure out if there is are misunderstanding or interpretation of how a product is designed and should work.

So if you cant answer this question and also not Steffen, please forward this issue to the appropriate person or group which is able to determine what the purpose and targets of YaST are.

Best Alex
Comment 13 Stefan Hundhammer 2018-04-11 09:27:50 UTC
Please also note that KDE sometimes also does keyboard remapping on top of what the system does; there is a KDE applet where you can switch between different keyboard layouts, including activating/deactivating the deadkeys. Please also check if this is possibly active and maybe overrides the system settings.
Comment 14 Alexander Nolting 2018-04-11 10:22:11 UTC
(In reply to Stefan Hundhammer from comment #13)
> Please also note that KDE sometimes also does keyboard remapping on top of
> what the system does; there is a KDE applet where you can switch between
> different keyboard layouts, including activating/deactivating the deadkeys.
> Please also check if this is possibly active and maybe overrides the system
> settings.

Hi Stefan,
I know this. But this is not the question or the case here and if so, then it may be another issue.

In this specific case we are at a point where we had figured out that it is important to make clear what YaST will provide. Afterwards we can get back to the originally problem report and decide if this is a bug, there is lack of documentation or there is some misunderstanding. 

Best Alex
Comment 15 Steffen Winterfeldt 2018-04-24 12:06:32 UTC
The starting point for all keyboard configs is /etc/vconsole.conf.

So, can you run yast's keyboard module, set the layout you'd like, and check /etc/vconsole.conf afterwards. Does it have the correct content? *If not*, please attach yast logs.

To do this run 'save_y2logs' and attach the log file archive this command
creates.
Comment 16 Stefan Hundhammer 2018-06-06 14:07:57 UTC
Alex, any news on this? See questions in comment #15.
Comment 17 Stefan Hundhammer 2018-06-20 09:37:00 UTC
Still waiting for feedback (see comment #15)
Comment 18 Josef Reidinger 2018-08-16 08:58:53 UTC
no response more then month