В процессе установки программ меню и ярлыки должны создаваться через winemenubuilder (функции write_menu_file, write_menu_entry, write_desktop_entry и пр.) В Ubuntu по каким-то причинам этого не происходит.
В Debian + wine 1.0.10 ярлыки создаются корректно.
Для проверки создания меню и ярлыков можно воспользоваться уже установленной программой. Для этого, не удаляя программу, вычищаем все меню и ярлыки (для Linux) от неё. * Есть файлы *.menu для каждого раздела меню (установленной проги). Хранятся в папке ~/.config/menus/applications-merged. Для удаленной проги удаляем соответствующий файл. Бывают проги, которые создают свой элемент меню прямо в разделе wine главного меню. Для таких прог надо открыть файл wine.menu и удалить оттуда строку для нашей проги. * Есть файлы *.desktop для всех ярлычков. Хранятся они в папке ~/.local/share/applications/wine. Там их можно удалять, не боясь больше не увидеть (можно прямо с папкой для этой проги). * Есть файлы *.directory для нашей проги. Хранятся они в папке ~/.local/share/desktop-directories. Соответствующий файл для проги тоже нужно удалить. * Кажется, есть ещё в ~/.icons что-то, но удалять не обязательно * Удаляем ярлык с рабочего стола После удаления этих файлов запускаем создание командой $ wine winemenubuilder -w "путь:\\к\\виндовому\\ярлыку" В Debian 4.0 работает идеально.
Так, в Дебиане как раз не вижу в меню ветки с вайновскими программами, хотя winemenubuilder создаёт нужные файлы по нужным (?) адресам Возможно, для этого меню нужен какой-то другой алгоритм... А вот в вечно проблемной убунте (8.04 на multi) меню создалось без проблем.
Хм, на Дебиане нет ни в меню, ни на рабочем столе, хотя в ~/Desktop лежит файл ярлыка! Может ли стандартный рабочий стол чем-нибудь перекрываться (темой какой, например)?
(In reply to comment #4) > Хм, на Дебиане нет ни в меню, ни на рабочем > столе, хотя в ~/Desktop лежит файл ярлыка! > Может ли стандартный рабочий стол > чем-нибудь перекрываться (темой какой, > например)? Файл может не восприниматься системой. Рекомендую для начала создать ярлык вручную, и сравнить результат с тем ярлыком, что создан автоматически.
Все меню нормально создаются. Проблема с созданием ярлыков в том, что они все помещаются в $HOME/Desktop, тогда как в Ubuntu 8.0.4: guest@multi:~$ xdg-user-dir DESKTOP /home/guest/Рабочий стол Видимо, при создании ярлыков нужно как-то отслеживать, где находится рабочий стол для пользователя.
После приложения этого патча должно работать: commit b8527ff4ae5a569be65873404d373d75edb7972e Author: Konstantin Kondratyuk <kondratyuk@etersoft.ru> Date: Fri Mar 13 18:51:37 2009 +0300 winemenubuilder: use xdg-user-dir for find desktop directory (eterbug #3640) Денис, проверьте, пожалуйста, после появления сборок, что на Ubuntu 8.04 (там DESKTOP=="Рабочий стол") ярлыки создаются корректно.
Ярлыки так и не создались, попробовал на multi установил 1С81, должен был создаться ярлык. И в момент когда должен был создаться ярлык в консоли следующей: err:menubuilder:InvokeShellLinker failed to build the menu Попробовал как написано в ком #2 не создается ярлык
Ярлык не создаётся из-за того, что в путь к рабочему столу попал разрыв строки. Убираю.
Патч в рассылке (try 2)
Пересобрал wine с патчем. Wine доступен в unstable/Ubuntu/8.04
Работает
В официальной ветке появился аналогичный патч. Откатил Костин патч. Требуется проверить не появилась ли бага опять. Сейчас изменения только в репозитории eterwine, когда будут в eterhack - не знаю.
В 1.0.10 пойдет Костин патч. Закрываю.