我发现了一种看起来可行的方法。首先,我创建一个.khotkeys文件,将其命名为zzz.khotkeys,并将其存储在/usr/hsare/apps/khotkeys下。对于这个文件的良好起点是printscreen.khotkeys文件。
这个.khotkeys文件有两个部分,一个是[Data]部分,包含热键定义,另一个是[Main]部分,在其中我们有其他按键。
Id=zzz
这是用于记住已导入的键定义的。
要使zzz.khotkeys的定义生效,您可以使用以下方法:
/usr/lib/kconf_update_bin/khotkeys_update --id zzz
它似乎调用了与“输入操作”用户界面中的“导入”按钮等效的功能。
在我的情况下,在RPM安装的%post脚本中运行所有上述步骤会引发多个障碍。
首先,如果khotkeys_update无法联系X服务器,则会失败;表面上看起来这很愚蠢,因为它只需要执行文本整理,但是可以通过将其调用放在.kde/Autostart下的.desktop文件中来解决这个问题。
其次,khotkeys_update并不像一个可靠的已发布接口;由于这是针对CentOS/KDE 3.5的上下文环境,不太可能有大量的演变,我认为这只是一个小问题。如果有一个已发布的(shell)接口来执行导入操作,我找不到它(我没有调查DCOP)。
最后,直接自定义.kde/share/config下的其他配置文件的相同脚本还会在.kde/Autostart下添加一个名为zzz-keys.desktop的文件,其内容如下:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=ZZZ Hotkeys
Comment=Ensure ZZZ keyboard shortctus are available
Exec=/usr/lib/kconf_update_bin/khotkeys_update --id zzz
第一次运行此程序时,它会添加快捷键(它们最终被添加到khotkeysrc),并在以后的调用中跳过此步骤。因为khotkeysrc包含一个名为“AlreadyInstalled”的密钥名称,它也会被更新以包含“zzz”,因此在以后的运行中,khotkeys_update会找到它并不会重复添加。
/usr/share/kde4/apps/khotkeys
包含您提到的文件。我也想知道将它们放入用户主目录中的“share”文件夹是否可行... - exhuma