我可以为Ctrl-F1和Ctrl-F2创建键盘快捷键,让它们使用Control Center界面的Input Actions部分启动一个脚本。目前感兴趣的平台是CentOS 5上的KDE3.5,但4.x也没有那么直接的兴趣。
然而,我需要的是从shell脚本创建相同的快捷方式,在安装RPM之后运行:这个RPM创建一个用户,然后完全预配置它的KDE环境。到目前为止,我已经能够做像这样的事情
cat > kdesktoprc <<- EOM
[Desktop0]
WallpaperMode=NoWallpaper
EOM然后,在第一次登录时,KDE设置将从那里恢复正常。我猜我正在尝试做的是预先设定这个特定的帐户,但我不想干扰同一主机上的任何其他当前或将来的帐户。
不幸的是,我不能对输入操作做同样的工作,因为它的配置比较复杂。在试图进一步解开它之前,我决定问一问是否有更好的方法。
换句话说,有没有创建键盘快捷键的命令(我不认为我可以使用DCOP,因为KDE当时不会运行)?
我略读了kconf_update机制的提示,但无法确定它是否适合我的用例:是否有可用的参考资料?
先谢谢你,
发布于 2010-07-22 16:21:33
我发现了一种似乎有效的方法。首先,我创建了一个应用程序文件,将其命名为zzz.khotkeys,并将其存储在/usr/hsare/ .khotkeys /khotkey下。printscreen.khotkeys文件是一个很好的起点。
这个.khotkeys文件有两个部分,一个是包含热键定义的数据部分,另一个是包含其他键的主部分
Id=zzz它用于记住已经导入了哪些键定义。
要使zzz.khotkeys中的定义生效,可以使用以下命令
/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的文件,如下所示
[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会找到它,并且不会添加重复项。
https://stackoverflow.com/questions/3247412
复制相似问题