Terminator: janela única, foco no lançamento

8

Estou configurando o Terminator para minha área de trabalho. Eu uso o atalho Ctrl+ Alt+ Tpara iniciá-lo. Como eu quero apenas uma única instância em execução, eu uso run-one terminatorcomo o comando do iniciador.

Agora, se uma instância do Terminator estiver em execução, uma nova instância não será iniciada, mas a instância existente não será focada .

Alguma idéia de como eu poderia obter a janela do Terminator para obter foco?

Mr Hyde
fonte

Respostas:

4

Tente instalar o wmctrl : sudo apt-get install wmctrl
agora o comando wmctrl -a STRINGfocaliza uma janela que contém STRING em seu título,
para que seu comando final seja:

run-one terminator; wmctrl -a Terminator
Denis
fonte
Obrigado pelo ponteiro. Eu encontrei uma solução que funciona muito bem, detalhada abaixo.
Hyde
8

Aqui está um método que funciona sem run-oneassumir que wmctrlestá disponível:

wmctrl -xa terminator.Terminator || terminator

Isso pressupõe que o nome da classe da janela padrão esteja sendo usado. Você pode ser criativo se quiser e usar um nome de classe personalizado ao iniciar terminator. Isso permitirá que você mantenha o atalho do terminador separado de uma instância normal do terminador :

wmctrl -xa MyCustomTerminator.Terminator || terminator -c MyCustomTerminator

Isso se baseia na resposta de Denis sem a necessidade run-one.

loleary
fonte
Alguma idéia de como alternar o foco?
Joe Eifert
Ótima solução. Eu tive que usar bash -c 'wmctrl -xa terminator.Terminator || terminator'no Ubuntu 18.10 usando o Gnome 3.30.1. Caso contrário, o atalho funcionaria apenas quando o terminador já estivesse em execução.
stebu92
1

Aqui está o truque em que decidi usar o run-one e o xdotool

Em /home/(user)/my_scripts/single_terminator_instance.sh

#!/usr/bin/bash

# run a single instance of terminator
/usr/bin/run-one /usr/bin/terminator

# search for the terminator window and focus!!!
/usr/bin/xdotool search --onlyvisible --class terminator windowactivate

Então

  1. Altere o comando de atalho do Terminator Main Menupara apontar para o script acima
  2. Nos atalhos de teclado, Ctrl+ Alt+ Tativa o script

Ao pesquisar no i'net, também me deparei com isso

Desde que eu sou novo no bash scripts, agradeço qualquer refinamento no hack!

Mr Hyde
fonte
Mais fácil: /usr/bin/wmctrl -xa terminator:-) em vez do xdotool! Obrigado Denis.
Hyde
você está certo! é o caminho certowmctrl -xa terminator
Denis
Eu tentei suas soluções, mas o run-one não funciona no meu computador com o Terminator. Ele sempre lança uma nova instância. Tens alguma ideia do porquê? Obrigado.
Tamás Barta 22/02
ps aux | grep terminatornão retorna nada. O processo é executado como emulador de terminal x para mim, então essa pode ser a causa. Fiz uma verificação manual assim: RUNNING = $ (ps aux | grep x-terminal-emulator | grep -v grep) if [[-z $ RUNNING]]; então x-terminal-emulator & fi
Tamás Barta
@ BartaTamás Você resolveu o seu problema. Meu script é apenas duas linhas de bash anexadas ao atalho de teclado. Agora eu o uso com o gnome-terminal e o tmux, e estou muito feliz com a solução. Mas também funciona de maneira confiável com o terminador. Talvez o mesmo atalho de teclado seja atribuído duas vezes (Ctrl + Alt + T). Apenas adivinhando!
Hyde