Existe uma maneira de trazer o terminal para a frente quando tudo o que eu fiz foi feito?

1

Então, eu estou querendo saber se era possível trazer na frente o meu terminal quando o que eu corri agora está feito.

Eu não estou falando sobre coisas como

  

run_long_task; bring_to_front_somehow;

mas algo que faria isso automaticamente.

Isso melhoraria muito minha produtividade:)

Estou usando o zshell (se isso ajudar)

    
por Paté 25.04.2014 / 01:58

2 respostas

0

Ok, eu trabalhei.

Então eu tive que encontrar uma maneira de se conectar à tela de prompt.

Então, basicamente no meu tema zsh, adicionei um método para trazer para a frente a janela atual.

function bring_to_front {
  xdotool windowactivate $WINDOWID
}

$ WINDOWID é definido pelo gnome-terminal automaticamente.

e a mágica é apenas chamar esse método como parte do prompt. Desta forma, toda vez que o prompt é exibido, ele irá trazê-lo para a frente. E como o prompt é exibido quando o comando anterior é concluído ...

PROMPT='$(bring_to_front)${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'

A próxima coisa que estou tentando alcançar é selecionar a guia à direita. Eu atualizarei a resposta se eu conseguir isso.

EDITAR

Bônus Mude para a guia direita

Disclaimer: Isso é hacky como o inferno, então tenha paciência comigo.

isso funciona apenas para o terminal do gnome.

function alert_done {
  xdotool windowactivate $WINDOWID
  child_count='pgrep --parent $PPID -c'
  # we need to remove the first child as it's gnome-tty-helper and not a tab
  terminal_count='expr $child_count - 1'
  terminal_pids='pgrep --parent $PPID | tail -n $terminal_count | tr '\n' ' ''
  eval "pid_array=($terminal_pids)"
  xdotool key alt+${(k)pid_array[(r)$$]}
}
    
por Paté 25.04.2014 / 19:39
1

Primeiro, você precisa instalar o wmctrl , que é uma ferramenta de linha de comando para interagir com um Compatível com EWMH / NetWM X Window Manager:

sudo apt-get install wmctrl

Para focar o Terminal correto, você precisará iniciá-lo com um determinado título, assim:

gnome-terminal -t tototiti

Depois, você pode trazê-lo para a frente com o seguinte comando:

sleep 10; wmctrl -a tototiti

Observação : wmctrl -a STRING dá foco a uma janela que contém STRING no título

Testado com bash e zsh

    
por Sylvain Pineau 25.04.2014 / 11:54