Conseils d'empathie: Comment faire pour fermer la fenêtre avec un raccourci Echap et de changer le changement des fenêtres
18 mai

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:
1
| id = "menu_conv_close" > <object "GtkAction" class = id = "menu_conv_close"> |
<object class="GtkAction" id="menu_conv_close"> Vous verrez que sous cette ligne, il y aura une certaine similaire à:
1
| modifiers = "GDK_CONTROL_MASK" /> key = "q" modificateurs <accelerator = "GDK_CONTROL_MASK" /> |
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:
1
| /> key = "Escape" <accelerator /> |
<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
1
| id = "menu_tabs_prev" > <object "GtkAction" class = id = "menu_tabs_prev"> |
<object class="GtkAction" id="menu_tabs_prev"> 1
| id = "menu_tabs_next" > <object "GtkAction" class = id = "menu_tabs_next"> |
<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:
1
| modifiers = "GDK_CONTROL_MASK|GDK_SHIFT_MASK" /> clés = "A" modificateurs <accelerator = "GDK_CONTROL_MASK|GDK_SHIFT_MASK" /> |
key = "a" <accelerator modifiers="GDK_CONTROL_MASK|GDK_SHIFT_MASK"/> 1
| modifiers = "GDK_CONTROL_MASK" /> clés = "A" modificateurs <accelerator = "GDK_CONTROL_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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 | ?> <!--*- mode: xml <? Xml version = "1.0">! <- * - Mode: xml Bavarder pour tous Contacter = "t" modifiers = "GDK_SHIFT_MASK | Fermer l'onglet </ property> </ object> <accélérateur clés = "t" modificateurs = "GDK_SHIFT_MASK | Languette Languette |
<? 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> 














