3

Ctrl-F1およびCtrl-F2のキーボードショートカットを作成し、コントロールセンターインターフェイスの[入力アクション]セクションを使用して、スクリプトを起動させることができます。関心のあるプラットフォームは現在CentOS5上のKDE3.5ですが、4.xもそれほど直接的な関心はありません。

ただし、必要なのは、シェルスクリプトから同じショートカットを作成し、RPMのインストール後に実行することです。このRPMはユーザーを作成し、KDE環境を完全に事前構成します。これまでのところ、私は次のようなことをすることができました

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

そして、最初のログイン時に、KDEセットアップはそこから問題なく取得されます。私がやろうとしているのは、この特定のアカウントを事前にシードすることだと思いますが、同じホスト上の他の現在または将来のアカウントに干渉したくありません。

残念ながら、構成がやや複雑な入力アクションで同じ作業を行うことはできませんでした。それをさらに解明しようとする前に、私はもっと良い方法があるかどうか尋ねることにしました。

言い換えれば、キーボードショートカットを作成するコマンドはありますか(その時点ではKDEが実行されていないため、DCOPを使用できないと思います)?

kconf_updateメカニズムのヒントをざっと読みましたが、それが私のユースケースに適しているかどうかを確認できませんでした。利用可能なリファレンスはありますか?

前もって感謝します、

4

1 に答える 1

4

うまくいくように見えるアプローチを見つけました。まず、.khotkeys ファイルを作成し、zzz.khotkeys という名前を付けて、/usr/hsare/apps/khotkeys に保存します。そのための良い出発点は、printscreen.khotkeys ファイルです。

この .khotkeys ファイルには 2 つのセクションがあります。ホットキー定義を含む [Data] セクションと、その他のキーを含む [Main] セクションです。

Id=zzz

これは、どのキー定義が既にインポートされているかを記憶するために使用されます。

zzz.khotkeys の定義を有効にするには、これを使用できます

/usr/lib/kconf_update_bin/khotkeys_update --id zzz

「入力アクション」ユーザーインターフェースの「インポート」ボタンと同等の機能を呼び出すようです。

このステップは、RPM インストールの %post スクリプトで上記のすべてを実行している私のシナリオでは、多くの障害を引き起こします。

まず、khotkeys_update が X サーバーに接続できない場合、失敗します。表面的には、テキスト ラングリングを実行するだけでよいため、これはばかげているように見えますが、これは、呼び出しを .kde/Autostart の .desktop ファイル内に配置することで対処できます。

第 2 に、khotkeys_update は、時間の経過とともに信頼できる公開されたインターフェイスのようには見えません。これは CentOS/KDE 3.5 用であり、進化がほとんど期待されていない状況であるため、これをマイナーな問題と見なすことができて光栄です。インポートを実行するための公開された (シェル) インターフェイスがある場合、それを見つけることができませんでした (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 には「zzz」を含むように更新されるキー名 AlreadyInstalled が含まれているため、その後の実行では khotkeys_update がそれを見つけて追加しません。重複。

于 2010-07-22T08:21:33.310 に答える