Vcoder 27.02.2011 14:38
Есть вопрос! — Запуск wine-программы из своего каталога [решено]
Некоторые windows программы не работают, если при их запуске текущим каталогом не является каталог с программой. Wine при запуске делает текущим windows\system32. Установка env PWD=/path/to/program не помогает - всё равно system32 текущий.Как создать кнопку запуска (пункт меню "Приложения"), чтобы при запуске программы текущим становился её каталог?
Пока решил через жуткий костыль:
создал скрипт run-some-wine-program.sh
1 |
cd /home/vcoder/.wine/drive_c/Program\ Files/Some\ Program/
|
Затем в свойствах кнопки запуска указываю "Приложение в терминале", а командная строка - "bash /home/vcoder/run-some-wine-program.sh"
Это работает, но:
1) ради каждой windows-программы нужно создавать свой скрипт из двух строчек;
2) появляется пустое окно терминала.
В комментариях подсказали два решения:
Найти ответственный за запуск данной программы .desktop файл и вписать туда строку
1 |
|
wine-launcher-creator - python скрипт, который создаёт .desktop файл с уже прописанным путём, кроме того извлекает иконки из .exe и .ico файлов.
mhspace 27.02.2011 14:41 #
+ 2 -
Прописать этот каталог в *.desktop-файле?
Но как? В настройках меню, равно как и в настройках кнопки запуска, такого пункта нет.
Дык це ж KDE, а у меня Gnome...
А приведи пожалуйста внутренности .desktop файла с прописанным "work path" - хотя-бы вручную у себя пропишу. А то посмотрел имеющиеся - там такого параметра нет.
А приведи пожалуйста внутренности .desktop файла с прописанным "work path" - хотя-бы вручную у себя пропишу. А то посмотрел имеющиеся - там такого параметра нет.
В Gnome тоже должно быть.
Вот пример файла
Нужное здесь - "Path<$e>=$HOME/Documents/"
Вот пример файла
Categories=Application;Graphics;3DGraphics;
Comment=A 3D program
Encoding=UTF-8
Exec=blender
Icon=blender
MimeType=application/blender;application/x-blender;
Name=Blender
NoDisplay=false
Path<$e>=$HOME/Documents/
StartupNotify=true
Terminal=0
TerminalOptions=
Type=Application
X-KDE-SubstituteUID=false
X-KDE-Username=
X-MultipleArgs=false
Нужное здесь - "Path<$e>=$HOME/Documents/"
а не для этого вайн делает симлинки?
$ ls -lh .wine/dosdevices/
итого 0
lrwxrwxrwx 1 user user 18 Авг 10 2010 c: -> ../harddiskvolume0
lrwxrwxrwx 1 user user 5 Дек 5 14:29 d: -> /home
lrwxrwxrwx 1 user user 6 Дек 5 14:29 f: -> /spool
lrwxrwxrwx 1 user user 7 Дек 9 2008 g: -> /games/
итого 0
lrwxrwxrwx 1 user user 18 Авг 10 2010 c: -> ../harddiskvolume0
lrwxrwxrwx 1 user user 5 Дек 5 14:29 d: -> /home
lrwxrwxrwx 1 user user 6 Дек 5 14:29 f: -> /spool
lrwxrwxrwx 1 user user 7 Дек 9 2008 g: -> /games/
# Найти ответственный за запуск данной программы .desktop файл и вписать туда строку
Path=/home/user/.wine/path/to/program
Path=/home/user/.wine/path/to/program
Если это работает значит дело не в текущей директории, а запуске каких-то доп прог из этой же директории? Т е вайн просто начинает находить бинарники по короткому имени? Я то думал,что запускается прога, которая сама знает где у нее всякие вспомогательные компоненты лежат, а не спрашивает об этом окружение вайн. (например launcher.exe сам запускает setup.exe c параметрами). Хз короче...
Ярлыки для программ можно создавать, например, в kde menu editor. Там и рабочий каталог указывается и другие настройки. В гноме наверняка что-то похожее есть.
Недавно друг тоже задался такой проблемой, но он нашел вариант с xdg-open
xdg-open .wine/drive_c/games/fonline/FOnline.exe