Saya ingin mengatur variabel 'Path' dalam file .desktop relatif ke lokasi di mana file desktop berada dan saya tidak bisa melakukannya.
Ketika saya tidak mendeklarasikannya atau mengosongkannya secara default ke folder rumah saya di mana pun saya menjalankannya; dan itu tidak menerima nilai relatif terhadap lokasi saya saat ini dalam sistem file.
Jawaban:
Anda tidak dapat mengatur CWD di dalam file .desktop. Jika Anda ingin aplikasi memiliki CWD tertentu, Anda harus menulis skrip pembungkus sederhana untuk aplikasi tersebut, yang terlihat seperti ini:
Anda dapat menggantinya
your_program
dengan$@
dan menjalankan skrip dengan program_Anda sebagai argumen, sepertirun-in-dir.sh your_program
. Dengan cara ini Anda dapat menggunakan skrip yang sama untuk membungkus program apa pun yang ingin Anda mulai di direktori itu.sumber
Anda dapat memilah-milah ini dengan menggunakan skrip mini bash in-line di Exec Anda. Ini akan menambahkan jalur file .desktop ke PATH sebelum menjalankan perintah Anda.
% k akan diganti dengan jalur file desktop itu sendiri. The
dirname
perintah daging dari bagian nama file, hanya menyisakan direktori. Setelah PATH diatur seperti ini,your_command
dapat dipanggil tanpa path lengkap.sumber
Saya menggunakan ini:
% K adalah nama lengkap dari file .desktop termasuk pathnya. Ini kemudian digunakan oleh dirname untuk mendapatkan lokasi dan mengubah direktori ke lokasi itu. Akhirnya, setelah berada di tempat yang tepat, ia menemukan skrip dan menjalankannya.
sumber
Untuk nama direktori dengan spasi dalam nama, ini akhirnya bekerja untuk saya:
Kredit untuk /unix//a/144428/61349
sumber
Ini berfungsi untuk saya Ubuntu 14.04:
Spesifikasi terakhir mengatakan bahwa % k menunjuk ke lokasi file desktop:
sumber