You are not logged in.

#1 2021-10-21 00:53:31

jdevelop
Member
Registered: 2014-04-18
Posts: 48

Arch + KVM = wrong layout after switching over [ SOLVED ]

I've got KVM to manage two laptops ( Arch + Mac ) with one keyboard. So far everything works fine if I start Xorg with the external keyboard active for Arch - it is recognized just fine and works okay.
Then once I switch over to Mac and then back to Arch - the Windows key and arrow keys on the external keyboard are not working. I have to restart X in order to fix that.

I couldn't find anything suspicious in .local/share/Xorg.0.log - looks like it recognizes the keyboard just fine initially and after I switch from Mac to Arch.

The laptop keyboard works fine all the time.

I don't have any specific settings related to the keyboard anywhere in /etc/xorg/conf.d/*

How can I troubleshoot this issue?

Last edited by jdevelop (2021-10-21 15:34:16)

Offline

#2 2021-10-21 07:49:21

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 15,332

Re: Arch + KVM = wrong layout after switching over [ SOLVED ]

For clarity : this is about a Keyboard Video Monitor switch, not a virtual machine ?

What brand and model is the KVM-switch ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#3 2021-10-21 13:21:43

jdevelop
Member
Registered: 2014-04-18
Posts: 48

Re: Arch + KVM = wrong layout after switching over [ SOLVED ]

Right, this is for KVM device. And I openly think it has nothing to do with the issue - if I plug the keyboard to the Arch laptop directly - exactly the same thing happens:

- kill X
- plug in the USB keyboard
- start X
- the keyboard works fine, all keys are recognized
- unplug the USB keyboard
- plug in USB the USB keyboard
- arrow keys don't work.

I see no changes in

> setxkbmap -print                    
xkb_keymap {
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete+ledscroll(group_lock)"        };
        xkb_symbols   { include "pc+us+inet(pc105)+ru(ruu):2+capslock(grouplock)"       };
        xkb_geometry  { include "pc(pc105)"     };
};

Some output from xev:

- external USB keyboard:

KeyPress event, serial 39, synthetic NO, window 0x2600001,                                                                                                                                                
    root 0x7af, subw 0x0, time 533147, (244,1024), root:(2172,1112),                                                                                                                                      
    state 0x0, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,                                                                                                                                       
    XLookupString gives 0 bytes:                                                                                                                                                                          
    XmbLookupString gives 0 bytes:                                                                                                                                                                        
    XFilterEvent returns: False                                                                                                                                                                           
                                                                                                                                                                                                          
KeyRelease event, serial 39, synthetic NO, window 0x2600001,                                                                                                                                              
    root 0x7af, subw 0x0, time 533266, (244,1024), root:(2172,1112),                                                                                                                                      
    state 0x8, keycode 113 (keysym 0xffea, Alt_R), same_screen YES,                                                                                                                                       
    XLookupString gives 0 bytes:                                                                                                                                                                          
    XFilterEvent returns: False                                                                                                                                                                           
                                                                                                                                                                                                          
KeyPress event, serial 39, synthetic NO, window 0x2600001,                                                                                                                                                
    root 0x7af, subw 0x0, time 534387, (244,1024), root:(2172,1112),                                                                                                                                      
    state 0x0, keycode 114 (keysym 0x0, NoSymbol), same_screen YES,                                                                                                                                       
    XLookupString gives 0 bytes:                                                                                                                                                                          
    XmbLookupString gives 0 bytes:                                                                                                                                                                        
    XFilterEvent returns: False                                                                                                                                                                           
                                                                                                                                                                                                          
KeyRelease event, serial 39, synthetic NO, window 0x2600001,                                                                                                                                              
    root 0x7af, subw 0x0, time 534490, (244,1024), root:(2172,1112),                                                                                                                                      
    state 0x0, keycode 114 (keysym 0x0, NoSymbol), same_screen YES,                                                                                                                                       
    XLookupString gives 0 bytes:                                                                                                                                                                          
    XFilterEvent returns: False             

From the laptop one:

KeyPress event, serial 39, synthetic NO, window 0x2600001,                                                                                                                                                
    root 0x7af, subw 0x0, time 536175, (244,1024), root:(2172,1112),                                                                                                                                      
    state 0x0, keycode 113 (keysym 0xff51, Left), same_screen YES,                                                                                                                                        
    XLookupString gives 0 bytes:                                                                                                                                                                          
    XmbLookupString gives 0 bytes:                                                                                                                                                                        
    XFilterEvent returns: False                                                                                                                                                                           
                                                                                                                                                                                                          
KeyRelease event, serial 40, synthetic NO, window 0x2600001,                                                                                                                                              
    root 0x7af, subw 0x0, time 536269, (244,1024), root:(2172,1112),                                                                                                                                      
    state 0x0, keycode 113 (keysym 0xff51, Left), same_screen YES,                                                                                                                                        
    XLookupString gives 0 bytes:                                                                                                                                                                          
    XFilterEvent returns: False                                                                                                                                                                           
                                                                                                     
KeyPress event, serial 40, synthetic NO, window 0x2600001,                                           
    root 0x7af, subw 0x0, time 536724, (244,1024), root:(2172,1112),                                 
    state 0x0, keycode 114 (keysym 0xff53, Right), same_screen YES,                                  
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x2600001,                                         
    root 0x7af, subw 0x0, time 536827, (244,1024), root:(2172,1112),                                 
    state 0x0, keycode 114 (keysym 0xff53, Right), same_screen YES,                                  
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

As you can see - the keycodes are the same ( 113 and 114 ) - but the keysyms are different.

I wonder what could be wrong here, but evidently the issue is not related to the hardware.

Offline

#4 2021-10-21 15:38:18

jdevelop
Member
Registered: 2014-04-18
Posts: 48

Re: Arch + KVM = wrong layout after switching over [ SOLVED ]

I was able to fix this by using evdev input driver instead of xorg / xfree86 in /etc/X11/xorg.conf.d/01-keyboard-layout.conf:

Section "InputClass"
    Identifier     "Keyboard Defaults"
    MatchIsKeyboard "yes"
    Option         "AutoRepeat" "500 30"
    Option         "XkbRules" "evdev"
    Option         "XkbLayout" "us,ru"
    Option         "XkbVariant" ",ruu"
    Option         "XkbOptions" "grp:caps_toggle,grp_led:scroll"
EndSection

So now in

setxkbmap -print

it lists as evdev+aliases

xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete+ledscroll(group_lock)"	};
	xkb_symbols   { include "pc+us+ru(ruu):2+inet(evdev)+capslock(grouplock)"	};
	xkb_geometry  { include "pc(pc105)"	};
};

Offline

#5 2021-10-22 13:49:15

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 15,332

Re: Arch + KVM = wrong layout after switching over [ SOLVED ]

That suggests your keyboard works better with evdev then with the (default) libinput driver.

You may find https://wiki.archlinux.org/title/Xorg#Input_devices interesting/useful .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

Board footer

Powered by FluxBB