这仍然是开放的 - 我没有找到解决方案。我将给予解决这个问题的人新的赏金!
\n\xe2\x80\x94\xe2\x80\x94-
\n我有一个 HP 655 键盘,它有一些怪癖。其中之一是因为在退格键上方有一个键,当我键入它时,我总是不小心按下该键,它会打开所有内容 \xe2\x80\x9cSettings\xe2\x80\x9d。
\n\n这很烦人,所以我想重新映射它。即使设置已启动,也xev
不会报告关键活动事件,这表明这需要 xmodmap 以外的其他内容。 报告为 183。showkey
我应该如何处理这个问题?
\n我建议您尝试输入重新映射器软件。他们提供了一个用于映射按键的 GUI,它可以识别几乎所有按钮(甚至是我的鼠标中没有注册任何点击的额外按钮xbindkeys
)并显示在该应用程序中。
命令行:
\ninput-remapper
在 Ubuntu 存储库中可用,因此您可以通过打开终端并运行来安装:
sudo apt install input-remapper\n
Run Code Online (Sandbox Code Playgroud)\n但是,此存储库中的版本比当前版本稍落后。例如,Ubuntu 22.04(最新的 LTS)可用的版本是 1.4.0,而最新版本(在撰写本文时)是 2.0.1。要安装最新版本,根据项目的 README,运行以下命令(针对最新版本进行适当调整):
\nsudo apt install git python3-setuptools gettext\ngit clone https://github.com/sezanzeb/input-remapper.git\ncd input-remapper && ./scripts/build.sh\nsudo apt install -f ./dist/input-remapper-2.0.1.deb\n
Run Code Online (Sandbox Code Playgroud)\n注意:输入重新映射器 \xe2\x89\xa5 2.0 至少需要 Ubuntu 22.04。
\n图形用户界面:
\n您可以在 Ubuntu 上的软件中心(或应用程序中心)中找到该软件。
\n\n在 GUI 中,软件将列出连接到您 PC 的所有设备,如下所示:
\n\n\n在上图中,您必须添加:
\n另外,不要忘记将此软件添加到启动应用程序并启用“自动加载”选项,以便在您登录系统后它会自动映射密钥。
\n\n您可以使用keyd。它是一个关键的重新映射工具。
要安装它,请一一运行以下命令。
sudo apt install build-essential
git clone https://github.com/rvaiya/keyd
cd keyd
make && sudo make install
sudo systemctl enable keyd && sudo systemctl start keyd
Run Code Online (Sandbox Code Playgroud)
首先,运行sudo keyd monitor
并按下您尝试重命名的键以了解其名称。我会称之为name_of_the_key_you_found
/etc/keyd/default.conf
然后,创建包含以下内容的文件。
[ids]
0001:0001
[main]
name_of_the_key_you_found = backspace
Run Code Online (Sandbox Code Playgroud)
最后,运行命令sudo keyd reload
以使更改生效。
在 Wayland 上,xmodmap
似乎不再有效,但XKB是......这是我刚刚在我的系统上所做的:
/usr/share/X11/xkb/
首先,我在(定义键盘数据的位置)下的文件中搜索了键盘麦克风静音键的名称,即XF86AudioMicMute
(这些多媒体键有名称,请参阅下面的其他链接答案),如下所示:
$ grep -r -i 'XF86AudioMicMute' /usr/share/X11/xkb/
/usr/share/X11/xkb/symbols/inet: key <FK20> { [ XF86AudioMicMute ] };
/usr/share/X11/xkb/symbols/inet: key <I256> { [ XF86AudioMicMute ] }; // KEY_MICMUTE
Run Code Online (Sandbox Code Playgroud)
...显示文件中的两行/usr/share/X11/xkb/symbols/inet
,然后我像这样编辑该文件:
sudo gedit /usr/share/X11/xkb/symbols/inet
Run Code Online (Sandbox Code Playgroud)
...然后,注释掉上面的两行并复制其下面的每一行,将它们更改为如下所示:
# key <FK20> { [ XF86AudioMicMute ] };
key <FK20> { [ BackSpace ] }; // KEY_MICMUTE_REMAPED
...
# key <I256> { [ XF86AudioMicMute ] }; // KEY_MICMUTE
key <I256> { [ BackSpace ] }; // KEY_MICMUTE_REMAPED
Run Code Online (Sandbox Code Playgroud)
...不理会其余的其他行...然后,保存文件并注销用户当前的桌面会话,然后再次登录...并且,瞧,我的麦克风静音键现在重新映射为BackSpace 键。
如果您想了解有关多媒体键的更多信息,请参阅我的其他(旧)答案。
值得注意的是,您可以进一步限制感兴趣的文件,/usr/share/X11/xkb
以修改当前活动键盘的当前活动布局中的任何键,setxkbmap
如下所示:
setxkbmap -print -verbose 10
Run Code Online (Sandbox Code Playgroud)
...它给出这样的输出:
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules: evdev
model: pc105
layout: us
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete
symbols: pc+us+inet(evdev)
geometry: pc(pc105)
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)" };
xkb_geometry { include "pc(pc105)" };
};
Run Code Online (Sandbox Code Playgroud)
...其中每个include
部分旁边的每个例如xkb_symbols
指的是该部分的相关文件名,例如 pc
,us
和inet
。
归档时间: |
|
查看次数: |
638 次 |
最近记录: |