Answers:
我一直在使用16.04,似乎使用sddm作为其桌面管理器。在此之前,它曾经是LightDM和GDM。据记录,它的两个前身都可以~/.Xmodmap
自动加载,但是我找不到任何明确指出sddm可以做到的东西。
因此,建议仅强制其使用新脚本加载。您只需要运行xmodmap ~/.Xmodmap
,就可以通过多种方式进行操作:
~/.xinitrc
运行它。.desktop
配置~/.config/autostart/
可能还有几十种其他方式来管理此问题,实质上是在做同样的事情。
~/.config/autostart
)进行添加的时间大约为一半。我现在已经重新启动了大约10次,并且已经执行了5次命令,而其他5次没有重新启动。:-(
我添加了一个/etc/X11/Xsession.d/80_xmodmap
包含以下内容的文件:
#!/bin/sh
# Set custom keycodes
#
# This file is sourced by Xsession(5), not executed.
# The "|| true" is to ensure that the Xsession script does not terminate on error
USRMODMAP="$HOME/.Xmodmap"
if [ -x /usr/bin/xmodmap ]; then
if [ -f "$USRMODMAP" ]; then
/usr/bin/xmodmap "$USRMODMAP" || true
fi
fi
每次都有效。
根据我在Ubuntu中重新映射键的长期经验,永久性的解决方案是修改名为evdev
in 的文件/usr/share/X11/xkb/keycodes
。
在命令提示符下运行此命令。
sudo gedit /usr/share/X11/xkb/keycodes/evdev
请记住,gedit是Ubuntu文本编辑器,因此您可以使用nano或vim代替gedit。
该文件的格式为:ALIAS:CODE。您可以通过交换不同键的代码来交换按钮。例如,要将RCONTROL与RETURN交换,请在evdev中将以下两行编辑为:
<RTRN> = 105;
<RCTL> = 36;
要知道按钮的数字代码,请xev
在终端上运行。
有关更多信息,请参考文档。https://buildmedia.readthedocs.org/media/pdf/python-evdev/latest/python-evdev.pdf
在Google上搜索后,我能够解决笔记本电脑错误的按键重新映射问题。重新映射后,Thinkpad T400上的所有有故障的键都可以正常工作。而且,它是永久性的,不会对CPU内核造成额外的负担。
首先使用以下命令查找键盘布局或键码。
xevv -event keyboard
例如,在我的Thinkpad T400键码上找到如下:
Keycode of "z" key is 52
Keycode of "x" key is 53
Keycode of "c" key is 54
Keycode of "v" key is 55
Keycode of "F6" key is 72
Keycode of "F10" key is 76
Keycode of "F11" key is 95
Keycode of "F12" key is 96
通过分配功能键“ F6”“ F10”“ F11”“ F12”重新映射字符键“ z”“ x”“ c”“ v”。
如下所示修改行(如果发生错误,请在进行任何更改以轻松还原之前备份文件)。
sudo vi /usr/share/X11/xkb/keycodes/evdev
找到以下行并更改值,如下所示:
<AB01> = 72;
<AB02> = 76;
<AB03> = 95;
<AB04> = 96;
注释这些行或删除这些行:
// <FK06> = 72;
// <FK10> = 76;
// <FK11> = 95;
// <FK12> = 96;
保存并退出。
重新映射特殊键。
如果出现问题,请先备份文件,然后再进行回滚。
cd /usr/share/X11/xkb/symbols/
sudo vi pc
在函数“ xkb_symbols” editing“ {”中添加或修改以下行
key [SCLK] { [ Prior ] };
key [PAUS] { [ Next ] };
保存并退出。
清除缓存。
sudo rm -rf /var/lib/xkb/*
重启。
xkb
在这里使用以下方法回答了这个问题:askubuntu.com/a/960097/554991。