首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么忽略一些setxkbmap选项?

为什么忽略一些setxkbmap选项?
EN

Stack Overflow用户
提问于 2014-10-30 19:32:17
回答 2查看 3.3K关注 0票数 2

在share/X11/xkb/rules/evdev/lst中,我发现了ctrl的这组选项

代码语言:javascript
复制
  ctrl                 Ctrl key position
  ctrl:nocaps          Caps Lock as Ctrl
  ctrl:lctrl_meta      Left Ctrl as Meta
  ctrl:swapcaps        Swap Ctrl and Caps Lock
  ctrl:ac_ctrl         At left of 'A'
  ctrl:aa_ctrl         At bottom left
  ctrl:rctrl_ralt      Right Ctrl as Right Alt
  ctrl:menu_rctrl      Menu as Right Ctrl
  ctrl:ctrl_ralt       Right Alt as Right Ctrl
  ctrl:swap_lalt_lctl  Swap Left Alt key with Left Ctrl key
  ctrl:swap_lwin_lctl  Swap Left Win key with Left Ctrl key
  ctrl:swap_lalt_lctl_lwin Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt

其中一些是有效的--如果我运行setxkbmap -option -option 'ctrl:nocaps',我就会得到正确的行为。但是,其他一些被忽略了,例如setxkbmap -option -option 'ctrl:swap_lalt_lctl_lwin'

我已经注意到,忽略的选项是由setxkbmap -query显示的,而不是由setxkbmap -print显示的。下面是这种行为的一个例子。

代码语言:javascript
复制
$ setxkbmap -option -option ctrl:nocaps
$ setxkbmap -query
rules:      evdev
model:      pc104
layout:     us
variant:    colemak
options:    ctrl:nocaps
$ setxkbmap -print
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us(colemak)+inet(evdev)+ctrl(nocaps)"   };
    xkb_geometry  { include "pc(pc104)" };
};
$ setxkbmap -option -option ctrl:swap_lalt_lctl_lwin
$ setxkbmap -query                                  
rules:      evdev
model:      pc104
layout:     us
variant:    colemak
options:    ctrl:swap_lalt_lctl_lwin
$ setxkbmap -print                                  
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us(colemak)+inet(evdev)"    };
    xkb_geometry  { include "pc(pc104)" };
};

我不知道如何更深入地研究这个问题。一些进一步的环境信息是

  • linux发行版是NixO
  • 窗口管理器是XMonad,显示管理器是SLiM,没有桌面管理器。
  • 键盘布局是colemak (如果切换到qwerty,问题仍然存在)
  • 根据手册页,setxkbmap版本为1.3.0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-30 20:16:58

这似乎是因为并非文件evdev.lst中列出的所有选项都位于相邻文件evdev中。我问了一个问题,为什么在why does the file evdev in /usr/share/X11/xkb/rules not match with evdev.lst?是这样的

票数 2
EN

Stack Overflow用户

发布于 2018-09-30 00:49:53

也许发生这种情况是因为某些选项似乎与其他选项不兼容。

例如,如果我设置shift键来解锁caps锁(-option shift:breaks_caps),同时设置alt-shift以在键盘布局之间切换,则shift不再解锁caps锁。一旦我将布局切换组合从alt-shift更改为alt,选项shift:breaks_caps就会重新激活。

在我看来是个虫子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26661743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档