it-swarm-pt.tech

Como faço para definir uma variável de ambiente para uma sessão GNOME?

No meu sistema, para aplicativos que usam SDL, preciso definir uma variável de ambiente:

export SDL_AUDIODRIVER=alsa

para fazer o som funcionar corretamente. Como faço para configurar minha sessão GNOME para que esta variável esteja presente para todos os aplicativos (se eu executar um aplicativo através do Nautilus ou usar DBGL , os aplicativos trabalhe corretamente)?

EDITAR:

Arquivos de configuração que defini (e reiniciei minha máquina após cada um) sem sucesso:

  • .xsession
  • .xsessionrc
  • .gnomerc
  • .bash_profile
  • .profile <- Isso funciona no caso geral, mas não quando sua distribuição está configurando a variável em outro lugar.
  • /etc/profile
15
Bernard

Pode ser que a variável SDL_AUDIODRIVER esteja sendo desconfigurada em algum lugar. Uma estratégia que uso para problemas relacionados a scripts de inicialização é inserir instruções de eco de depuração que são simples de ativar/desativar criando/excluindo um arquivo. Você pode começar adicionando

debug_msg() {
        test -f $HOME/.debug && echo "[email protected]" 1>&2
}

debug_msg "running ~/.bashrc ($0), SDL_AUDIODRIVER = '$SDL_AUDIODRIVER'"

para .bashrc, .bash_profile, .profile e/etc/profile para ver qual valor ele tem e se/onde está mudando.

6
hlovdal

https://help.ubuntu.com/community/EnvironmentVariables fala sobre quatro lugares onde podemos definir as variáveis ​​de ambiente:

  • ~/.pam_environment - […] Não é um arquivo de script, mas consiste em expressões de atribuição, uma por linha. […] Requer um novo login para inicializar as variáveis. […]
  • ~/.profile - Este é provavelmente o melhor arquivo para colocar atribuições de variáveis ​​de ambiente, uma vez que é executado automaticamente pelo DisplayManager durante a sessão da área de trabalho do processo de inicialização, bem como pelo Shell de login quando um faz login no console textual.
  • ~/.bash_profile ou ~/.bash_login - Se um desses arquivos existir, o bash o executa em vez de "~/.profile" quando é iniciado como um Shell de login. (O Bash irá preferir "~/.bash_profile" a "~/.bash_login"). No entanto, esses arquivos não influenciam uma sessão gráfica por padrão.
  • ~/.bashrc - Devido à forma como o Ubuntu atualmente configura os vários arquivos de script por padrão, este pode ser o lugar mais fácil para definir variáveis. A configuração padrão quase garante que este arquivo será executado em cada invocação de bash, bem como ao fazer login no ambiente gráfico. No entanto, em termos de desempenho, isso pode não ser a melhor coisa a fazer, pois fará com que os valores sejam desnecessariamente configurados muitas vezes.

http://userbase.kde.org/Session_Environment_Variables/en sugere este lugar para o KDE:

O KDE irá executar qualquer script que encontrar em $HOME/.kde/env cujo nome de arquivo termina em .sh, e manterá todas as variáveis ​​de ambiente definidas por eles. É importante que qualquer variável que você deseja definir também seja exportada.

https://help.ubuntu.com/community/ComposeKey#XIM sugere modificar ~/.gnomerc ou ~/.Xsession.

6
Denilson Sá Maia

Crie um .gnomerc arquivo em seu $ HOME que é um script Shell (como .bashrc) que define todas as variáveis ​​que você deseja.

1
Mike McQuaid

Você já tentou criar a variável de ambiente int . Profile ou / etc/profile?

Isso deve funcionar e já deve existir. Ao contrário de . Bashrc que é por sessão de terminal, eles são iniciados no login de sua sessão.

0
codeLes