2010-07-14 121 views
2

我可以使用控制中心界面的「輸入操作」部分爲Ctrl-F1和Ctrl-F2創建鍵盤快捷鍵,使他們啓動腳本。目前感興趣的平臺是CentOS 5上的KDE 3.5,但4.x也是 不那麼直接利益。如何在KDE中以編程方式創建鍵盤快捷鍵?

但是,我需要的是從安裝RPM後運行的shell腳本創建相同的快捷方式:該RPM創建用戶,然後完全預配置其KDE環境。到目前爲止,我已經能夠做到這樣的東西,如

cat > kdesktoprc <<- EOM 
[Desktop0] 
WallpaperMode=NoWallpaper 
EOM 

然後在第一次登錄時,KDE設置將從那裏拿起就好了。 我想我想要做的是預置這個特定的帳戶,但我不想幹涉同一主機上的任何其他目前或未來的帳戶。

不幸的是,我一直無法使用輸入 Actions進行相同的操作,其配置涉及更多。在嘗試 進一步解開之前,我決定詢問是否有更好的方法。

換句話說,是否有一個命令來創建鍵盤快捷鍵(我不想 認爲我可以使用DCOP,因爲KDE當時不會運行)?

我撇去了kconf_update機制的提示,但無法確定它是否適合我的用例:是否有可用的參考?

在此先感謝,

回答

2

我發現了一種似乎可行的方法。首先,我創建一個.khotkeys文件, 將其稱爲zzz.khotkeys,並將其存儲在/ usr/hsare/apps/khotkeys下。一個好的 的出發點是printscreen.khotkeys文件。

此.khotkeys文件具有兩個區段,與所述熱鍵定義(多個)[數據]部分和[主要]部分,其中其它密鑰中的,我們有

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 /股/配置 文件的其他配置相同的腳本也下名爲 ZZZ-keys.desktop .kde /自動啓動文件,它看起來像

[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發現它並且不會添加重複項。

+0

這在KDE4中似乎仍然類似,但我還沒有找到導入文件的方法。 '/ usr/share/kde4/apps/khotkeys'確實包含你提到的文件。我也想知道它是否會將它們放入用戶家中的「共享」文件夾中... – exhuma 2014-01-02 07:14:39