Bug 104828 - Wish (improving kxkb); Better keyboard layout switch configuration dialog
Summary: Wish (improving kxkb); Better keyboard layout switch configuration dialog
Status: RESOLVED FIXED
Alias: None
Product: kxkb
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR wishlist
Target Milestone: ---
Assignee: Andriy Rysin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-04-30 15:10 UTC by Radostin Radnev
Modified: 2006-02-15 14:37 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Radostin Radnev 2005-04-30 15:10:44 UTC
Version:           All version since 3.0 (using KDE KDE 3.4.0)
Installed from:    Debian testing/unstable Packages
OS:                Linux

Hi,

I posted this a couple of months ago to KDE usability list. Now I post it here as wish.

I have some feature request or usability improvements. They are related only to one area - Keyboard Layout (switching between different keyboard layouts).

Switching between different keyboard layouts is extremely essential feature for non Latin users. My native language uses Cyrillic. I will explain.

You are going to write a letter. You have to write e-mail address in Latin, but letter itself in Cyrillic.

You are going to write web page. You have to write HTML tags in Latin, but content in Cyrillic.

You are going to write program for local users only. You have to write Source code in Latin, but messages and dialogs in Cyrillic.

So you have to switch between different keyboard layouts extremely often. So it has to be very easy and comfortable.

I guess users that use other non Latin script have similar problems. But I will comment only Cyrillic as I have experience only with it.


Here are one of the most asked question about KDE in Bulgarian forums. Also it is often asked in Russian forums (as far as I see).

Q: How can I switch to Cyrillic?
A: Alt+Ctrl+K

Q: How can I change it?
A: Go to Control Center / Regionall && Accessibility / Keyboard Shortcuts / Shortcut Schemes / Global Shortcuts. Then scroll to the end. It is the last position.

Q: Damn. Why I cannot select Ctrl+Shift or Alt+Shift?
A: I don't know. Write a feature request to KDE Developers.

Q: Why Copy and Paste (Ctrl+C, Ctrl+V) doesn't work when I am in Bulgarian layout?
A: Open configuration dialog. Select Bulgarian layout. In the right down corner there is a checkbox "Include latin layout". Make sure that it is checked on.


What does this dialog show?

1. Most beginners find out how to add another keyboard layout.
2. Most beginners cannot find out a shortcut. Neither how to find it, nor how to change it.
3. Most beginners are not happy that cannot select Ctrl+Shift or Alt+Shift.
4. Most beginners cannot find out (understand) option "Include latin layout".


Here are a list of suggestions. They are based on KDE 3.3.

1. Configuration Dialog should contain way to change shortcut. Every program has menu item "Configure Shortcuts...", but Keyboard layout dialog has not. Logical place is the tab "Switching Options". There is enough place at the bottom to place widget to change shortcut.

2. Ctrl+Shift and Alt+Shift should be allowed. May be only for Keyboard layout, not for other shortcuts. I don't know what is a reason to block these combinations. They were included in KDE 2.x. May be there are a serious reason behind blocking, but all users that use Cyrillic, use one of these combinations to switch since DOS, then Win 3.x, then Win 9x and now Win XP. It is very difficult to explain to users that move from Win to Linux that they cannot use Ctrl+Shift or Alt+Shift for switching between keyboard layouts. Another idea is to have predefined list of shortcuts. So users can
select from it. If his/her combination is missing from the list then he/she can use normal widget to select a shortcut.

3. Redesign of dialog in the first tab "Layout". There is no other place where similar dialogs exist in KDE. My suggestion is to make it similar to other dialogs in KDE. So there should be only one list - Active Layouts and 5 buttons, placed on the right - Add, Edit, Remove, Move Up, Move Down. And that's all. When use press Add (or Edit) then another dialog will pop up, where user can select new layout to add. It will contain one combox (drop down list), list of variants (disabled if not applicable), checkbox "Include latin layout" and editbox "Command". Such kind of dialog is more natural and consistent with other dialogs found in KDE. Beginners will find out more easy what to do.

4. List of Active Layouts should allow to exist one layout with different variants. For example Russian layout has 4 variants. Bulgarian has 2 variants and they are quite different. Usually one user
uses only one variant. So it is OK, but in public terminals - schools, libraries, etc. where only anonymous login is allowed, different users may want to use different variants. And in this case it will be very nice feature to have listed one layout with couple of variants. So everybody will use whatever he/she prefer. For example dialog should list Keyboard layouts "Bulgarian (bds)" and "Bulgarian (phonetic)" as two different items. So far it is not possible to be done, because Bulgarian Keyboard layout disappears from list once it is moved from Available to Active. 


I think all non Latin users will benefit from these suggestions.



Best regards,
Radostin Radnev
Comment 1 Thiago Macieira 2005-04-30 21:17:15 UTC
The reason for #2 is that a shortcut consisting of modifier keys only is not allowed. We will not implement that. The last time we tried -- the Win key to open the K Menu -- was a disaster and was removed from KDE 3.4.
Comment 2 Hagai Kariti 2005-08-21 12:11:24 UTC
I like these suggestions (as a Hebrew use), espicially the one about keyboard shortcuts.. I've been trying to get it to work in non-latin layouts for some time now, I think is should be the default when you select a non-latin layout.
About #2, why don't we use the normal X's (x)xkb? Gnome uses it and it works very well, and it allows also to light the scroll lock or some other led when you switch layouts, which is pretty useful if you don't want to look at the screen and check which layout you're in. xkb also supports alt-shift and all, so that way we could make the "forbidden" shortcuts just for keyboard layouts.
I dunno how the 'include latin layout' will work there though..
Comment 3 Ely 2005-10-14 14:31:58 UTC
about number #3, in kde 3.4 I see there is an option to chose xkb modifiers so I can actually chose alt-shift from there.
The problem is that it doesn't do anything in hebrew (it seems to work in other langauges)
So maybe it's a bug in some langauges?
Comment 4 Andriy Rysin 2006-02-15 14:37:30 UTC
SVN commit 509665 by rysin:

- refactoring kxkb sources to more modular structure
- reintroducing feature to allow switching same layouts with different variants
- fixing couple of small problems (like X calls resulting in BadWindow error)
- optimizing caching of precompiled layouts (no reopening the file - just rewinding)
	better optimization could be done by caching in memory
GUI: add column 'Variant' in layout list, adding '<default>' to list of variants

BUG: 121520
BUG: 121409
BUG: 121284
BUG: 120037
BUG: 117468
BUG: 116619
BUG: 110811
BUG: 104828 (partially)



 M  +6 -3      Makefile.am  
 M  +173 -60   extension.cpp  
 M  +22 -16    extension.h  
 M  +355 -374  kcmlayout.cpp  
 M  +7 -33     kcmlayout.h  
 M  +28 -3     kcmlayoutwidget.ui  
 M  +31 -0     kcmmisc.cpp  
 M  +2 -0      kcmmisc.h  
 M  +201 -443  kxkb.cpp  
 M  +26 -130   kxkb.h  
 A             kxkbconfig.cpp   [License: UNKNOWN]
 A             kxkbconfig.h   [License: UNKNOWN]
 A             kxkbtraywindow.cpp   [License: UNKNOWN]
 A             kxkbtraywindow.h   [License: UNKNOWN]
 A             layoutmap.cpp   [License: UNKNOWN]
 A             layoutmap.h   [License: UNKNOWN]
 M  +71 -279   rules.cpp  
 M  +10 -18    rules.h  
 A             x11helper.cpp   [License: no copyright]
 A             x11helper.h   [License: no copyright]