Bug 107877

Summary: keyboard is not switched when using several screens
Product: [Unmaintained] kxkb Reporter: mi+kde
Component: generalAssignee: Andriy Rysin <arysin>
Status: RESOLVED INTENTIONAL    
Severity: normal CC: svarog
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: FreeBSD   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description mi+kde 2005-06-21 22:39:31 UTC
Version:           �צ�� (using KDE 3.3.2, compiled sources)
Compiler:          gcc version 3.4.2 [FreeBSD] 20040728
OS:                FreeBSD (i386) release 5.4-STABLE

I'm using three different _distinct_ (non-Xinerama) screens: :0.0, :0.1, and :0.2

kxkb is configured to "per program" switching (Options->Switching Rules), so that I can type instant messages in Ukrainian (in Kopete) and C-programs in ASCII (in gvim) without switching keyboards.

However, when I switch the keyboard from the default US-English to Ukrainian for a program on screen :0.1, it stays in Ukrainian for all programs on screen :0.1 and :0.2 switching back to US-English only for programs running on screen :0.0
Comment 1 Andriy Rysin 2006-03-03 05:00:00 UTC
could you please provide more info on how your X is configured and how you switch between screens if this is still a problem?
Comment 2 mi+kde 2006-03-03 05:36:35 UTC
Yes, it is still a problem. To reproduce, configure your X-server to NOT use Xinerama. Then, instead of a single screen (:0.0), you'll have several (:0.0, :0.1 ...).

The the keyboard-switcher (kxkb) will run on only one of them (:0.0). Then you'll notice all sorts of oddities...
Comment 3 Andriy Rysin 2006-03-03 05:41:06 UTC
my X does not use Xinerama but it also does not use multiple screens :)
Could you please paste or attach relevant part of X configuration and tell which X version you´re using?
Comment 4 mi+kde 2006-03-03 05:55:00 UTC
Andriju, you need at least two monitors to reproduce the bug. The problem is reproducible with anything I tried -- recent versions of XFree86 and Xorg.

My home setup has two identical monitors, so I use Xinerama here and have no problems. At work, however, the monitors are different and I chose to use separate screens. That's where I have the problem. This is the "ServerLayout" section from my work computer:

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Middle" 0 0
        Screen      1  "Left" LeftOf "Middle"
        Screen      2  "Right" RightOf "Middle"
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        Option      "Clone" "off"
EndSection

Yours,

     -mi
Comment 5 Andriy Rysin 2006-03-04 21:58:36 UTC
Ok, I can confirm it.
It seems like the problem is that there's separate kwin for each screen and kxkb does get notification on window change only from the first one.
Will try to take a look if there's a way to get notifications from all window managers.
Comment 6 Andriy Rysin 2006-06-05 15:09:17 UTC
As per my talk with core guys KDE does NOT support separate screens without Xinerama. There's a workaround to start separate kwin processs for each screen to allow people to manage their windows but because of that there's no way kxkb can track window switch in screens other than 0.
Unless better support for non-Xinerama screens will be added to KDE4 kxkb won't be able to support this scenario.
Comment 7 Andriy Rysin 2008-04-11 05:13:05 UTC
Seems like there's no change here in core KDE4. So kxkb won't be able to support non-Xinerama mutiple screens properly.