Como forçar o gedit a abrir uma nova janela independentemente das janelas existentes do gedit sempre que um arquivo de texto é clicado duas vezes na área de trabalho Gnome do Debian 8?

9

Como pode geditser forçado a abrir uma nova janela independentemente das janelas gedit existentes sempre que um arquivo de texto (.txt) é clicado duas vezes em uma área de trabalho Gnome do Debian 8, Jessie?

Suponha que a.txt já esteja aberto em uma janela do gedit, e que b.txt seja clicado duas vezes na área de trabalho Gnome do Debian 8 Jessie. Infelizmente, por padrão de fábrica, b.txt será aberto em uma guia na mesma janela que a.txt.

No entanto, quero b.txtser aberto em uma nova janela do gedit para que existam duas janelas - a janela existente para a.txt e uma nova janela para b.txt.

Se o Gnome invocou o gedit com a opção "-s" como em

gedit -s b.txt

então b.txtseria aberto em uma nova janela, enquanto a.txt permanece em sua janela existente.

No entanto, por padrão, o Gnome parece invocar o gedit sem a opção "-s".

O arquivo de configuração

/usr/share/applications/org.gnome.gedit.desktop

contém a diretiva de execução

Exec=gedit %U

Então, eu mudei para

Exec=gedit -s %U

pelos seguintes comandos e reiniciou o computador.

cd /usr/share/applications
su # similar to sudo
mv org.gnome.gedit.desktop org.gnome.gedit.desktop.bak
perl -pe 's/Exec=gedit %U/Exec=gedit -s %U/' org.gnome.gedit.desktop.bak > org.gnome.gedit.desktop
diff org.gnome.gedit.desktop org.gnome.gedit.desktop.bak

No entanto, este método falhou. O b.txt ainda abre em uma guia na mesma janela que a.txt. Estou preso. Preciso da tua ajuda.

O modo padrão do gedit é "janela única, várias guias". Eu quero o modo "várias janelas".

A propósito, o seguinte método inútil transforma o gedit no modo "janela única, sem guia", que não é o que eu quero.

gsettings set org.gnome.gedit.preferences.ui show-tabs-mode 'never'

Com esse método "gsettings", o gedit fecha automaticamente o a.txt e reutiliza a janela existente do a.txt para abrir o b.txt sempre que b.txt é clicado duas vezes na área de trabalho. Portanto, é o modo "janela única, sem guia" (ao contrário de "várias janelas").

(A propósito, o valor padrão para "show-tabs-mode" é 'auto'.)

i7pj3qnuz
fonte
@don Eu não estou muito familiarizado com o iniciador. Quais são os comandos para chamar o iniciador separado?
I7pj3qnuz

Respostas:

5

A razão pela qual sua modificação da Execchave no arquivo .desktop não funcionou é que o gedit está ativado pelo DBus. Isso significa que ele é iniciado por meio do daemon DBus da sua sessão e, em seguida, fornece uma interface DBus comum para esses programas ativáveis ​​especificarem os arquivos a serem abertos. Você pode evitar isso alterando a DBusActivatablechave para false.

Além disso, é muito melhor criar uma cópia do arquivo .desktop que você deseja modificar no diretório inicial e usá-lo para substituir o arquivo em todo o sistema do que modificá-lo diretamente. Dessa forma, o sistema não será sobrescrito nas atualizações de pacotes de distribuição. Para fazer isso basta copiar /usr/share/applications/org.gnome.gedit.desktoppara ~/.local/share/applications/org.gnome.gedit.desktop. Os arquivos nesse caminho substituirão os arquivos com o mesmo nome no diretório do sistema.

Depois, há também uma diferença importante entre os dois possíveis sinalizadores usados ​​para abrir uma nova janela: --new-windowou -s. Ambos resultarão na abertura dos arquivos em uma nova janela, mas a -scada janela também pertencerá ao seu próprio processo. Ao usar --new-windowtodas as janelas, compartilhe o mesmo processo gedit.

E, finalmente, para garantir que isso também funcione, se você selecionar vários arquivos no seu gerenciador de arquivos e abri-los, precisará de outra modificação da Execchave. Os %Umeios que várias URLs são permitidos como argumentos para esse comando, o que significa que o gerenciador de arquivos começaria assim: gedit --new-window file1.txt file2.txt. Isso resulta em uma única nova janela com duas guias. Se você mudar para %uagora, isso informa ao gerenciador de arquivos que o aplicativo aceita apenas uma única URL como argumento e, portanto, faz com que ele execute o comando várias vezes, sempre com um arquivo diferente como argumento. Para obter mais detalhes, consulte a especificação de entrada da área de trabalho do freedesktop .

Sebastian
fonte
0

Com base na resposta de Sebastians , faça o seguinte:

  1. Faça uma cópia local das configurações do gedit. As alterações que você fizer aplicam-se apenas ao usuário atual.

    cp /usr/share/applications/org.gnome.gedit.desktop ~ / .local / share / applications / geditNewWin.desktop

  2. No arquivo ~ / .local / share / applications / geditNewWin.desktop: Vá para todas as EXEC=linhas (existem algumas) e defina-as como Exec=gedit -s %U. Mudança adicional Name=Text Editorpara Name=Text Editor (new window).

  3. No Nautilus File Manager (gerenciador de arquivos padrão no Gnome, geralmente chamado de 'Arquivos' ou Gnome Files ), associe os tipos de arquivos (.txt, .csv, ...) ao seu aplicativo recém-criado:

    • clique com o botão direito do mouse em um arquivo .txt (ou qualquer outro tipo de arquivo que você desejar)
    • clique em 'Propriedades'
    • escolheu a guia 'Abrir com'
    • selecione 'Editor de texto (nova janela)' na lista
    • Clique em 'Definir como padrão'
Markus Dutschke
fonte