Como modificar o ambiente de shell visto por aplicativos iniciados via desktop?

1

Suponha que algum programa aleatório Foo

  1. modifica seu comportamento de acordo com os valores das variáveis de ambiente; e
  2. pode ser iniciado clicando em algum ícone do Foo disponível por meio de uma área de trabalho gráfica.
Vamos supor, para o resto deste post, que todas as instâncias de Foo em discussão foram, ou serão, iniciadas como descrito em (2) acima. IOW, para este post, descarta a possibilidade de iniciar o Foo através de alguma linha de comando.

Por concretude, vamos supor também que a atual sessão X11 foi iniciada "manualmente" pelo usuário; ou seja, digitando startx na linha de comando (interface de texto) em algum momento depois de um login (interface de texto) 1 .

Agora, AFAICT, por padrão, o ambiente herdado por todas as instâncias de Foo é o existente no momento em que o usuário executou startx 2 . (Por favor, me corrija se eu estiver errado.)

Minha pergunta é: Existe alguma maneira genérica (ou seja, independente do Foo) para eu modificar o ambiente herdado por instâncias subseqüentes do Foo (ou pelo menos pela próxima instância do Foo que é iniciada)?

Antecipando a possibilidade de que a resposta à questão (geral) acima seja "Não", abaixo eu forneço alguns detalhes específicos, na esperança de que a variante mais específica da pergunta tenha a resposta "Sim":

  1. no momento estou particularmente interessado no caso em que Foo é o Terminator (um emulador de terminal);
  2. meu shell é zsh ;
  3. minha área de trabalho é xfce4 + xfwm4.

1 Se a resposta a esta pergunta for diferente se a sessão do X11 tiver sido iniciada automaticamente após o usuário logar através de um login gráfico, por favor me avise.

2 Ou talvez seja mais preciso dizer que o ambiente herdado é constituído pelas variáveis de shell exportadas , e seus valores, como eram quando o usuário invocava startx . Espero que mesmo esta descrição mais cuidadosamente redigida seja, na melhor das hipóteses, uma simplificação exagerada, mas espero que não seja tão radical a ponto de tornar o resto do post discutível.

    
por kjo 21.11.2016 / 13:58

1 resposta

1

Se você estiver iniciando seu programa a partir de um link em sua área de trabalho, poderá modificar o arquivo de link para incluir sua variável e valor desejados. Eu não tenho experiência com o zsh (ainda), mas acho que você ainda pode modificar o link simplesmente adicionando env VAR=VAL no início do valor Exec no link. Para ler mais, eu encontrei um artigo ArchLinux explicando muitas das entradas em um arquivo da área de trabalho. Este é um artigo do Arch, mas o formato desses arquivos é padrão entre as distribuições.

Você também pode modificar essa variável para toda a sessão usando o gerenciador de janelas.

    
por 21.11.2016 / 15:48