Тьяго Штюрмер Дайткс только что сослался на обходной путь в отчете об ошибке .
Я подтверждаю, что у меня это сработало. Спасибо, Тьяго!
Вы можете использовать такой инструмент, какxdg-open
(Сейчас не работает ), kde-open
, gnome-open
,gtk-launch
или аналогичный для среды вашего рабочего стола -.(xdg-open
кажется, что это универсальный...)
(Похоже, что почти все, кромеgtk-launch
(более похожих инструментов могут существовать для других наборов инструментов )страдает от той же ошибки, что иxdg-open
-он открывает файл.desktop в редакторе, а не запускает его)
Пакеты:(Точное название будет отличаться в зависимости от дистрибутива)(это основано на CentOS 7)
Приложение dex
, вероятно, является самым простым способом сделать это.
sudo apt install dex
, а затем dex ~/Desktop/some-application.desktop
или, поскольку многие/большинство системных приложений находятся в /usr
, вы можете использовать dex /usr/share/applications/some-application.desktop
.
Если ты действительно этого хочешь,Я предлагаю вам написать небольшую функцию, которая извлекает имя исполняемого файла из файла.desktop и запускает его. Добавьте эти строки в файл инициализации вашей оболочки (, например.~/.bashrc
):
runDesktop () {
eval "$(awk -F= '$1=="Exec"{$1=""; print}' "$1")"
}
Затем вы можете запустить файл.desktop с помощью runDesktop ~/Desktop/slack.desktop
. Конечно, обычные оговорки относительно eval
применимы.
Вы могли бы попробовать сделать это немного более сложным изощренным:
runDesktop () {
comm=( $(awk -F= '$1=="Exec"{$1=""; print}' "$1") )
"${comm[0]}" "${comm[@]:1}" &
disown
}