2010-09-05 6 views
1

Je veux écrire une application qui va intercepter certaines séquences de claviers (comme celles d'Emacs - "C-c C-c") et exécuter certaines fonctions.Comment intercepter les raccourcis clavier dans GNOME

Comment puis-je faire cela dans GNOME?

A quel niveau dois-je faire cela (noyau, X11, gestionnaire de fenêtres)?

+0

Pouvez-vous préciser votre objectif? Voulez-vous des raccourcis globaux (capturés quelle que soit la fenêtre concernée) ou des raccourcis d'application? Ai-je raison de supposer que vous voulez capturer des séquences de combinaisons de touches? ("Cc Cc" ayant une signification au-delà de "Faire l'action pour Cc deux fois de suite") – ssokolow

+0

Je veux écrire appliccation sans fenêtre qui va capturer des séquences globales de combinaisons (similaire à ceci dans EMACS mais pour GNOME), par exemple Quand je suis dans GEdit et que je lance "Cc Cu", je veux qu'il exécute la fonction majuscule sur le texte sélectionné dans GEdit, et quand je tape "Cc f", il exécute la fonction shuld qui tourne sous firefox. – jcubic

Répondre

1

Pour exécuter une commande sur une touche donnée, vous pouvez la configurer en metacity ou en compiz (en fonction de ce que vous utilisez).

Pour metacity course gconf-editor, aller à /apps/metacity/keybinding_commands et là-dessous, vous verrez command_1 etc. Là, vous définissez la commande à exécuter, puis dans /apps/metacity/global_keybindings vous définissez les raccourcis clavier pour correspondre. La clé pour run_command_1 exécute la commande pour command_1, et ainsi de suite.

Pour compiz vous voulez exécuter ccsm ("compiz config settings manager") et utilisez le plugin Commands pour le configurer, à peu près de la même manière.

Pour effectuer une action dans Gedit, pour autant que je sache, il n'y a aucun moyen de le faire, sauf si un raccourci clavier existe pour la commande que vous lancez. Dans ce cas, vous pouvez trouver une application qui traduit "C-c C-u" dans le bon raccourci pour Gedit. Mais je ne l'ai jamais fait.