No outro dia eu decidi apagar meu Ubuntu 11,04 Pidgin e empatia resolver devido à sua integração.
Assim eu comecei a testar o aplicativo eu encontrei 2 grandes problemas.
- Eu não posso alternar entre as janelas com Ctrl + Tab
- Eu não posso fechar a janela existente com Esc ou Escape
De acordo com os criadores de estes não são Empatia bugs, mas diz Fuga Gnome = Cancelar e Ctrl + Tab = alternar o foco entre elementos do texto. É por isso que para ser consistente com o Gnome não quer colocar estas opções em seu código.
Em seguida, descobrir por um longo tempo eu achei a correção para este problema.
Há um arquivo no sistema de arquivos são criados, onde todas as ações podem ser executadas em nossa janela GTK. Essas ações têm o que é chamado de "aceleradores" são atalhos de teclado.
Primeiro, vá para o arquivo: / usr / share / empatia / empatia-chat-window.ui
Vamos editar o sudo (sudo gedit / usr / share / empatia / empatia-chat-window.ui).
Uma vez aberto, você verá que é um XML comum e corrente, com várias ações.
Primeiro de tudo você procurar a seguinte linha:
<object class="GtkAction" id="menu_conv_close">
Você verá que abaixo dessa linha, haverá alguma semelhante a:
key = "q" <accelerator modifiers="GDK_CONTROL_MASK"/>
O que isto diz é que para fechar a conversa não tocar Ctrl + K. Queremos mudar isso para escapar, em seguida, altere a linha acima com:
<accelerator key="Escape"/>
e pronto
.
Indo para o segundo problema de mudar as janelas com Ctrl + Tab é um pouco mais complicado. Por padrão, o GNOME não vamos mudar as janelas com Ctrl + Tab e por sua vez, não deixa qualquer aplicação GTK bindear um atalho para a tecla Tab. Se quiséssemos fazer isso, devemos tocar o código e alterar uma empatia FLAG para nos deixar pisar o Gnome diz. Como este ia ser um trabalho árduo, decidiu mudar Ctrl + Tab e Ctrl + Shift + Tab para Ctrl + A, neste caso, que é bastante semelhante.
Em seguida, procure agora no mesmo arquivo as seguintes 2 linhas
<object class="GtkAction" id="menu_tabs_prev">
<object class="GtkAction" id="menu_tabs_next">
E mudar os dois aceleradores. Os atalhos atuais dizer para mudar guia você tem que usar Ctrl + PageDown, o que significa que o atalho eu tenho que usar cerca de 3 demãos
. Em seguida, altere o seguinte respectivamente:
key = "a" <accelerator modifiers="GDK_CONTROL_MASK|GDK_SHIFT_MASK"/>
key = "a" <accelerator modifiers="GDK_CONTROL_MASK"/>
Depois disso, reinicie Empatia e voila!
Deixo-vos o meu arquivo de configuração para decidir entrou diretamente:
<? Xml version = "1.0"> <! - * - Mode: xml - * -> <classe de objeto = "GtkUIManager" <interface> id = "ui_manager"> <child> <classe de objeto = "GtkActionGroup" id = "actiongroup1"> <class = objeto "GtkAction" <child> id = "menu_conv"> <property name="name"> menu_conv </ property> <property name="label" _Conversation translatable="yes"> < / property> </ object> </ criança> <classe de objeto = "GtkAction" <child> id = "menu_conv_clear"> <property name="stock_id"> gtk-clear </ property> <property name="name"> menu_conv_clear </ property> <property name="label" translatable="yes"> C_lear </ property> </ object> <accelerator key="L" modifiers="GDK_CONTROL_MASK"/> <criança /> <child> objeto < class = "GtkAction" id = "menu_conv_insert_smiley"> <property name="icon-name"> rosto sorriso </ property> <property name="name"> menu_conv_insert_smiley </ property> <nome da propriedade = "label" traduzível = "yes"> Inserir _smiley </ property> </ object> </ criança> <classe de objeto = "GtkToggleAction" <child> id = "menu_conv_favorite"> <property name="name"> menu_conv_favorite </ property> nome da propriedade < = "label" traduzível = "yes"> _Favorite Chat Room </ property> </ object> </ criança> <classe de objeto = "GtkToggleAction" <child> id = "menu_conv_always_urgent"> <property name="name"> menu_conv_always_urgent </ property> <property name="label" Notifique translatable="yes"> para todas as mensagens </ property> </ object> </ criança> <classe de objeto = "GtkToggleAction" <child> id = "menu_conv_toggle_contacts"> < nome da propriedade = "nome"> menu_conv_toggle_contacts </ property> <property name="active"> True </ property> <property name="label" translatable="yes"> Lista de Contatos _Show </ property> </ object> < / criança> <classe de objeto = "GtkAction" <child> id = "menu_conv_invite_participant"> <property name="name"> menu_conv_invite_participant </ property> <property name="label" translatable="yes"> _Participant Convidar ... </ property> </ object> </ criança> <classe de objeto = "GtkAction" <child> id = "menu_conv_close"> <property name="stock_id"> gtk-close </ property> <property name="name"> menu_conv_close </ property> </ object> <accelerator key="Escape"/> </ criança> <classe de objeto = "GtkAction" <child> id = "menu_contact"> <property name="name"> menu_contact </ property> <property name="label" translatable="yes"> C_ontact </ property> </ object> </ criança> <classe de objeto = "GtkAction" <child> id = "menu_edit"> <property name="name"> menu_edit </ property> <property name="label" translatable="yes"> _Edit </ property> </ object> </ criança> <classe de objeto = "GtkAction" <child> id = "menu_edit_cut"> nome da propriedade < = "stock_id"> gtk-corte </ property> <property name="name"> menu_edit_cut </ property> </ object> <accelerator key="X" modifiers="GDK_CONTROL_MASK"/> <criança /> <child> <object class="GtkAction" id="menu_edit_copy"> <property name="stock_id"> gtk-cópia </ property> <property name="name"> menu_edit_copy </ property> </ object> <acelerador key = " C "modificadores =" GDK_CONTROL_MASK "/> </ criança> <classe de objeto =" GtkAction "<child> id =" menu_edit_paste "> <property name="stock_id"> gtk-paste </ property> <nome da propriedade =" nome "> menu_edit_paste </ property> </ object> <accelerator key="V" modifiers="GDK_CONTROL_MASK"/> </ criança> <classe de objeto =" GtkAction "<child> id =" menu_edit_find "> <nome da propriedade =" stock_id "> gtk-encontrar </ property> <property name="name"> menu_edit_find </ property> </ object> <accelerator key="F" modifiers="GDK_CONTROL_MASK"/> <criança /> <child> objeto < class = "GtkAction" id = "menu_tabs"> <property name="name"> menu_tabs </ property> <property name="label" translatable="yes"> _Tabs </ property> </ object> </ criança> <objeto 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"/> </ criança> <classe de objeto = "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"/> <criança /> <child> <= classe de objeto " GtkAction "id =" menu_tabs_undo_close_tab "> <property name="name"> menu_tabs_undo_close_tab </ property> <property name="label" translatable="yes"> _Undo Close Tab </ property> </ object> <acelerador key =" t "modificadores =" GDK_SHIFT_MASK | GDK_CONTROL_MASK "/> </ criança> <classe de objeto =" GtkAction "<child> id =" menu_tabs_left "> <property name="name"> menu_tabs_left </ property> <nome da propriedade =" rótulo "traduzível =" yes "Tab> Mover _Alt </ property> </ object> <accelerator key="Page_Up" modifiers="GDK_CONTROL_MASK|GDK_SHIFT_MASK"/> <criança /> <child> <classe de objeto =" GtkAction id "= "menu_tabs_right"> <property name="name"> menu_tabs_right </ property> Tab Move <property nome translatable="yes"> = "label" _Right </ property> </ object> <acelerador key = "page_down" modificadores = "GDK_CONTROL_MASK | GDK_SHIFT_MASK" /> </ criança> <classe de objeto = "GtkAction" <child> id = "menu_tabs_detach"> <property name="name"> menu_tabs_detach </ property> <nome da propriedade = "label" traduzível = " yes "> _Detach Tab </ property> </ object> </ criança> <classe de objeto =" GtkAction "<child> id =" menu_help "> <property name="name"> menu_help </ property> nome da propriedade <= "rótulo" traduzível = "yes"> _Help </ property> </ object> </ criança> <classe de objeto = "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> <acelerador chave = "F1" modificadores = "" / > </ criança> <classe de objeto = "GtkAction" <child> id = "menu_help_about"> gtk-sobre <property name="stock_id"> </ property> <property name="name"> menu_help_about </ property> < / object> </ criança> </ object> </ criança> <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/> <ação menuitem = "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"/> < separador /> <menuitem action="menu_edit_find"/> </ menu> <Menu action="menu_tabs"> <menuitem action="menu_tabs_prev"/> <menuitem action="menu_tabs_next"/> <ação menuitem = "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"> <menuitem action = "menu_help_contents "/> <placeholder name="LaunchpadItems"/> <menuitem action="menu_help_about"/> </ menu> </ menu> </ u> </ object> <object class="GtkWindow" id="chat_window"> <property name="title" translatable="yes"> bate-papo </ property> <property name="role"> bate-papo </ property> <property name="default_width"> 580 </ property> <nome da propriedade = "default_height "> 480 </ property> <classe de objeto =" GtkVBox "<child> id =" chat_vbox "> <property name="visible"> True </ property> <child> <classe de objeto =" GtkMenuBar "builder =" ui_manager "id =" chats_menubar "> <property name="visible"> True </ property> </ object> <property name="expand"> <packing> False </ property> <property name="fill"> False < / property> </ embalagem> </ criança> <child> <placeholder/> </ criança> </ object> </ criança> </ object> </ interface>
Leia mais