2010-07-14 6 views
2

Je suis capable de créer des raccourcis clavier pour Ctrl-F1 et Ctrl-F2, ce qui leur permet de lancer un script, en utilisant l'interface du Centre de contrôle, section Actions d'entrée. La plate-forme d'intérêt est KDE 3.5 sur CentOS 5 actuellement, mais 4.x est également de moins d'intérêt immédiat. Ce dont j'ai besoin, cependant, c'est de créer les mêmes raccourcis à partir d'un script shell, exécuté après l'installation d'un RPM: ce RPM crée un utilisateur et préconfigure complètement son environnement KDE. Jusqu'à présent, j'ai été capable de faire des choses commeComment créer des raccourcis clavier par programme dans KDE?

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

et ensuite lors de la première connexion, l'installation de KDE reprendrait très bien. Je suppose que ce que j'essaie de faire est préconfigurer ce compte spécifique, mais je ne veux pas interférer avec un autre compte présent ou futur sur le même hôte .

Malheureusement, je n'ai pas réussi à faire le même travail avec l'entrée Actions, dont la configuration est un peu plus complexe. Avant d'essayer pour le démêler davantage, j'ai décidé de demander s'il y avait un meilleur moyen. En d'autres termes, existe-t-il une commande permettant de créer un raccourci clavier (je ne pense pas que je puisse utiliser DCOP, car KDE ne serait pas exécuté à ce moment-là)? J'ai contourné le mécanisme kconf_update, mais je n'ai pas pu déterminer si cela était approprié pour mon cas d'utilisation: existe-t-il une référence disponible?

Nous vous remercions à l'avance,

Répondre

2

Je trouve une approche qui semble fonctionner. Tout d'abord, je crée un fichier .khotkeys, appelez-le zzz.khotkeys, et le stocker sous/usr/hsare/apps/khotkeys. Un bon point de départ pour cela est le fichier printscreen.khotkeys.

Ce fichier .khotkeys comporte deux sections, une [données] section avec la section définition du raccourci clavier (s), et un [principal] où, entre autres clés que nous avons

Id=zzz 

qui sert à rappeler que les définitions clés ont déjà été importées.

Pour mettre les définitions zzz.khotkeys en vigueur, vous pouvez utiliser cette

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

qui semble invoquer une fonctionnalité équivalente au bouton « Importer » dans l'interface utilisateur « Actions d'entrée ».

Cette étape comporte un certain nombre d'obstacles dans mon scénario, qui exécute tous les de l'abovce dans le script% post d'une installation RPM.

D'abord, khotkeys_update échoue s'il ne peut pas contacter un serveur X; sur la surface cela semble stupide, car il ne devrait avoir besoin d'effectuer des querelles de texte, mais cela peut être adressé en plaçant son invocation dans un fichier .desktop dans .kde/Autostart. Deuxièmement, khotkeys_update ne ressemble pas exactement à une interface publiée sur laquelle on peut compter au fil du temps; puisque c'est pour CentOS/KDE 3.5 en un contexte où peu d'évolution est attendue, j'apprécie le privilège de considérer cela comme un problème mineur. S'il y a une interface publiée (shell) à effectuer l'importation, je ne pouvais pas le trouver (je n'ai pas enquêté sur DCOP).

En fin de compte, le même script qui directement personnalisé autre configuration fichiers sous .kde/share/config ajoute également sous .kde/Autostart un fichier nommé zzz-keys.desktop qui ressemble à

[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 

qui obtient les raccourcis clavier ajouté la première fois (ils finissent à l'intérieur khotkeysrc) et est sautée sur les invocations ultérieures, car khotkeysrc comprend un nom clé AlreadyInstalled qui est également mis à jour pour inclure « zzz », ainsi de suite les exécutions suivantes khotkeys_update le trouve et n'ajoute pas de doublons.

+0

Cela semble toujours être similaire dans KDE4, mais je n'ai pas encore trouvé un moyen d'importer le fichier. '/ usr/share/kde4/apps/khotkeys' contient les fichiers que vous mentionnez. Je me demande aussi si cela fonctionnerait en les mettant dans le dossier "partage" de la maison de l'utilisateur ... – exhuma

Questions connexes