Questão Como alternar aplicativos no Ubuntu / Gnome usando um pressionamento de tecla alternativo para o padrão ALT + TAB?


No Ubuntu / Gnome, é possível simular ALT + TAB usando uma única tecla de atalho alternativa?

Eu gostaria de simular ALT + TAB com uma única tecla pressionada (de preferência a tecla de contexto do menu) no meu teclado.

Para simular isso corretamente, ele deve agir como se a tecla ALT tivesse sido pressionada primeiro e depois a tecla TAB fosse pressionada após um pequeno atraso - por outro lado, se você simulasse ambas as teclas sendo pressionadas exatamente ao mesmo tempo, eu acredito o menu de navegação de tarefas não aparece.

Alguém sabe como simular isso no Ubuntu?

ATUALIZAR:

Seguindo a sugestão de John T, eu instalei o monodevelop, baixei o IronAHK e rodei "make install all" e recebi este erro:

/mainline/Scripting/IACodeProvider.cs(100,32): error CS1502: 
The best overloaded method match for
`System.CodeDom.Compiler.CompilerError.CompilerError(string, int, int, 
string, string)' has some invalid arguments /usr/lib/mono/gac/System
/2.0.0.0__b77a5c561934e089/System.dll (Location of the symbol related 
to previous error) /mainline/Scripting/IACodeProvider.cs(100,32): 
error CS1503: Argument `#4' cannot convert `int' expression to type `string'

2


origem


Também tentei usar o gconf-editor como descrito aqui: howtogeek.com/howto/ubuntu/… mas não teve efeito para o ALT-TAB. - lipton
Hmm. A maneira que Alt + Tab funciona é fundamentalmente um sistema de duas chaves. Mantenha pressionada a tecla Alt e pressione e solte a guia várias vezes para percorrer as janelas. Portanto, se você definir uma única chave para a combinação de teclas Alt + Tab, só poderá alternar entre as duas janelas usadas mais recentemente. Se você quiser usar uma única chave para o ciclismo de janelas, terá que explicar como quer contornar este problema. - Ryan Thompson


Respostas:


Se você estiver usando compiz como seu gerenciador de janelas, ou seja, se você tiver ativado efeitos visuais, basta instalar o compizconfig-settings-manager pacote. O início do gerenciador de configurações via System -> Preferences -> CompizConfig Settings Manager. Agora encontre as configurações para o Application Switcher módulo e você pode atribuir qualquer tecla de seu gosto para o Next e Previous Window comandos.


2



compiz parece exigir muitos recursos de processamento pesado que minha máquina ubuntu não possui. - lipton
Bem. Eu disse "se". Eu não queria encorajar você a usar o compiz. - innaM
@ Manni: Entendi. Obrigado. - lipton
Existe alguma solução que não envolva compiz? 1) falha meu sistema operacional (e eu não quero consertá-lo). 2) Usa um visual diferente para percorrer os aplicativos - Sridhar-Sarnobat


Como você não está usando o Compiz, você deve verificar suas opções em System -> Preferences -> Keyboard Shortcuts. o Window Management A seção contém pelo menos duas entradas que podem ser úteis aqui: Move between windows, using a popup menu e Move between windows immediately. Talvez você possa atribuir um único atalho de tecla para um desses.


1



Obrigado. Sim, no comentário acima, mencionei que tentei seguir algumas instruções sobre howtogeek.com/howto/ubuntu/… mas, como Wil assinalou acima, há um atraso exigido que não parece ser compatível com essas instruções. Eu tentei definir "Mover entre janelas" como "configurações globais" no gconf-editor, mas não teve efeito. - lipton


Nova resposta

Eu tenho andado por aí pela última hora para chegar a uma solução, mas estou perplexo. O que eu consegui fazer é fazer uma macro que faz Alt+Aba, em seguida, envia um adicional Aba a cada dois segundos ... Mas eu não tenho idéia de como terminar o script quando você tiver o suficiente. (Você só precisa tocar uma tecla uma vez para começar)

Eu estou querendo saber se qualquer gurus de macro / Linux pode fazer uma segunda macro ou script que pode terminar a macro de jogar mediante solicitação - isso simplesmente funciona quando você pressiona uma tecla e solta.

No Ubuntu, comece indo até o terminal e digite:

sudo apt-get install xmacro

(Agora, eu não sou o melhor cara do Linux, mas eu não tenho a menor ideia de por que eu não consegui encontrar isso no gerenciador de pacotes synaptic, mas eu tive que digitá-lo no terminal).

Em seguida, o script que eu fiz é (salve isso em algum lugar, eu chamei de test.macro no meu diretório home)

KeyStrPress Alt_L

Em seguida, copie e cole o seguinte quantas vezes quiser:

KeyStrPress Tab
KeyStrRelease Tab
Delay 2

Para executar isso, você precisa digitar o seguinte (do local em que a macro foi salva):

cat test.macro | xmacroplay ":0.0"

Eu criei um alias / hotkey para o comando acima.

