.desktop dosyası bir betiği çalıştırmıyor, el ile çalıştırıldığında düzgün çalışıyor


4

.Desktop dosyalarımda sorun yaşıyorum. Sürekli "Yüklemeler" klasörüne koymak bir dosyayı izleyen bir kabuk komut dosyası var. Bir dosya klasöre yerleştirildiğinde, terminalde yazdığım bir C programını otomatik olarak yürütür ve dosyayı taşımak istediğiniz yere farklı seçenekler sunar.

Her şey yolunda. Ancak, programın bir masaüstü kısayolu istiyorum. Çalıştırılacak komutu belirtmek, terminalde çıkarmak ve komutun yürütülmesinden sonra terminalin çalışmasını sağlamak için kısayol düzenleyicisini kullanmayı denedim. Komuttaki her şeycd ~/Documents/prog/c/learn/inotify-tools && ./notifyscript.sh

Ancak, bu işe yaramaz. Ayrıca, kısayol editörünün karıştırdığını düşünerek, temelde sisteme yukarıdaki komutu söyleyen bir C programı yazmayı denedim.

İLGİNÇ, dizinde olduğumda ve yazarken düzgün çalışıyor ./'Download Manager'

Ancak, her açılışta dizini değiştirmeye devam etmek ve programı çalıştırmak istemiyorum. Bunun yerine, bir .desktop kısayolu veya daha da iyisi, otomatik olarak yeniden başlatmaya başlamak için bir yol istiyorum. Neden işe yaramadığını anlamıyorum. Eğer terminalde çalıştırmazsam, çalışmaz ...

İşte Masaüstü Dosyası:

[Desktop Entry]
Name=Download Manager
Comment=
Exec=cd ~/Documents/prog/c/learn/inotify-tools && ./notifyscript.sh
Icon=icon name
Terminal=true
Type=Application
StartupNotify=true
X-KeepTerminal=true

İşte C Kaynak Kodu ve Masaüstü dosyası, başka bir seçenek olarak:

[Desktop Entry]
Name=Download Manager
Comment=
Exec=./'Download Manager'
Icon=icon name
Terminal=true
Type=Application  
StartupNotify=true
X-KeepTerminal=true

C Kaynak Kodu:

/*
desktoplauncher.c Source Code
Written by me
This program is used to launch
the inotify monitor shell script
which in turn launches the 
download manager program 
whenever a file is placed in the
"Downloads" folder.
*/ 

#include <stdio.h>

int main()
{
system("cd ~/Documents/prog/c/learn/inotify-tools && ./notifyscript.sh");
}

Neden cddizine girdin?
s3lph

.Desktop dosyanızda 'Terminal = true' ayarladınız mı?
alci

Evet alci! Neden ben Seppi olmasın? Üzgünüm, bu konuda
yeniyim

Sorunuzda .desktop dosyasının içeriğini yapıştırdıysanız yardımcı olabilir.
Jorge Castro

Yanıtlar:


3

Komut dosyasını ana klasörüme taşıyarak ve masaüstü yapılandırma dosyasını aşağıdaki şekilde düzenleyerek çalışmasını sağladım.

[Desktop Entry]
Name=Download Manager
Comment=
Exec=lxterminal --command="./.notifyscript.sh"
Icon=icon name
Terminal=false
Type=Application
StartupNotify=true

Bu çok garip görünüyor, özellikle de terminal yanlıştır ... Her neyse işe yarıyor, ben de mutluyum! Herkese yardımlarınız için teşekkürler!


2

ExecÇizgi muhtemelen bir kabukta değer yürütmüyor. Bunu dene:

Exec=/home/user/Documents/prog/c/learn/inotify-tools/notifyscript.sh

Bu dizini cwd olarak kullanmanız gerekiyorsa, bunu kabuk betiğine ekleyin:

cd -P -- "$(dirname -- "$0")"

Hangi hata görünüyor? Sorunuzda bundan bahsetmiyorsunuz. "Çalışmıyor" olası en kötü problem tanımıdır.
glenn jackman

Hata "Geçersiz masaüstü giriş dosyası: '/ home / zachary / Desktop / Download Managersh.desktop'" yazıyor
Zeke Legge
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.