Por que ...
gedit
tem um algoritmo bastante interessante para determinar se ele abre uma nova instância ou se é aberto em uma guia em uma instância existente.
Localizado no arquivo de origem gedit-app.c
na função static boolean is_in_viewport
, o algoritmo testa se a instância atual do gedit é
- no mesmo número de tela e nome de exibição
- na mesma área de trabalho
- maior que 25% das bordas da porta de exibição
Se todos forem verdadeiros, o gedit será aberto na mesma instância em uma nova guia ou será aberto em uma nova janela.
Em resumo - a única maneira realista de mudar o comportamento é mudar o algoritmo ...
Como ...
O seguinte é uma maneira rápida de obter uma maneira consistente de abrir o gedit ... ele sempre abrirá uma nova instância.
instale as ferramentas básicas de desenvolvimento
sudo apt-get install devscripts build-essential fakeroot
obtenha a fonte
cd ~/Downloads
mkdir build
cd build
apt-get source gedit
cd gedit-3.2*
faça a alteração
Abra gedit-app.c
gedit gedit/gedit-app.c
adicione return FALSE;
como mostrado e salve.
O que isto faz é sempre sair da rotina dizendo "Eu não estou correndo em uma viewport e, portanto, sempre abra uma nova instância"
Se você usar return TRUE;
, isso sempre será aberto em uma instância existente do gedit em uma nova guia ...
atribua um nome de pacote exclusivo
OK, precisamos fornecer ao pacote um nome exclusivo para impedir que as atualizações do repositório sobrescrevam o pacote alterado
gedit debian/changelog
agora acrescente +yourname
à versão top line e salve o arquivo, por exemplo
Observação - para ter certeza absoluta - depois de instalar o pacote modificado abaixo, bloqueie a versão conforme a pergunta vinculada abaixo.
construa o pacote
sudo apt-get build-dep gedit
debuild -i -us -uc -b
Vá tomar um café ...
cd ..
sudo dpkg -i gedit*.deb
Pergunta relacionada: