Bug 164274 - allow users to create sets: layout and model
Summary: allow users to create sets: layout and model
Status: RESOLVED INTENTIONAL
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_keyboard_layout (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR wishlist
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-17 12:49 UTC by Maciej Pilichowski
Modified: 2011-10-01 00:04 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Maciej Pilichowski 2008-06-17 12:49:20 UTC
Version:            (using KDE 4.0.82)
Installed from:    KDE4Daily

allow users to create sets: layout and model

This is important for people with several keyboards, most usually -- laptop users, one built-in keyboard and another external, probably richer.

Where is the problem: currently KDE assumes that the user only wants to switch layouts, but for the same model of keyboard. For years it is not true -- user could like to keep the layout but change the model. Or change both.

Thus please provide way to combine those two to create sets: layout and model. Systray applet should also show the model because in this case it would be important. Of course let the user name the set as she/he wants.

USECASE:
Angeline owns small laptop with keys narrowed to minimum. Thus there is only one alt, only one ctrl, and so on. It is ok when she is on the run, but when she is at home she dock her laptop and uses external keyboard -- Logitech G11 with 18 more keys and of course full set of basic keys. Angeline would like to make easy change in KDE to get all features from the external keyboard, by simply clicking the keyboard systray applet and choosing item labeled "Home: En (G11)".
Comment 1 Georg Greve 2009-02-09 16:34:31 UTC
Running KDE 4.2, still not able to set different layouts.

Would have reported this issue if it did not already exist. Due to the severe impact on usability of this issue (e.g. for me this means I do not have the "|" symbol available with my external keyboards) this one might also be considered a bug.

Any idea when there is a chance to fix this?
Comment 2 Andriy Rysin 2010-04-29 18:43:00 UTC
I don't think this is going to be fixed. At least not in keyboard configuration module. To create/edit layouts and models the totally new program is needed.

I am not sure the current status of this project but this is probably what you'd be looking for http://simos.info/blog/archives/747
Comment 3 Maciej Pilichowski 2010-04-30 20:33:41 UTC
Reopening because of the misunderstanding.

This report is NOT about creating keyboard layouts. This report is NOT about creating keyboard models.

This report is about free connecting models and layouts.

All pieces are already there, only now the model is one for all layouts. User cannot set "for this layout use model A" and "for that layout use model B". So no new program is needed. All it takes is adding an extra column next to layout to select the model for the layout.
Comment 4 Andriy Rysin 2010-05-12 03:44:06 UTC
Ok, so I think what you need is a model/layout set configuration per hardware keyboard. That makes sense but this is not very straightforward to implement, I guess that means that there should be an option to have a layout indicator for each keyboard...
Comment 5 Maciej Pilichowski 2010-05-12 16:54:06 UTC
It does not have to be per hardware, and I even doubt it is necessary. Hardware triggering change in layout could be useful (maybe).

For example I switch to Polish_ext and at the same time model is switched as well. It makes sense only on a given hardware, so this info is implicitly already included.
Comment 6 Andriy Rysin 2010-05-24 03:13:54 UTC
I am still a bit confused by what you're saying. From your earlier use case I saw this: two physical keyboards with different set of keys, which means that each keyboard needs to have its own keyboard model set.

Currently setxkbmap allows to specify keyboard models (as well as layout set and xkb options per keyboard) and keyboard daemon can detect when new keyboard is hotplugged. Thus it should be possible to specify different configuration for each hardware keyboard and user does not have to switch it manually as keyboard daemon can detect new hardware and configure it appropriately.

This seems to be awfully close to 177889.
Comment 7 Maciej Pilichowski 2010-05-24 20:20:44 UTC
> I am still a bit confused by what you're saying. From
> your earlier use case I saw this: two physical keyboards with
> different set of keys, which means that each keyboard needs to have
> its own keyboard model set.

One of the cases, yes. One note -- not needed, but useful because of productivity.

> Currently setxkbmap allows to specify keyboard models (as well as
> layout set and xkb options per keyboard) and keyboard daemon can
> detect when new keyboard is hotplugged. 

Again, it is one of the case. Another is two keyboards are plugged in at the same time.

> Thus it should be possible 
> to specify different configuration for each hardware keyboard and
> user does not have to switch it manually as keyboard daemon can
> detect new hardware and configure it appropriately.

Ok, but user could ALSO want to switch it manually. I don't want to unplug the keyboard just to write in Russian (for example).

Btw. I edit keyboards so heavily that it is impossible for me to set all the keys in layout (for example caps acting as alt) so I have to edit model too. And then layout work the best only with connection with given model. 

https://bugs.kde.org/show_bug.cgi?id=177889

No. One thing is creating sets (layout+model), and another thing is adding feature for _automatic_ switch. This report says nothing about automating switches, detecting keyboard, and so on. It only says, user should be able to switch it. Anything above is a nice bonus.
Comment 8 Andriy Rysin 2010-05-24 22:15:02 UTC
Well, I was struggling a bit with the need for such manual switch model/layout and I guess your comment about "I edit keyboards so heavily..." explains it but I don't think too many users are in this "heavy keyboard editing" so I am not sure adding this complication to the configuration UI (which already gets pretty heavy) is worth it.

I'd suggest to use global shortcuts configuration and just have something like "setxkbmap -model pc104 -layout us" command on one and "setxkmap -model logitech -layout pl" on another.

Keyboard indicator (especially in coming 4.5) should be able to display current layout property in this case so this functionality won't be lost.
Comment 9 Maciej Pilichowski 2010-05-25 17:14:59 UTC
> "I edit keyboards so heavily..." explains it but
> I don't think too many users are in this "heavy keyboard editing" 

That's the point -- they should use what guys like me prepared, but now for average Joe Doe using several sets is too difficult. Actually even for me is too troublesome so I ended up using "common divisor".

> I'd suggest to use global shortcuts configuration and just have something
> like "setxkbmap -model pc104 -layout us" command on one and "setxkmap -model
> logitech -layout pl" on another.

My comment is off-topic a bit, but shows as an example how crazy keyboard settings are. For opensuse, till 11.3 switching model would kill such settings, so you would have to apply them manually each time killing the point of having shortcut ;-)
Comment 10 Andriy Rysin 2011-01-24 05:02:52 UTC
This will complicate the functionality and UI of keyboard layout switcher in KDE while won't be useful to many users so this won't be implemented. This functionality though can be achieved by assigning some shortcuts to setxkbmap commands as described in comment #8 and using keyboard layout module in the indicator mode.
Comment 11 Georg Greve 2011-09-30 12:07:17 UTC
So you're saying that not many people use KDE on laptops which they put into docking stations or connect to a larger screen & keyboard at home? 

This would seem like a very common use case to me, to be honest.

Right now I always have to open a terminal and do 

"setxkbmap -model pc102 -layout de -variant de,nodeadkeys"

when connecting my regular keyboard, and

"setxkbmap -model thinkpad60 -layout ch,de,bg -variant de,nodeadkeys,phonetic"

whenever disconnecting my laptop from the monitor/keyboard.

While for power users it may be possible to use setxkbmap on the console, I am not sure KDE should rely on that for a pretty widely spread (and growing) use case.

So please reopen.
Comment 12 Andriy Rysin 2011-10-01 00:04:08 UTC
Georg, I was rising the suggestion about configuring layout/model per hardware keyboard (see comment #4) but Maciej pointed out that's it's not quite what he meant.

If you care about layout/model per keyboard you're probably more interested in this bug https://bugs.kde.org/show_bug.cgi?id=177889 (which is open but unfortunately most probably I would not have enough time in the nearest future to implement it)