L'autre jour, j'ai décidé de supprimer mon Ubuntu 11.04 Pidgin et Empathy régler en raison de son intégration.
Dès que j'ai commencé à tester l'application, j'ai trouvé 2 problèmes majeurs.
- Je ne peux pas basculer entre les fenêtres avec Ctrl + Tab
- Je ne peux pas fermer la fenêtre existante avec Esc ou Echap
Selon les créateurs de ces empathie ne sont pas des bugs, mais il dit Gnome évasion = Annuler et Ctrl + Tab = commutateur de mise entre les éléments de texte. C'est pourquoi pour être compatible avec Gnome veux pas mettre ces options dans votre code.
Puis comprendre pendant une longue période, j'ai trouvé le correctif à ce problème.
Il ya un fichier dans le système de fichiers sont mis en place où toutes les actions peuvent être effectuées sur notre fenêtre GTK. Ces actions ont ce qu'on appelle des «accélérateurs» sont des raccourcis clavier.
Nous allons d'abord le fichier: / usr / share / l'empathie / l'empathie-chat-window.ui
Nous allons modifier comme sudo (sudo gedit / usr / share / l'empathie / l'empathie-chat-window.ui).
Une fois ouvert, vous verrez que XML est un commun et courant avec des actions diverses.
Tout d'abord vous recherchez la ligne suivante:
<object class="GtkAction" id="menu_conv_close">
Vous verrez que sous cette ligne, il y aura une certaine similaire à:
key = "q" <accelerator modifiers="GDK_CONTROL_MASK"/>
Ce que cela dit, c'est que de fermer la conversation touchez pas Ctrl + K. Nous voulons le changer à s'échapper, puis modifiez la ligne ci-dessus avec:
<accelerator key="Escape"/>
et prêt
.
Aller à la deuxième problème de changer les fenêtres avec Ctrl + Tab est un peu plus compliqué. Par défaut, GNOME ne nous laisse pas changer les fenêtres avec Ctrl + Tab et à son tour, ne laisse aucune application GTK bindear un raccourci à la touche Tab. Si nous voulions faire cela, nous devrions toucher le code et modifier une empathie FLAG pour nous marcher sur ce Gnome dit. Comme cela allait être une tâche difficile, a décidé de changer Ctrl + Tab et Ctrl + Maj + Tab pour Ctrl + A dans ce cas, qui est assez similaire.
Ensuite, regardez pour le moment dans le même fichier les 2 lignes suivantes
<object class="GtkAction" id="menu_tabs_prev">
<object class="GtkAction" id="menu_tabs_next">
Et changer les deux accélérateurs. Les raccourcis actuels dire de changer d'onglets, vous devez utiliser Ctrl + PageDown, ce qui signifie que le raccourci que je dois utiliser environ 3 couches
. Puis modifier les éléments suivants, respectivement:
key = "a" <accelerator modifiers="GDK_CONTROL_MASK|GDK_SHIFT_MASK"/>
key = "a" <accelerator modifiers="GDK_CONTROL_MASK"/>
Après cela, redémarrez l'empathie et le tour est joué!
Je vous laisse mon fichier de configuration de décider intensifié directement:
<? Xml version = "1.0"> <! - * - Mode: xml - * -> <class = objet "GtkUIManager" <interface> id = "ui_manager"> <child> classe d'objet <= "GtkActionGroup" id = "actiongroup1"> classe d'objet <= "GtkAction" <child> id = "menu_conv"> <property name="name"> menu_conv </ property> <property name="label" translatable="yes"> _Conversation < / property> </ object> </ enfant> classe d'objet <= "GtkAction" <child> id = "menu_conv_clear"> <property name="stock_id"> gtk-clair </ property> <property name="name"> menu_conv_clear </ property> <property name="label" translatable="yes"> C_lear </ property> </ object> <accelerator key="L" modifiers="GDK_CONTROL_MASK"/> </ enfant> <child> <objet class = "GtkAction" id = "menu_conv_insert_smiley"> <property name="icon-name"> face sourire </ property> <property name="name"> menu_conv_insert_smiley </ property> nom de la propriété <= "label" traduisible = «oui»> Insérer _smiley </ property> </ object> </ enfant> classe d'objet <= "GtkToggleAction" <child> id = "menu_conv_favorite"> <property name="name"> menu_conv_favorite </ property> nom de la propriété < = "label" traduisible = "yes"> _Favorite Chat Room </ property> </ object> </ enfant> classe d'objet <= "GtkToggleAction" <child> id = "menu_conv_always_urgent"> <property name="name"> menu_conv_always_urgent </ property> <property name="label" prévenir translatable="yes"> pour tous les messages </ property> </ object> </ enfant> <class = objet "GtkToggleAction" <child> id = "menu_conv_toggle_contacts"> < nom de la propriété = "nom"> menu_conv_toggle_contacts </ property> <property name="active"> True </ property> <property name="label" Liste translatable="yes"> contact _Show </ property> </ object> < / enfant> classe d'objet <= "GtkAction" <child> id = "menu_conv_invite_participant"> <property name="name"> menu_conv_invite_participant </ property> <property name="label" translatable="yes"> _Participant Inviter ... </ property> </ object> </ enfant> classe d'objet <= "GtkAction" <child> id = "menu_conv_close"> <property name="stock_id"> gtk-près </ property> <property name="name"> menu_conv_close </ property> </ object> <accelerator key="Escape"/> </ enfant> <class = objet "GtkAction" <child> id = "menu_contact"> <property name="name"> menu_contact </ property> <property name="label" translatable="yes"> C_ontact </ property> </ object> </ enfant> <class = objet "GtkAction" <child> id = "MENU_EDIT"> <property name="name"> MENU_EDIT </ property> <property name="label" translatable="yes"> _edit </ property> </ object> </ enfant> <class = objet "GtkAction" <child> id = "menu_edit_cut"> nom de la propriété < = "stock_id"> gtk-coupe </ property> <property name="name"> menu_edit_cut </ property> </ object> <accelerator key="X" modifiers="GDK_CONTROL_MASK"/> </ enfant> <child> <object class="GtkAction" id="menu_edit_copy"> <property name="stock_id"> gtk-copie </ property> <property name="name"> menu_edit_copy </ property> </ object> <accélérateur key = " C "modificateurs =" GDK_CONTROL_MASK "/> </ enfant> classe d'objet <=" GtkAction "<child> id =" menu_edit_paste "> <property name="stock_id"> gtk-coller </ property> nom de la propriété <=" nom de "> menu_edit_paste </ property> </ object> <accelerator key="V" modifiers="GDK_CONTROL_MASK"/> </ enfant> classe d'objet <=" GtkAction "<child> id =" menu_edit_find "> nom de la propriété <=" stock_id "> gtk-find </ property> <property name="name"> menu_edit_find </ property> </ object> <accelerator key="F" modifiers="GDK_CONTROL_MASK"/> </ enfant> <child> <objet class = "GtkAction" id = "menu_tabs"> <property name="name"> menu_tabs </ property> <property name="label" translatable="yes"> _Tabs </ property> </ object> </ enfant> <objet de classe <child> = "GtkAction" id = "menu_tabs_prev"> <property name="name"> menu_tabs_prev </ property> <property name="label" translatable="yes"> _Previous Tab </ property> </ object> <accelerator key="a" modifiers="GDK_CONTROL_MASK|GDK_SHIFT_MASK"/> </ enfant> classe d'objet <= "GtkAction" <child> id = "menu_tabs_next"> <property name="name"> menu_tabs_next </ property > <property name="label" translatable="yes"> _next Tab </ property> </ object> <accelerator key="a" modifiers="GDK_CONTROL_MASK"/> </ enfant> <child> classe d'objet <= " GtkAction "id =" menu_tabs_undo_close_tab "> <property name="name"> menu_tabs_undo_close_tab </ property> <property name="label" translatable="yes"> _Undo Fermer l'onglet </ property> </ object> <accélérateur key =" t "modificateurs =" GDK_SHIFT_MASK | GDK_CONTROL_MASK "/> </ enfant> classe d'objet <=" GtkAction "<child> id =" menu_tabs_left "> <property name="name"> menu_tabs_left </ property> nom de la propriété <=" label «traduisible =" yes "Tab> Déplacer _Left </ property> </ object> <accelerator key="Page_Up" modifiers="GDK_CONTROL_MASK|GDK_SHIFT_MASK"/> </ enfant> <child> classe d'objet <=" GtkAction "id = "menu_tabs_right"> <property name="name"> menu_tabs_right </ property> onglet Déplacer <property translatable="yes"> name = "label" _Right </ property> </ object> <accélérateur key = "PAGE_DOWN" modificateurs = "GDK_CONTROL_MASK | GDK_SHIFT_MASK" /> </ enfant> classe d'objet <= "GtkAction" <child> id = "menu_tabs_detach"> <property name="name"> menu_tabs_detach </ property> nom de la propriété <= "label" traduisible = " oui "> Onglet _Detach </ property> </ object> </ enfant> classe d'objet <=" GtkAction "<child> id =" MENU_HELP "> <property name="name"> MENU_HELP </ property> nom de la propriété <= «label» traduisible = "yes"> _Help </ property> </ object> </ enfant> classe d'objet <= "GtkAction" <child> id = "menu_help_contents"> <property name="stock_id"> gtk-help < / property> <property name="name"> menu_help_contents </ property> <property name="label" translatable="yes"> _Contents </ property> </ object> <accélérateur key = "F1" modificateurs = "" / > </ enfant> classe d'objet <= "GtkAction" <child> id = "menu_help_about"> gtk-sujet <property name="stock_id"> </ property> <property name="name"> menu_help_about </ property> < / object> </ enfant> </ object> </ enfant> <UI> <menubar name="chats_menubar"> <menu action="menu_conv"> <menuitem action="menu_conv_clear"/> <menuitem action = "menu_conv_insert_smiley" /> <menuitem action="menu_conv_favorite"/> <menuitem action="menu_conv_always_urgent"/> <menuitem action="menu_conv_toggle_contacts"/> <menuitem action="menu_conv_invite_participant"/> <separator/> <menuitem d'action = "menu_conv_close" / > </ menu> <menu action="menu_contact" /> <menu action="menu_edit"> <menuitem action="menu_edit_cut"/> <menuitem action="menu_edit_copy"/> <menuitem action="menu_edit_paste"/> < séparateur /> <menuitem action="menu_edit_find"/> </ menu> <menu action="menu_tabs"> <menuitem action="menu_tabs_prev"/> <menuitem action="menu_tabs_next"/> <menuitem d'action = "menu_tabs_undo_close_tab" / > <separator/> <menuitem action="menu_tabs_left"/> <menuitem action="menu_tabs_right"/> <menuitem action="menu_tabs_detach"/> </ menu> <menu action="menu_help"> moins de menuitem action = "menu_help_contents "/> <placeholder name="LaunchpadItems"/> <menuitem action="menu_help_about"/> </ menu> </ menubar> </ u> </ object> <object class="GtkWindow" id="chat_window"> <property name="title" translatable="yes"> Chat </ property> <property name="role"> chat </ property> <property name="default_width"> 580 </ property> nom de la propriété <= "default_height "> 480 </ property> classe d'objet <=" GtkVBox "<child> id =" chat_vbox "> <property name="visible"> True </ property> <child> classe d'objet <=" GtkMenuBar "builder =" ui_manager "id =" chats_menubar "> <property name="visible"> True </ property> </ object> <property name="expand"> <packing> False </ property> <property name="fill"> False < / property> </ emballage> </ enfant> <child> <placeholder/> </ enfant> </ object> </ enfant> </ object> </ interface>
Lire la suite