Вопрос или проблема
Я пытаюсь создать файл .desktop для файла .exe, вот что у меня получилось:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=wine /opt/MyApp/MyApp.exe
Name=MyApp
Icon=/opt/MyApp/data/icons/MyApp.ico
Я вижу иконку в меню, но когда я ее запускаю, ничего не происходит.
Если я пытаюсь запустить команду из терминала, все работает отлично – но из меню не работает.
Вот пример из ExamView Pro. Kubuntu 18.04.4 и Wine 3.0.1
[Desktop Entry]
Name=ExamView Test Generator
Exec=env WINEPREFIX="/home/acer/.wine" wine-stable C:\\\\windows\\\\command\\\\start.exe /Unix /home/acer/.wine/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/ExamView\\ Pro\\ Test\\ Generator/ExamView\\ Test\\ Generator.lnk
Type=Application
StartupNotify=true
Icon=C274_evpro.0
StartupWMClass=evpro.exe
Ответ или решение
Создание .desktop
файла для приложений Wine — это важный шаг для обеспечения удобного запуска Windows-программ в среде Linux. Так как вы уже имеете часть кода, давайте модифицируем его, добавим необходимые параметры и разберём проблемы, с которыми вы столкнулись.
Основные элементы .desktop
файла
- [Desktop Entry]: Это заголовок вашего файла, который указывает, что это запись рабочего стола.
- Encoding: Указывает кодировку, используемую в файле. Альтернативные значение можно опустить, так как современный стандарт предполагает UTF-8.
- Version: Указывает версию спецификации. Чаще всего используется 1.0.
- Type: Указывает тип записи. В данном случае, это
Application
. - Terminal: Указывает, нужно ли запускать приложение в терминале (true/false).
- Exec: Это команда, которая будет выполняться при запуске приложения.
- Name: Название приложения, которое будет отображаться в меню.
- Icon: Путь к значку приложения.
Редактирование вашего файла
Ваш изначальный .desktop
файл выглядит следующим образом:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=wine /opt/MyApp/MyApp.exe
Name=MyApp
Icon=/opt/MyApp/data/icons/MyApp.ico
Однако, его необходимо немного изменить для более корректной работы:
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=env WINEPREFIX="/home/username/.wine" wine /opt/MyApp/MyApp.exe
Name=MyApp
Icon=/opt/MyApp/data/icons/MyApp.ico
StartupNotify=true
Ключевые изменения и их обоснование
-
Добавление WINEPREFIX: Если у вас установлен специфический префикс Wine для этого приложения, стоит указать его в
Exec
. Это обеспечивает правильную настройку окружения Wine. -
Параметр StartupNotify: Добавление этого параметра позволяет системе отслеживать запуск приложения и может улучшить пользовательский опыт. Это также полезно при работе с графическим интерфейсом.
-
Путь к файлам: Убедитесь, что все пути указаны правильно и соответствуют файловой системе вашего компьютера. Если ваш пользователь —
acer
, вам нужно заменитьusername
на ваше имя пользователя.
Проверка и тестирование
После внесения изменений, сохраните файл с расширением .desktop
в одном из следующих мест:
- Личный каталог для приложений:
~/.local/share/applications/
- Системный каталог для приложений:
/usr/share/applications/
После этого убедитесь, что файл является исполняемым:
chmod +x ~/.local/share/applications/MyApp.desktop
Теперь, если вы перезагрузите графический интерфейс или перезапустите сеанс, ваше приложение должно появиться в меню и работать корректно.
Заключение
Создание .desktop
файла для приложений, работающих через Wine, требует тщательного подхода к настройкам окружения и путям к файлам. С пониманием этих аспектов, вы сможете правильно интегрировать Windows-программы в вашу среду Linux. Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь делиться — решение, как вы понимаете, часто лежит в мелочах.