aMSN - Mudar abas da janela de grupo (RESOLVIDO)

Iniciado por raci0nal, 16 de Julho de 2006, 23:53

tópico anterior - próximo tópico

raci0nal

Olá amigos livres,

Uma função ótima que existe no aMSN (instalei o 0.97b a partir do SVN e está ótimo) é a de janelas de grupos com as conversas em abas.

Porém não consegui encontrar nenhum atalho para alternar entre as abas através do teclado (não gosto muito de mouse).
Assim como no Firefox, por exemplo, que o Ctrl+Tab alterna as abas, existe no aMSN algum atalho para esta função?

Grande abraço à todos.

Marcos Antonio Campos Jordão''

raci0nal

Encontrei a solução no Ubuntu Forums (inglês) no seguinte tópico:
http://www.ubuntuforums.org/showthread.php?t=111798&highlight=amsn+tab





Para o Ctrl+Tab (mudar aba) e o Ctrl+F4 (fechar aba) funcionarem é necessário executar o seguinte procedimento:

1. Abra como root o arquivo chatwindow.tcl que se encontra dentro da instalação do seu aMSN,:
sudo gedit /usr/share/amsn/chatwindow.tcl

2. Localize a seção bindings: Ctrl+F > bindings, você vai encontar:
# Create the necessary bindings
bind $w <<Cut>> "status_log cut\n;tk_textCut \[::ChatWindow::GetCurrentWindow $w\]"
bind $w <<Copy>> "status_log copy\n;tk_textCopy \[::ChatWindow::GetCurrentWindow $w\]"
bind $w <<Paste>> "status_log paste\n;tk_textPaste \[::ChatWindow::GetCurrentWindow $w\]"


3. Acrescente após a última linha (a do Paste) o seguinte código:

bind $w <Control-KeyRelease-Tab> "::ChatWindow::GoToNextTab $w"
bind $w <Control-F4> "::ChatWindow::CloseTab \[set ::ChatWindow::win2tab(\[::ChatWindow::GetCurrentWindow $w\])\]"


4. Deverá ficar assim:

# Create the necessary bindings
bind $w <<Cut>> "status_log cut\n;tk_textCut \[::ChatWindow::GetCurrentWindow $w\]"
bind $w <<Copy>> "status_log copy\n;tk_textCopy \[::ChatWindow::GetCurrentWindow $w\]"
bind $w <<Paste>> "status_log paste\n;tk_textPaste \[::ChatWindow::GetCurrentWindow $w\]"
bind $w <Control-KeyRelease-Tab> "::ChatWindow::GoToNextTab $w"
bind $w <Control-F4> "::ChatWindow::CloseTab \[set ::ChatWindow::win2tab(\[::ChatWindow::GetCurrentWindow $w\])\]"



4. Vá ao final do arquivo (Ctrl+End) e acrescente o seguinte código:

# ::ChatWindow::GoToNextTab ( container )
# Used to switch to the next tab in a container. Called by the binding for the
# <alt>+<tab> key combination. The list of windows in the container is used to
# determine the next tab. ::ChatWindow::SwitchToTab is used for switching.
# Arguments:
# - container => The container window in which the current tab is located.
proc GoToNextTab { container } {
    set currentWin [::ChatWindow::getCurrentTab $container]
    set windows [set ::ChatWindow::containerwindows($container)]
    set tabPos [lsearch $windows $currentWin]
   
    # If the current tab is the last go the the first, else go to the next.
    if { $tabPos == [expr [llength $windows] - 1] } {
set nextTab 0
    } else {
set nextTab [expr $tabPos + 1]
    }
   
    SwitchToTab $container [lindex $windows $nextTab]
}


5. Agora é só executar o aMSN.

Lembrando que se você quiser pode criar um backup do arquivo antes de alterá-lo para que no caso de algum problema possa restaurar a versão que funciona (este é um procedimento muito válido em qualquer procedimento):
sudo cp /usr/share/amsn/chatwindow.tcl /usr/share/amsn/chatwindow.tcl_backup

Os procedimentos foram retirados do tópico do Ubuntu Forums, desconheço o autor, mas mesmo assim ficam os créditos à ele.

Abraços.

Marcos Antonio Campos Jordão''