Değişken .desktop dosyasında ayarlayın


75

Ortam değişkenini .desktop dosyasında ayarlamanın bir yolu var mı? Uygulamayı (eclipse) özel gtk stiliyle çalıştırmaya çalışıyorum, bu yüzden temelde bir .desktop dosyası çalıştırarak aşağıdaki sonucu almak istiyorum:

GTK2_RC_FILES=gtkrc.custom /path/to/eclipse

Ben bir bash betiğine koymak ve .desktop dosyasından çalıştırmak için denedim, ama sonra Unity başlatıcısı ile iyi entegre değil.

Yanıtlar:


111

Bir .desktopdosyayı , dosyasını düzenleyerek bir ortam değişkeni ekleyebilirsiniz . Örneğin, "digiKam" i çevre değişkeni ile çalıştırmak APPMENU_DISPLAY_BOTH=1için ilgili digikam.desktopdosyayı bulun ve değişkenin ayarını envkomut aracılığıyla "Exec" girişine ekleyin :

Exec=env APPMENU_DISPLAY_BOTH=1 digikam -caption "%c" %i

Senin durumunda:

Exec=env GTK2_RC_FILES=gtkrc.custom /path/to/eclipse

1
Kullanıcının bulunduğu env değişkenini nasıl ayarlayabilirim $HOME? Ne genişler, ne Exec=env MYVAR="$HOME/foo"de Exec=env MYVAR="~/foo"genişler. Bunun yerine, kelimenin tam anlamıyla geçirilir.
400,

o açıklandığı gibi yapabilirsin görünüyor stackoverflow.com/a/8980518/1446479
peedee

9

.desktopDosyayı değiştirmenin bir alternatifi , örneğin içine bir sarma betiği koymaktır ~/bin.

$ cat ~/bin/eclipse
#!/bin/sh
export GTK2_RC_FILES=gtkrc.custom
exec /usr/bin/eclipse "$@"

Bu yolla, uygulama paketi bir sonraki güncellenişinde özelleştirmenin üzerine yazılmaz.

Düzenle:

Bunun neden işe yaradığına dair bir ipucu, PATHdeğişkenin içeriğini kontrol ederek görebilirsiniz . Benim durumumda:

$ echo $PATH
/home/gunnar/bin:/home/gunnar/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

~/binlistedeki ilk klasördür ve bu nedenle daha önce de bakılır /usr/bin.


.Desktop dosyanızı yeni yerel ayarlarınıza yerleştirirseniz, zaten geçersiz kılınır.
Auspex

@Apepex: Doğru. Ancak aynı zamanda, yerel bir kopya kullanırsanız, sahip olunan paketin olası güncellemelerinden yararlanamayacaksınız .desktop.
Gunnar Hjalmarsson

Bir ambalajı yerleştirmenin buna nasıl ~/binyardımcı olacağını göremiyorum . Paketin sahibi olduğu .desktopdosya hiçbir zaman bu sarıcıyı görmeyecek! Ayrıca kullanmanız gerekecekupdate-alternatives
Auspex

@Apepex: .desktopDosyanın sarıcıyı "görmesi" gerekmez. Sadece çalıştırır eclipseve PATHyerine sarıcı nedeniyle toplanır /usr/bin/eclipse. Açıklığa kavuşturmak için cevabı değiştirdim.
Gunnar Hjalmarsson

Evet, .desktop dosya yok sarıcı görmeliyim. Ortalama .desktop dosyasının tam bir yol belirttiğini düşünüyordum, ancak daha fazla denetlemede, sistemdeki kişilerin çoğunun yalnızca bir komut adı belirttiğini ve bu yüzden sarıcınızı göreceğini düşünüyorum. Bununla birlikte, sahip olduğum tek Eclipse masaüstü dosyaları, Eclipse ikilisine tam yol açan, soruda belirtilen biçimdedir.
Auspex
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.