重新映射左控制在 xkb 中更改 Alt + Left Shift 的行为

重新映射左控制在 xkb 中更改 Alt + Left Shift 的行为

<MENU>由于某种原因,同时按任意 alt 键(包括)<LFSH>会切换“切换应用程序窗口”。这可以通过注释掉来关闭

 key <LCTL> { [    Tab,      Tab,       Tab,         Tab  ] };

在我的 xkb 布局文件中。但是,我想继续将左控件重新映射<LCTL>Tab.我怎样才能做到这一点而不引起上述行为?

我正在使用 Fedora 20 和 kernel 3.14.7-200.fc20.i686

中对应的条目/usr/share/X11/xkb/symbols/us

partial alphanumeric_keys
xkb_symbols "workman-d" {

    name[Group1]= "English (Workman special)";

    include "us(workman)"

    key <TLDE> { [ grave, asciitilde,        degree,           degree ] };
    key <AE03> { [     3, numbersign,       section,          section ] };

    key <TAB> { [    BackSpace,       BackSpace,       BackSpace,        BackSpace ] };
    key <AD01> { [     q,          Q,            at,               at ] };
    key <AD08> { [     u,          U,    udiaeresis,       Udiaeresis ] };

    key <CAPS> { [    Control_L,       Control_L,       Control_L,        Control_L ] };
    key <AC01> { [     a,          A,    adiaeresis,       Adiaeresis ] };
    key <AC02> { [     s,          S,        ssharp,           ssharp ] };
    key <AC08> { [     e,          E,      EuroSign,         EuroSign ] };
    key <AC09> { [     o,          O,    odiaeresis,       Odiaeresis ] };

    key <AB04> { [     c,          C,          cent,        copyright ] };

    key <LCTL> { [    Tab,   Tab,       Tab,         Tab  ] };
    key <LFSH> { [ Shift_L,     Shift_L,      Shift_L,        Shift_L ] };
    key <MENU> { [ Alt_R,      Alt_R,         Alt_R,            Alt_R ] };

};

xev 输出为

  • keycode 64 (keysym 0xffe9, Alt_L)按左 Alt 键
  • keycode 50 (keysym 0xffe1, Shift_L)按左移键
  • FocusOut event, serial 36, synthetic NO, window 0x2a00001, mode NotifyGrab, detail NotifyAncestor按左 Alt + 左 Shift 键

相关内容