У меня есть .desktop
файл для запуска программы Python в определенной среде Conda, например такой:
[Desktop Entry]
Version=1.0
Name=Qutebrowser
GenericName=Web Browser
Comment=View and edit files
MimeType=text/html;
Exec=bash -c "source /vol/home/kaipingga/anaconda3/bin/activate qutebrowser; qutebrowser"
Icon=/vol/home/kaipingga/.config/qutebrowser.svg
Type=Application
Terminal=false
Categories=Network;Utility;X-Python;
StartupWMClass=Qutebrowser
X-Desktop-File-Install-Version=0.20
Раньше это работало, но недавно я подправил свою среду Python.
Теперь в терминале та же команда
$ bash -c "source /vol/home/kaipingga/anaconda3/bin/activate qutebrowser; qutebrowser"
приложение запускает, а .desktop
файл — нет.Как узнать, из-за какой ошибки это произошло?
Остальные мои .desktop
файлы работают нормально, предполагаю, что что-то не так с моей средой Python, которая на данный момент довольно хакерская (именно поэтому conda
для начала стоит запустить ее в выделенной среде).
Закари Брэди изначально предложил (но естьпроблемы) xdg-open
может запускать .desktop
файлы, но он выдает мне сообщение
Ошибка
Не удалось добавить плагин на панель
Не найдено ни одного работающего экземпляра xfce4-panel.
как для этого, .desktop
так и для другого, который в остальном работает. (У меня чистая Ubuntu, без Xfce).
решение1
Вы также можете использовать инструмент проверкиdesktop-файл-проверкачтобы найти больше проблем.
(смотрите также:Как проверить/проверить файлы .desktop?)
# Result for your example
$ desktop-file-validate qutebrowser.desktop
test.desktop: hint: value "Network;Utility;X-Python;" for key "Categories"
in group "Desktop Entry" contains more than one main category; application
might appear more than once in the application menu
решение2
Обычно я добавляю следующее, чтобы увидеть, что выполняется:
Terminal=true
TerminalOptions=\s--noclose
решение3
В Linux Mint служба файлового менеджера называется nemo
, nemo можно закрыть, выполнив команду:
nemo -q
Остановив файловый менеджер, вы можете открыть его в терминале.
nemo
Теперь он будет выводить свой журнал на этот терминал. Когда вы откроете файл *.desktop, вы сможете увидеть стандартный вывод строки Exec вашего *.desktop.
решение4
xdg-open
и exo-open
используются для открытия файлов (в соответствующей ассоциированной программе). Они никогда не предназначались для выполнения чего-либо сами по себе. Для выполнения команды, определенной рабочим столом, вы можете использоватьдекс.