Geany: Abra uma nova instância por espaço de trabalho ao abrir um arquivo nesse espaço de trabalho

5

Estou usando o Mate 1.2.0 no Linux Mint 13. Os dois editores de texto que eu uso são Gedit e Geany (v0.25): eu uso Geany para todos os meus códigos, pois prefiro o realce de sintaxe e alguns outros recursos de interface .

Uma coisa que me incomoda é esse comportamento:

  • abre um arquivo no Geany no espaço de trabalho 1
  • ir para o espaço de trabalho 2
  • clique duas vezes em um arquivo para abri-lo (em Geany)
  • a área de trabalho alterna para a área de trabalho 1 novamente e abre o arquivo em Geany.

Quando faço isso no Gedit, ele abre uma nova instância do Gedit nesse espaço de trabalho, que se adapta ao meu estilo de trabalhar perfeitamente, onde eu tenho projetos diferentes abertos em cada espaço de trabalho.

Eu posso iniciar outra instância do Geany no menu de programas, e movo um para o outro espaço de trabalho, mas isso não muda o comportamento: então vejo isso:

  • abre um arquivo no Geany no espaço de trabalho 1
  • ir para o espaço de trabalho 2
  • inicie uma nova instância do Geany no menu do programa (agora eu tenho um por espaço de trabalho)
  • clique duas vezes em um arquivo para abri-lo (em Geany)
  • a área de trabalho alterna para a área de trabalho 1 novamente e abre o arquivo na primeira instância do Geany.

Por isso, sempre é possível abrir um arquivo no Geany "primário" e alternar para qualquer espaço de trabalho que esteja em funcionamento.

Existe uma maneira que eu possa mudar esse comportamento? Eu gostaria que fosse assim:

  • Ao abrir um arquivo: há um Geany em execução nesse espaço de trabalho?
    • sim: abra o arquivo nesse Geany
    • não: abra um novo Geany nesta área de trabalho e abra o arquivo nele.

Não consigo ver uma opção relacionada a isso nas configurações. Qualquer conselho apreciado! obrigado

    
por Max Williams 02.12.2015 / 11:40

5 respostas

4

Use esse lote para abrir o Geany. Isso abrirá um soquete separado específico para cada espaço de trabalho.

Por exemplo, no Thunar, use 'abrir com outro aplicativo' e aponte para esse arquivo em lotes.

#!/bin/sh

socket='xprop -root _NET_CURRENT_DESKTOP'
socket=${socket##* }

if [ "$socket" ]
then
    if [ "$DISPLAY" ]
    then
        socket="${DISPLAY%.*}-$socket"
        socket=${socket#*:}
    else
        socket="NODISPLAY-$socket"
    fi
    exec geany --socket-file "/tmp/geany_socket_$socket" "$@"
else
    exec geany "$@"
fi
    
por 19.09.2016 / 23:26
2

Vá para o terminal e digite geany -h para mostrar todas as opções disponíveis. Entre eles -i, --new-instance Don't open files in a running instance, force opening a new instance é exatamente o que você precisa.

HOW TO

  1. Encontre aquilo em que você está clicando.

  2. Abra-o em qualquer editor de texto ou encontre uma maneira de alterar o comando que está sendo executado. (Pode ser complicado se for um lançador na bandeja, por exemplo).

  3. Altere o comando de algo como geany -some_options para geany -some_options -i

-

feito.

    
por 08.01.2016 / 15:56
1

Isso se tornou muito longo para um comentário, então estou postando como resposta. Eu tive problemas para obter a resposta de Olivier para o trabalho, então pensei em incluir instruções mais detalhadas sobre a resposta dele, caso outras pessoas também tenham problemas (todo o crédito vai para ele, acima dele em vez de / assim como o meu).

Crie um arquivo de lote contendo

#!/bin/sh

socket='xprop -root _NET_CURRENT_DESKTOP'
socket=${socket##* }

if [ "$socket" ]
then
    if [ "$DISPLAY" ]
    then
        socket="${DISPLAY%.*}-$socket"
        socket=${socket#*:}
    else
        socket="NODISPLAY-$socket"
    fi
    exec geany --socket-file "/tmp/geany_socket_$socket" "$@"
else
    exec geany "$@"
fi

Coloque o arquivo em lote em um diretório incluído no PATH (consulte link ). Eu suponho que você nomeie o wgeany do arquivo de lote, caso contrário, substitua-o nas instruções a seguir com o que você nomeou.

Agora, vamos querer definir isso como nosso programa padrão para abrir arquivos de texto. Infelizmente, não está na lista e, pelo menos na minha versão, você não consegue fazer uma escolha personalizada, infelizmente.

Podemos resolver isso indo até ~/.local/share/applications ou /usr/share/applications (se um não existir / não funcionar / você não tiver permissão para tentar o outro) e criar um arquivo de texto chamado wgeany. área de trabalho contendo:

[Desktop Entry]
Name=wgeany
Comment=wgeany
Exec=wgeany %f
Type=Application
StartupNotify=false
Terminal=false
Categories=TextTools;
Name[en_US]=wgeany

Além disso, você pode querer incluir uma linha direcionando para o ícone geany correto ( Icon=path/icon.png ), mas eu não me preocupei em encontrá-lo. Salve o arquivo e agora seu arquivo de lote deve aparecer na caixa de diálogo aberta. (Você pode configurá-lo para ser o aplicativo padrão para um tipo de arquivo, digamos .txt, indo para as propriedades de um arquivo (desse tipo) e, em seguida, para a guia Abrir com e definir wgeany como padrão.

Obrigado também a MaxWilliams, que me ajudou a resolver isso.

    
por 02.05.2018 / 17:55
0

Se você usar 'File' e 'Open', o Geany abrirá o arquivo na instância atual 'principal', ou seja, a instância Geany que você está usando atualmente e não a primeira instância.

    
por 18.07.2016 / 14:41
0

geany.org documenta o seguinte:

use the following command to execute Geany on the current workspace:

geany --socket-file=/tmp/geany-sock-$(xprop -root _NET_CURRENT_DESKTOP | awk '{print $3}')

Agora, se você copiar o arquivo geany.desktop de todo o sistema (de / usr / share / applications /) para o diretório local de aplicativos (provavelmente ~ / .local / applications /), o arquivo local parece ter precedência ambos os menus da GUI (testado no menu de aplicativos do Whisker e do Xubuntu) e nos gerenciadores de arquivos (tentei thunar e spacefm).

Para que você possa adicionar a opção --socket-file acima em seu geany.desktop local, ter 1 instância geany por espaço de trabalho ou adicionar a opção -i sugerida em outras respostas, para ter uma instância geany por invocação. / p>

Ao iniciar o geany a partir de uma linha de comando, você pode adicionar, é claro, qualquer opção escolhida e até incluí-las em um alias para ter o mesmo comportamento.

    
por 17.11.2017 / 09:10