Obtendo ou clonando o terminal atual do usuário?

5

Eu tenho que trabalhar com um script que bifurque e lance uma instância do xterm para exibir a saída do log em uma janela e ter uma interface interativa na outra. Pessoalmente eu prefiro o rxvt-unicode e gostaria de modificar este script para que ele não seja mais codificado para usar o xterm.

É possível descobrir o terminal preferencial dos usuários de maneira agnóstica para desktop ou obter o terminal pai. O terminal pai pode não ser o próximo pai na árvore de processos, pois é possível que o script em questão possa ser chamado por outro script ou aplicativo.

Como o script é escrito em Perl, uma solução escrita em Perl é boa o suficiente, desde que não tenha dependências estranhas (não consigo controlar o ambiente global).

    
por David Holm 20.12.2012 / 14:37

2 respostas

3

Freedesktop especifica as formas padrão de abrir arquivos com o programa favorito do usuário (o xdg-open comando), de lançar um protetor de tela ( xdg-screensaver ) e mais . Infelizmente para você, um xdg-terminal foi proposto e você pode encontrar um implementação de terceiros mas é não amplamente disponível .

Você poderia fazer pior do que reutilizar o script Chromium xdg-terminal . Ele tenta detectar o ambiente de área de trabalho do usuário, voltando para $TERM , voltando para xterm .

    
por 21.12.2012 / 02:09
1

Não sei se existe uma maneira agnóstica de encontrar o terminal preferencial, mas talvez você queira pesquisar em freedesktop.org . Por exemplo, xdg-utils é um pouco parecido com o que você está procurando, embora exatamente o terminal seja ligeiramente diferente do "use o aplicativo A para abrir o B" aproxime-se do Portland parece estar tomando o projeto.

    
por 20.12.2012 / 16:03