Novamente, isso não é uma solução, mas esperamos que seja um ponto de partida. Cheguei perto, mas depois de passar muito tempo, não consigo encontrar uma solução sólida. Desculpe, mas espero que isso te aproxime.


RESPOSTA VELHA

Tanto quanto eu sei, não é possível.

Eu olhei em vários arquivos de configuração, mas não consigo encontrar uma boa maneira de replicar Alt+Aba devido à maneira como funciona.

Simplificando, você precisa segurar um para baixo enquanto o outro faz a troca.

O que eu recomendo que você faça e eu possa olhar para ele se você quiser, é escrever uma macro que automaticamente, quando uma tecla é pressionada, Alt+Aba, em seguida, envia outro Aba cada par de segundos. Deixar ir simplesmente libera no aplicativo atualmente selecionado.


1



Wil: você entendeu o problema sobre a necessidade de um atraso entre as teclas pressionadas. Eu escreveria uma macro se soubesse como - ou em qual tecnologia / linguagem fazer isso. ALT + TAB agrava seriamente a minha dor RSI no meu pulso. É por isso que estou oferecendo toda a minha reputação como recompensa por isso. É mais que um inconveniente. Na verdade, é um problema de saúde. Então, se você puder me ajudar a descobrir como criar uma macro, eu realmente aprecio isso. - lipton
Desculpe, ainda sem resposta, mas eu passei muito tempo com isso para você sem muita sorte - no entanto, espero que você fique muito mais perto. - William Hilsum
Wil: Obrigado por tentar. Eu agradeço. Eu vou ver se a sugestão do IronAHK pode funcionar melhor. - lipton
Deve fazer, você está tendo os mesmos problemas que eu fiz para instalá-lo, no entanto, esse script é muito melhor e o que eu estava tentando fazer sem muita sorte! - William Hilsum
@Wil: Obrigado por me informar que você teve problemas semelhantes ao instalar o IronAHK. Na verdade, isso não é um bom presságio para que essa solução funcione. - lipton


Não é bem o que você está procurando, mas pode ajudar o seu RSI? Eu uso Superswitcher (http://code.google.com/p/superswitcher/) para complementar o Metacity Alt-Tab padrão. Ao pressionar a tecla "Windows" no meu teclado (a tecla "Super" no jargão do superswitcher) aparece uma lista de tarefas. A travessia da lista é com as teclas para cima / baixo, pode selecionar com o clique do mouse também. Ciclismo é através de todas as janelas no espaço de trabalho atual em um fixo ordem (a ordem em que aparecem na barra de tarefas).

Parecia alpha ver & unmaintained, mas o .deb de 64 bits (de 2007) funciona no meu 9.04 x86_64.


1



Obrigado. Eu instalei. É legal, mas eu gostaria que tivesse uma maneira de configurar as teclas de atalho para o que você preferir. Se eu não conseguir qualquer outra opção para trabalhar, eu posso tentar recompilá-lo com minhas próprias configurações de chave. - lipton


Usar IronAHK, é uma reescrita completa do AutoHotkey que é executado sob o Mono para compatibilidade com Mac e Linux (ele vem com um script de compilação).

Quanto ao código:

Numpad1::
Send {Alt Down}
Sleep, 1000
Send {Tab}
Loop
{
   GetKeyState, state, Numpad1, P
   if state = U
      break
   Sleep, 1000
   Send {Tab}
}
Send {Alt Up}
return

isso definiria o número 1 no teclado numérico para enviar a sequência Alt-Tab com um atraso de 1 segundo. Sinta-se à vontade para modificar o código ao seu gosto!


1



Você é muito melhor no AHK do que eu ... mas, leia a minha resposta - isso vem com exatamente os mesmos problemas que eu tenho - basicamente, se você fez isso em sua máquina, seria apenas alt + tab e soltar o alt. .. que é inútil e só vai e volta ... Ele precisa de um loop que pressiona a guia e, em seguida, deixa ir quando você parar de pressionar 1, no entanto, eu tentei por um tempo e não tenho onde, como eu não sei se é possível fazer loops etc. - William Hilsum
Ah, eu meio que vejo o que você está dizendo. Eu adicionarei um loop. - John T
Eu acho que essa é a lógica correta. Envie alt, espere um segundo antes de enviar a guia. Agora a janela de navegação da guia está aberta. Se o Numpad1 ainda estiver sendo pressionado, envie uma guia a cada segundo. Quando Numpad1 for liberado, liberte-se de alt. - John T
Eu estava tentando olhar para IronAHK em uma VM e fazê-lo funcionar ... Acho que você me bateu! Eu realmente preciso olhar para o AHK, parece brilhante! - William Hilsum
Deve funcionar, aqui está uma prévia no XP mas tenho que rodar, vou atualizar mais tarde se houver algum problema: i33.tinypic.com/et9ws6.gif - John T


Faça um script que reconecte a chave atribuída a:

  1. Inicie o script (Alt+Aba)
  2. Mover para baixo a linha do aplicativo (Aba)

1