如何在KDE中以编程方式创建键盘快捷键?

时间:2010-07-14 14:55:28

标签: installation shell kde kde4

我可以为Ctrl-F1和Ctrl-F2创建键盘快捷键,使用Control Center界面的Input Actions部分启动脚本。目前感兴趣的平台是CentOS 5上的KDE 3.5,但4.x也是 不那么直接的兴趣。

然而,我需要从shell脚本创建相同的快捷方式,在安装RPM之后运行:此RPM创建用户,然后完全预配置其KDE环境。到目前为止,我已经能够做像

这样的事情了
cat > kdesktoprc <<- EOM
[Desktop0]
WallpaperMode=NoWallpaper
EOM

然后在第一次登录时,KDE设置会从那里拿起来就好了。 我想我想要做的是预先设置这个特定帐户,但我 不想干涉任何其他现在或将来的账户 同一主持人。

不幸的是,我无法使用Input做同样的工作 动作,其配置稍微复杂一些。在尝试之前 为了进一步解开,我决定问是否有更好的方法。

换句话说,是否有创建键盘快捷键的命令(我没有 我想我可以使用DCOP,因为当时KDE不会运行?

我略去了kconf_update机制的提示,但无法确定它是否适合我的用例:是否有可用的参考?

提前谢谢你,

1 个答案:

答案 0 :(得分:4)

我发现了一种似乎有用的方法。首先,我创建一个.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脚本中的abovce。

首先,如果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找到它并且不添加重复项。