首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在KDE中以编程方式创建键盘快捷键?

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

Stack Overflow用户
提问于 2010-07-14 22:55:28
回答 1查看 2.1K关注 0票数 3

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

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

代码语言:javascript
复制
cat > kdesktoprc <<- EOM
[Desktop0]
WallpaperMode=NoWallpaper
EOM

然后,在第一次登录时,KDE设置将从那里恢复正常。我猜我正在尝试做的是预先设定这个特定的帐户,但我不想干扰同一主机上的任何其他当前或将来的帐户。

不幸的是,我不能对输入操作做同样的工作,因为它的配置比较复杂。在试图进一步解开它之前,我决定问一问是否有更好的方法。

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

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

先谢谢你,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-22 16:21:33

我发现了一种似乎有效的方法。首先,我创建了一个应用程序文件,将其命名为zzz.khotkeys,并将其存储在/usr/hsare/ .khotkeys /khotkey下。printscreen.khotkeys文件是一个很好的起点。

这个.khotkeys文件有两个部分,一个是包含热键定义的数据部分,另一个是包含其他键的主部分

代码语言:javascript
复制
Id=zzz

它用于记住已经导入了哪些键定义。

要使zzz.khotkeys中的定义生效,可以使用以下命令

代码语言:javascript
复制
/usr/lib/kconf_update_bin/khotkeys_update --id zzz

它似乎调用了等同于“输入操作”用户界面中的“导入”按钮的功能。

这一步在我的场景中遇到了许多障碍,我的场景正在运行RPM安装的%post脚本中的所有上述内容。

首先,如果无法联系X服务器,khotkeys_update就会失败;从表面上看,这似乎很愚蠢,因为它应该只需要执行文本处理,但可以通过将其调用放在.kde/Autostart中的.desktop文件中来解决这个问题。

其次,khotkeys_update看起来并不完全像一个发布的接口,可以随着时间的推移而依赖;因为这是针对CentOS/KDE3.5的,在一个几乎不会发生变化的上下文中,我很荣幸地认为这是一个小问题。如果有一个发布的(shell)接口来执行导入,我找不到它(我没有调查DCOP)。

最后,在.kde/share/config下直接定制其他配置文件的脚本还会在.kde/Autostart下添加一个名为zzz-keys.ktop的文件,如下所示

代码语言:javascript
复制
[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会找到它,并且不会添加重复项。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3247412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档