GNOME oturumu için çevresel bir değişkeni nasıl ayarlarım?


15

Sistemimde, SDL kullanan uygulamalar için çevresel bir değişken belirlemem gerekiyor:

export SDL_AUDIODRIVER=alsa

sesin düzgün çalışmasını sağlamak için. GNOME oturumumu bu değişkenin tüm uygulamalar için mevcut olmasını sağlayacak şekilde nasıl ayarlarım (yani bir uygulamayı Nautilus üzerinden çalıştırırsam veya DBGL kullanırsam uygulamalar düzgün çalışır)?

DÜZENLE:

Boşuna ayarladığım (ve her birinden sonra makinemi sıfırladığım) yapılandırma dosyaları:

  • .xsession
  • .xsessionrc
  • .gnomerc
  • .bash_profile
  • .profile<- Bu, genel durumda çalışır, ancak dağıtımınız değişkeni başka bir yerde ayarlarken çalışmaz.
  • /etc/profile

Bunun bir ortam değişkeni olması gerektiğinden emin misiniz? Görünüşe göre başka bir ortam olabilir. Sistem ses ayarları uygulamasında kazı yaptınız mı?
KodLes

Gerçekten de öyle. SDL, hangi arka ucun kullanılacağını bu şekilde belirler. Keşke sadece bir yapılandırma dosyası kullanmasını isterdim, ancak SDL, davranışı dikte etmek için çevresel değişkenlerin kullanımında oldukça tutarlıdır.
Bernard

Bunu gördün
codeLes

1
Evet, SDL'yi yeniden derlemek veya çevresel bir değişken belirlemek arasında bir seçim. Sanırım doğru seçimi yapıyorum. : p Bu işe yarar (yani bir kabukta, işe yarıyor), GNOME'un sorunu oluşturan bir kabuktan başlatılmayan uygulamalar için değişkeni yaymak için sadece dikenli bir mesele. Devam eden yardımınız için teşekkür ederim.
Bernard

Bu hangi dağıtımda ?! (Ben gdm için yapılandırma takip etmek gerçekten zor olduğunu kabul ediyorum, bu yüzden ilk düşüncem, "sadece / etc / gdm / bakın ve komut dosyalarını okumak" çok acı olduğunu.) Burada, .profile gayet iyi görünüyor. (debian / test)
Anders Eurenius

Yanıtlar:


6

SDL_AUDIODRIVER değişkeni bir yerde ayarlanmamış olabilir. Başlangıç ​​komut dosyalarıyla ilgili sorunlar için kullandığım bir strateji, bir dosya oluşturarak / silerek etkinleştirmek / devre dışı bırakmak için basit olan hata ayıklama yankı ifadelerini koymaktır. Ekleyerek başlayabilirsiniz

debug_msg() {
        test -f $HOME/.debug && echo "$@" 1>&2
}

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

.bashrc, .bash_profile, .profile ve / etc / profile değerlerinin ne olduğunu ve değişip değişmediğini / nerede değiştiğini görmek için.


Mmm, bu da benim şu anki düşüncelerim. 'Nabız' olarak ayarlanmıştır ve bu , OpenSUSE tarafından bir yere ayarlanmalıdır . Eve geldiğimde biraz dedektiflik yapacağım.
Bernard

6

https://help.ubuntu.com/community/EnvironmentVariables biz Ortam değişkenlerini ayarlayabilirsiniz dört yerde bahsediyor:

  • ~/.pam_environment- […] Bir komut dosyası değildir, her satırda bir tane olmak üzere atama ifadelerinden oluşur. […] Değişkenleri başlatmak için yeniden oturum açmayı gerektirir. [...]
  • ~/.profile - Bu, muhtemelen ortam değişkeni atamalarını yerleştirmek için en iyi dosyadır, çünkü başlatma işlemi masaüstü oturumu sırasında DisplayManager tarafından ve metin konsolundan bir oturum açıldığında oturum açma kabuğu tarafından otomatik olarak yürütülür.
  • ~/.bash_profileveya ~/.bash_login- Bu dosyalardan biri varsa, bash dosyayı oturum açma kabuğu olarak başlatıldığında "~ / .profile" yerine yürütür. (Bash "~ / .bash_profile" yerine "~ / .bash_login" i tercih eder). Ancak, bu dosyalar varsayılan olarak bir grafik oturumunu etkilemez.
  • ~/.bashrc- Ubuntu'nun şu anda varsayılan olarak çeşitli komut dosyası dosyalarını ayarlama şekli nedeniyle, burası değişkenleri ayarlamak için en kolay yer olabilir. Varsayılan yapılandırma, bu dosyanın her bash çağrısında ve günlük kaydında yürütülmesini neredeyse garanti eder. grafiksel ortama. Ancak, performans açısından bu, değerlerin birçok kez gereksiz yere ayarlanmasına neden olacağı için yapılacak en iyi şey olmayabilir.

http://userbase.kde.org/Session_Environment_Variables/en KDE için burayı önermektedir:

KDE $HOME/.kde/env, dosya adı biten bulduğu tüm komut dosyalarını yürütür .shve kendileri tarafından ayarlanan tüm ortam değişkenlerini korur. Ayarlamak istediğiniz değişkenlerin de dışa aktarılması önemlidir.

https://help.ubuntu.com/community/ComposeKey#XIM~/.gnomerc veya değiştirmenizi önerir ~/.Xsession.


1

.gnomerc$ HOME öğesinde, istediğiniz tüm değişkenleri ayarlayan bir kabuk betiği ( gibi.bashrc ) olan bir dosya oluşturun .


Ne yazık ki bu benim için işe yaramıyor.
Bernard

Gnome terminalini açmayı denediniz ve env'de görünmediğini doğruladınız mı?
Mike McQuaid

1
@Mike: .bashrc'mde bu yüzden görünecekti, ancak yanlış olurdu. Emacs ve M-x getenvGUI uygulamaları için geçersiz kılınmadığını onaylar.
Bernard

0

İnt .profile veya / etc / profile ortam değişkenini oluşturmayı denediniz mi?

Bu işe yaramalı ve zaten var olmalıdır. Her terminal oturumu için olan .bashrc'den farklı olarak , bunlar oturumunuzda oturum açtığınızda başlatılır.


Ne yazık ki, hiçbir etkisi yok.
Bernard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.