为什么我的 xmodmap 命令无法在启动/登录时运行?

为什么我的 xmodmap 命令无法在启动/登录时运行?

我希望每次登录时(或每次启动时,如果这不起作用)运行此命令:xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

我尝试了很多方法。我把命令放入System > Preferences > Startup Applications。我把它放在一个.sh文件中,标记它chmod +x,然后把那个文件放入System > Preferences > Startup Applications。我把脚本放入/etc/init.d。我把命令放入~/.profile。似乎什么都不起作用。

最后,我把这个放在我的~/.profile

touch test1
xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
touch test2

test1 和 test2 都已创建,但键仍未重新映射。如果我只是复制/粘贴命令并手动运行它,它就可以正常工作。但它不会在登录时运行。有什么想法吗?

答案1

~/.profile在登录序列的早期运行。如果您的桌面环境配置了键盘布局,它可以覆盖您刚刚加载的设置。

~/.Xmodmap将您的设置放入名为:的文件中。

keysym Delete = Menu
keysym Menu = Delete

Ubuntu 10.04默认的Gnome环境下,下次登录时会提示是否加载~/.Xmodmap,加载后勾选“不再询问”,.Xmodmap默认设置后即可生效。

答案2

我发现在 Gconf-Editor 中上面提到的位置,你修改过的键盘布局的名字应该会出现两次,一次在“known_file_list”下,一次在“update_handlers”下。至于为什么 Ubuntu 有时会放进后者的条目,有时却不放……嗯,这让你很警惕,不是吗?

顺便说一句,经过大量研究后,我使用上述调整重新分配了左 Windows 键。我在自己的键盘布局中放入以下语句,使其重复左箭头键:-

键码 133 = 0xFF51

(进入 xev 并先按下一个键,然后按下另一个键,检查这些代码是否适合您。)

这只是一个小问题,但当我上网时,它给了我一个方便的“返回”键 - 用左手按 Alt+Win。我不用看就能做到。

答案3

有些系统会查找名为的文件~/.Xmodmap并执行其中的命令。尝试将以下几行放入该文件中:

keysym Delete = Menu
keysym Menu = Delete

相关内容