Eu gostaria de saber ou é possível configurar o Terminal GNOME de uma maneira que, quando eu abrir o terminal e já houver uma instância aberta, ela mostrará essa instância e não abrirá uma nova.
Eu gostaria de saber ou é possível configurar o Terminal GNOME de uma maneira que, quando eu abrir o terminal e já houver uma instância aberta, ela mostrará essa instância e não abrirá uma nova.
Respostas:
Eu escrevi um script de shell simples usando wmctrl para dar foco ao Terminal. Faz exatamente o que eu quero.
Primeiro, instale o wmctrl sudo apt-get install wmctrl
.
Em seguida, inicie um editor de texto e copie as seguintes linhas.
#!/bin/sh
SERVICE='gnome-terminal'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
wmctrl -xa $SERVICE
else
$SERVICE
fi
Salve o arquivo em algum lugar onde você normalmente mantém seus scripts de shell. No meu caso, fiz: ~/bin/single_instance.sh
cd para o diretório ( cd ~/bin
) e torne o arquivo executávelchmod +x single_instance.sh
Agora, abra o Menu Principal, selecione Acessórios » Propriedades da impressora terminal e substitua o comando pelo script:~/bin/single_instance.sh
Abra Configurações do sistema »Teclado» Atalhos . Desative o atalho do Terminal de inicialização , dando a ele um backspace. Faça um atalho personalizado. Novamente, preencha o caminho e o nome do script e dê a combinação de teclas ctrl + alt + t .
Você está pronto, terminal de instância única ...
Adicione --tab ao comando do iniciador. Então você acaba com apenas um aplicativo. aberto.
~$ gnome-terminal --help-all
:
--tab Open a new tab in the last-opened window with the default profile
É o comportamento padrão se você usar o atalho Mod4+#
( Mod4
= Super = "Windows", #
é o número no iniciador) para abrir qualquer aplicativo.
Eu gostaria de adicionar meu próprio script, pois acho extremamente útil:
Eu configurei o atalho Ctrl + Alt + T para executar esse script e acho ainda mais confortável que o Guake ou o Tilda.
#!/usr/bin/env sh
# APP is the binary name you see when you do ps
APP="gnome-terminal"
# WIN_CLASS is the window class you see when you do wmctrl -lx
WIN_CLASS="gnome-terminal-server.Gnome-terminal"
# Use the app from current workpace first, or any if not available
WORKSPACE=$(wmctrl -d | grep '\*' | cut -d ' ' -f1)
TPID=$(ps aux | pgrep $APP)
if [ "$TPID" ]
then
QTERM_WIN=$(wmctrl -lx | grep $WIN_CLASS | grep $WORKSPACE | awk 'NR == 1 {print $1}')
if [ "$QTERM_WIN" ]
then
wmctrl -ia $QTERM_WIN
else
# No valid app found in the current workspace, switch to any
QTERM_WIN=$(wmctrl -lx | grep $WIN_CLASS | awk 'NR == 1 {print $1}')
wmctrl -ia $QTERM_WIN
fi
else
$APP &
fi
Eu o uso com o QTerminal, mas modifiquei para atender às suas necessidades. Boa sorte