2010-08-08 3 views
2

Я разработал приложение в Qt, которое использует сценарий запуска, myapp.sh. Я создал файл .desktop, который запускает этот скрипт и установить:Как создать приложение для запуска приложений .desktop в Linux?

Команда: $PWD/myapp.sh

путь работы: $PWD

Однако $PWD печатает мой домашний каталог, когда я запускаю файл .desktop, приводя к попытке запустить ~/myapp.sh, а не ~/Development/build-directory/bin/myapp.sh (этот каталог находится там, где находится файл .desktop). Почему он не корректно устанавливает рабочий каталог, где фактически находится файл .desktop, и как я могу обойти это без, чтобы указать абсолютный путь в файле .desktop?

ответ

2

$PWD проводит ток working directory оболочки, которая не имеет ничего общего с расположением файла .desktop .. Один из способов вы можете сделать это с помощью:

Exec=$(dirname %k)/myapp.sh 

От the spec, %k является " Расположение файла рабочего стола как URI (например, полученное из системы vfolder) или локальное имя файла или пустое, если неизвестно местоположение. " Таким образом, это myapp.sh в том же каталоге.

+0

+1 Спасибо, это работает. Однако я получаю две вкладки на панели задач, если выбрана опция «включить обратную связь запуска» ... любая идея, почему? –

+0

Может отображаться обратная связь запуска для исполняемого файла 'dirname'. Сейчас я не знаю об этом. –

+0

Просто не показывая обратную связь запуска будет приемлемым обходным решением в это время, я полагаю. Спасибо за вашу помощь. :) –