No Openbox, é possível executar um comando em uma janela correspondente ou abrir um novo se não houver correspondência?

1

Essencialmente, estou procurando uma maneira de manter um terminal aberto executando o tmux e abrir novas janelas dentro da sessão, em vez de gerar novos terminais.

Ao pressionar uma sequência de teclas, gostaria de abrir um novo terminal se não houver um aberto. Mas se já houver uma aberta, gostaria de mudar para a área de trabalho, se necessário, e focar a janela, depois enviar o comando.

Eu encontrei a documentação para a ação If para windows e esperava que houvesse uma construção semelhante para ações globais também, mas não estou vendo isso.

Editar: Solução

Acabei usando uma versão simplificada do script do jw013 .

O script original foi escrito para um efeito de terminal de terremoto, mas o que eu queria era mais simples: não alternar um terminal, mas simplesmente abrir sempre uma janela em uma única sessão de terminal do tmux. O componente chave que eu estava perdendo foi wmctrl , que eu não tinha ouvido falar.

Usando o script do jw013 como base, simplifiquei para:

# the variable name for the window (used in openbox rc.xml for the rule as well)
wmclass=tmux_terminal

# if we successfully focus the window then open a new tmux window inside
if wmctrl -a $wmclass -x; then
  tmux new-window

# otherwise the window hasn't been opened.  open it and attach to tmux.
else
  urxvt -name $wmclass -e tmux attach &
fi

Em seguida, vinculei isso a W-space no openbox e configurei um aplicativo para name=tmux_terminal para abrir maximizado no primeiro desktop. Agora, se o terminal não estiver aberto, W-space irá abri-lo e anexá-lo ao tmux, senão, ele simplesmente irá para a janela de sessão tmux existente e abrirá uma nova janela dentro dele.

    
por numbers1311407 30.08.2011 / 05:06

1 resposta

1

Eu não acho que openbox pode fazer exatamente isso, pelo menos não ainda, mas seria um terminal de estilo drop-down semelhante ao terremoto que você pode mostrar / ocultar com uma tecla de atalho ser um substituto aceitável? Alguns como Tilda, Yakuake, Guake, etc. são emuladores de terminal especialmente projetados para ter a habilidade semelhante a um terremoto. Além disso (plugue sem vergonha), há este pequeno script que eu escrevi para uso pessoal que faz algo similar para xterm - eu tenho Alt - ' mapeado para executá-lo e a primeira coisa que sempre faço nesse terminal é executar screen (semelhante a tmux ).

    
por 30.08.2011 / 07:58