首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将修饰符键与X上的字符键交换?

如何将修饰符键与X上的字符键交换?
EN

Unix & Linux用户
提问于 2018-08-08 05:55:00
回答 1查看 105关注 0票数 0

我正在尝试将我的left Windows-key与<>|-key交换。这在使用密钥映射文件的vterm上非常有效,该文件就是这样做的。但是,我不能让它在X上工作(在KDE和Mate上都试过了--两者都表现出相同的行为)

无论我是使用xmodmap还是使用xkb符号配置,结果都是一样的:<>|-key停止工作,left Windows-key仍然是该键,但当按下该键时还会发出<

使用xev,我确定了我的<>|-key有代码94,而我的left Windows-key有133,所以我尝试了如下:

代码语言:javascript
运行
复制
xmodmap -e "keycode 133 = less greater bar NoSymbol U0149 brokenbar U266A NoSymbol"
xmodmap -e "keycode 94 = Super_L"

我尝试过的xkb符号配置如下所示,其效果与上面描述的效果相同:

代码语言:javascript
运行
复制
partial alphanumeric_keys
xkb_symbols "defoo" {
  include "de(basic)"
  name[Group1] = "German (foo)";
  key <LWIN> { [ less, greater, bar, NoSymbol, U0149, brokenbar, U266A, NoSymbol ] };
  key <LSGT> { [ Super_L ] };
};

这次又是什么?我真的需要交换那些钥匙。

编辑:我在Ubuntu 18.04

编辑:尝试修改修改键以及。xmodmap -pm说我的超级密钥分配给mod4,所以:

代码语言:javascript
运行
复制
xmodmap -e "clear mod4"

但是,这并没有效果,即Windows键的操作与以前完全相同。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-08-08 10:13:45

为了避免这种情况,我最终将密钥代码文件中的键交换为evdev,这具有所需的效果。

专业:

  • 透明地处理任何布局和应用程序,因为它更改了键的事件代码。

Con:

  • 适用于所有evdev键盘
  • 应用于系统文件的更改(可能稍后会中断)

迪夫:

代码语言:javascript
运行
复制
$ diff /usr/share/X11/xkb/keycodes/evdev{,.bak}
8c8
<         <LWIN> = 94;
---
>         <LSGT> = 94;
74c74
<   <LSGT> = 133;
---
>   <LWIN> = 133;
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/461206

复制
相关文章

相似问题

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