Bir .desktop dosyasındaki 'Path' değişkenini, masaüstü dosyasının bulunduğu konuma göre nasıl ayarlayabilirim?


11

Masaüstü dosyasının bulunduğu konuma göre bir .desktop dosyasında 'Yol' değişkenini ayarlamak istiyorum ve bunu başaramıyorum.

Ne zaman bildirmek ya da boş olarak ayarladığımda, nereden çalıştırırsam yapayım varsayılan olarak ana klasörüm olur; ve dosya sistemindeki geçerli konumuma göre değerleri kabul etmiyor.


Bu sorunu yaşadım. Ne yaptığınıza bağlı olarak bazen radikal olarak karmaşık olsa da, geçici çözümler buldum. Şu anda bir çözüm kullanıyor musunuz? Değilse, bu konuda yardımcı olabilirim. Bu konuda çok açıklayan xdg belgeleri bulamadım.
bambuntu

OP hala bir cevap mı arıyorsunuz? Öyleyse, sorunuzu kapatmanız için işaretlendiğinden sorunuzu yeniden göndermeniz gerekebilir. Saygılarımızla,
Ringtail

Yanıtlar:


3

CWD'yi bir .desktop dosyası içinde ayarlayamazsınız. Bir uygulamanın belirli bir CWD'ye sahip olmasını istiyorsanız, uygulama için aşağıdaki gibi görünen basit bir sarmalayıcı komut dosyası yazmanız gerekir:

#!/bin/sh

(cd /where/you/want/it/to/be && exec your_program)

your_programOrada bununla değiştirebilir $@ve komut dosyasını sizin_programınızla bağımsız değişken olarak çalıştırabilirsiniz run-in-dir.sh your_program. Bu şekilde, aynı dizini o dizinde başlatmak istediğiniz herhangi bir programı sarmak için kullanabilirsiniz.


14

Exec'nizde satır içi bir bash mini komut dosyası kullanarak bu sorunu çözebilirsiniz. Bu, komutunuzu çalıştırmadan önce .desktop dosyasının PATH yolunu ekleyecektir.

Exec=bash -c "export PATH=$PATH:`dirname %k`; your_command"

% k, masaüstü dosyasının kendisinin yoluyla değiştirilir. dirnameKomut sadece dizini bırakarak dosya adı parçası kapalı doğruyor. PATH bu şekilde ayarlandıktan sonra, your_commandtam bir yol olmadan çağrılabilir.


1
Çabuk tıkladım ve yanlış olanı oyladım, ancak çözümünüz mükemmel.
CrandellWS

1
bu diğer soru / cevap ile harika çalışabilir stackoverflow.com/a/3464561/1815624
CrandellWS

2

Bunu kullandım:

Exec=bash -c 'cd $(dirname %k) && ./SCRIPT_NAME'

% K, yolu da dahil olmak üzere .desktop dosyasının tam adıdır. Daha sonra dirname tarafından bir konum almak ve dizini bu konuma değiştirmek için kullanılır. Son olarak, doğru yerde olduğuna göre, senaryoyu bulur ve çalıştırır.



0

Bu benim için çalıştı Ubuntu 14.04:

Exec=bash -c "cd %k && ./app.run"

En son spesifikasyon % k değerinin masaüstü dosyasının konumunu gösterdiğini söylüyor :

% k - Masaüstü dosyasının URI (örneğin vfolder sisteminden alınmışsa) veya yerel bir dosya adı olarak veya bilinmeyen bir konum olarak boş olarak konumu.

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.