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


10

我想在每次登录时(或每次启动,如果不起作用)运行以下命令: 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均被创建,但是键仍未重新映射。如果我只是复制/粘贴命令并手动运行它,那么它将正常工作。但是它不会在登录时运行。有任何想法吗?

Answers:


11

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

将您的设置放在一个名为的文件中~/.Xmodmap

keysym Delete = Menu
keysym Menu = Delete

在Ubuntu 10.04中默认的Gnome环境下,下次登录时,系统将提示您是否加载~/.Xmodmap。加载它,然后勾选“不要再问我”。然后您.Xmodmap将应用默认设置。


谢谢,这很好。出于好奇,我该如何返回到我选择“不再询问我”的对话框,以了解将来是否需要时间?
马修2010年

1
@Matthew:未经测试:启动gconf-editor,浏览至/desktop/gnome/peripherals/keyboard/general,然后编辑known_file_list条目以将其删除.Xmodmap
吉尔(Gilles)“所以,别再邪恶了”,2010年

当您首次回答此问题时,这对Ubuntu 10.10 beta来说对我有用。昨天,我重新安装了Ubuntu 10.10,并将一个相同的.Xmodmap文件放在主文件夹中。当我重新登录时,我得到了对话框,加载了.Xmodmap,并像以前一样勾选了该框。但这似乎并没有重新映射键。我签入了gconf,.Xmodmap肯定在known_file_list中。有任何想法吗?
马修2010年

在Gnome 3.10.1 / Archlinux上,这对我也不起作用。我想知道是否未按照Gnome加载键盘布局的顺序进行调整。
Caleb 2013年

对于不再加载〜/ .xmodmap的Gnome 3.10,我找到了一个在bbs.archlinux.org/viewtopic.php?pid=1194968#p1194968上有效的解决方案:禁用Gnome的键盘插件。$ gsettings set org.gnome.settings-daemon.plugins.keyboard active false
plnx

2

我发现在上面提到的Gconf-Editor中,您修改过的键盘布局的名称应该出现两次,一次出现在“ known_file_list”之下,一次出现在“ update_handlers”之下。至于为什么Ubuntu有时会放在后一个条目中,而有时却不会...好吧,它会让您保持警惕,不是吗?

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

键码133 = 0xFF51

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

这只是一点,但是当我在Internet上时,它为我提供了一个方便的“后退”键-左手Alt + Win。我可以不看而做。


1
艾伦写道:“我发现在上述Gconf-Editor中,您修改过的键盘布局的名称应该出现两次,一次出现在“ known_file_list”之下,一次出现在“ update_handlers”之下。” 我可以确认艾伦是正确的。在Ubuntu 10.10中,为了使〜/ .Xmodmap文件生效,必须在gconf的/ desktop / gnome / peripherals / keyboard / general下的“ known_file_list”和“ update_handlers”列表中同时显示“ .Xmodmap”。 -编辑。谢谢,艾伦。

1

某些系统查找名为的文件~/.Xmodmap并执行在此找到的命令。尝试将以下行放在该文件中:

keysym Delete = Menu
keysym Menu = Delete
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.