Я хочу установить переменную 'Path' в файле .desktop относительно места, где находится файл рабочего стола, и мне не удается это сделать.
Когда я не объявляю это или не устанавливаю это пустым, по умолчанию это моя домашняя папка, независимо от того, откуда я его запускаю; и он не принимает значения относительно моего текущего местоположения в файловой системе.
Ответы:
Вы не можете установить CWD внутри файла .desktop. Если вы хотите, чтобы приложение имело определенный CWD, вам нужно написать простой скрипт-обертку для приложения, который выглядит примерно так:
Вы можете заменить
your_program
его на$@
и запустить скрипт с your_program в качестве аргумента, напримерrun-in-dir.sh your_program
. Таким образом, вы можете использовать тот же скрипт, чтобы обернуть любую программу, которую вы хотите запустить в этом каталоге.источник
Вы можете обойти это, используя встроенный мини-скрипт bash на вашем Exec. Это добавит путь к файлу .desktop в PATH до запуска вашей команды.
% k будет заменен путем к самому файлу рабочего стола. Команда
dirname
отрубает часть имени файла, оставляя только каталог. Как только PATH установлен как этот,your_command
может быть вызван без полного пути.источник
Я использовал это:
% K - полное имя файла .desktop, включая его путь. Затем он используется dirname, чтобы получить местоположение и изменить каталог на это местоположение. Наконец, теперь, когда он находится в нужном месте, он находит скрипт и запускает его.
источник
Для имен каталогов с пробелами в имени это, наконец, сработало для меня:
Кредит /unix//a/144428/61349
источник
Это сработало для меня Ubuntu 14.04:
В последней спецификации говорится, что % k указывает на местоположение файла рабочего стола:
источник