Для работы wine в режиме административной установки нужно разобраться как устроить перемещаемый ярлык: не имеющий прямых путей. Что хочется: - относительный путь к запускаемой программе (реализуется через WINEPREFIX?) - относительный (не указываемый) путь к значку ярлыка - способ указания оконному менеджеру (XDG?) дополнительного каталога с ярлыками для появления в меню - способ указания у пользователя дополнительного пути к значкам В качестве исключения придётся использовать путь к общему каталогу (/var/lib/wine...)
http://portland.freedesktop.org/xdg-utils-1.0/xdg-desktop-menu.html Если невозможно указать дополнительный каталог для deskstop-файлов и значков, придётся делать команду их копирования/обновления пользователю?
Я не совсем понял задачу. Опиши, пожалуйста, пример такого ярлыка.
Нужно сделать ярлык для приложения (со значком), при условии, что файл приложения и файл значка располагаются в домашнем каталоге. При этом в ярлыке не должно быть явной привязки к домашнему каталогу. То есть кладёшь программу в ~/bin, а значок в ~/.local/share/icons делаешь на них ярлык, а потом передаёшь мне ярлык вместе с файлами из bin и icons, и ярлык у меня работает.
В стандарте ничего не сказано про относительные пути: http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s06.html Там говорится, что можно использовать или имя команды, тогда для поиска будет использоваться $PATH, или полный путь. Но я попробовал создать .desktop, у которого прописан ключ Exec=~/test, где test - имя команды. при этом сам десктоп-файл находился в другом каталоге и все запускалось нормально. Затем попробовал указывать Exec=$HOME/test, тоже работает. Мне кажется, это какая-то недокументированная фича. У меня стоит KDE4, надо проверить в гноме.
Порядок тестирования: $ mkdir -p ~/test/test $ ln -s `which xterm` ~/test/test $ echo -e '[Desktop Entry]\nType=Application\nName=xterm\nExec=~/test/test/xterm' > ~/xterm.desktop Полученный файл xterm.desktop пробуем запустить двойным кликом из конкверора или аналогичной программе в гноме. Затем меняем пусть к исполняемому файлу на Exec=$HOME/test/test/xterm.
Konqueror запускает без вопросов в федоровском kde4. Dolphin спрашивает подтверждения при первом запуске. И там, и там работает и использование ~/... и переменных окружения типа $HOME UPD: Desktop Entry пишется через пробел.
Основная проблема - со значком. Команду, понятно, так или иначе, можно запустить.
Для иконки нельзя указать относительный путь. То есть, использование всяких ~ и $HOME не работает. Только абсолютный или вообще без пути и расширения, тогда файл ищется в общесистемных каталогах.
Так, я сейчас вспомнил, что в хоуме есть отражения стандартного /usr/share/local, а именно, ~/.local. И есть каталог ~/.local/share/icons, в который можно скинуть иконку и затем в ключе Icon=blablabla указывать без полного пути, просто имя иконки. Проверил в кедах у себя, работает. Не знаю на счет стандартизированности, но ~/.local это общеизвестная штука.
На этом, думаю, проблему можно считать решенной.
Переоткрываю, чтобы Денис проверил на GNOME
Пример работающего переносимого ярлыка: #!/usr/bin/env xdg-open [Desktop Entry] Name=1C:Предприятие Exec=env WINEPREFIX="$HOME/.wine-buh" wine "C:\\Program Files\\1cv82\\common\\1cestart.exe". Type=Application StartupNotify=true Icon=89d2_shortcut_thinstarter.0.png
(In reply to comment #12) > Пример работающего переносимого ярлыка: > #!/usr/bin/env xdg-open > [Desktop Entry] > Name=1C:Предприятие > Exec=env WINEPREFIX="$HOME/.wine-buh" wine "C:\\Program > Files\\1cv82\\common\\1cestart.exe". > Type=Application > StartupNotify=true > Icon=89d2_shortcut_thinstarter.0.png > Ну он будет не совсем работающий, так как картинку то с собой придется нести, а так, он будет работать.
В Gnome при использовании такой команды запуска: Exec=env WINEPREFIX=$HOME/.wine wine "C:\\ProgramFiles\\1cv82\\common\\1cestart.exe" происходит создание нового окружения в каталоге /home/user/$HOME/.wine т.е. не происходит расшифровки $HOME тестировал в WINE@Etersoft 1.0.12 eter6.12/eter11 Ubuntu 10.04
Александр Морозов 2011-01-12 15:59:01 MSK Отработанное время: 0.5 > Хочется Win-путь к ярлыку для увеличения переносимости ярлыков. Кроме пути к Win-программе .desktop-файл содержит ещё рабочую директорию, её нельзя записать в виде win-пути. Так что переносимым ярлык всё равно не будет.
Итак, на данный момент для W@E 2.0 осталось выяснить, можно ли записать WINEPREFIX как ~/.wine или $HOME/.wine
(В ответ на http://bugs.etersoft.ru/show_bug.cgi?id=6748#c11) > А рабочую директорию возможно записать через переменную вроде: ~/.wine или > $HOME/.wine ? Это поддерживается не везде: http://www.mail-archive.com/xdg@lists.freedesktop.org/msg04327.html В спецификации ничего про ~ и переменные окружения нет: http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html Но вообще Path по спецификации не требуется. Возможно, устроит .desktop-файл с запуском .lnk с помощью start (я не разбирался, хранится ли в .lnk рабочая директория). (В ответ на comment #16) > Итак, на данный момент для W@E 2.0 осталось выяснить, можно ли записать > WINEPREFIX как ~/.wine или $HOME/.wine Насколько я понимаю, это будет работать не везде.
> Но вообще Path по спецификации не требуется. Возможно, устроит .desktop-файл с > запуском .lnk с помощью start (я не разбирался, хранится ли в .lnk рабочая > директория). От проблемы с WINEPREFIX это, правда, всё равно не избавит. Может просто из ярлыка вызывать скрипт, который всё запустит как надо (с нужным WINEPREFIX)?
(В ответ на comment #15) > > Хочется Win-путь к ярлыку для увеличения переносимости ярлыков. > Кроме пути к Win-программе .desktop-файл содержит ещё рабочую директорию, её > нельзя записать в виде win-пути. Так что переносимым ярлык всё равно не будет. Подожди, настоящий рабочий каталог должен храниться в lnk-файле. в desktop не всегда есть его поддержка.
(В ответ на comment #17) ... > (В ответ на comment #16) > > Итак, на данный момент для W@E 2.0 осталось выяснить, можно ли записать > > WINEPREFIX как ~/.wine или $HOME/.wine > Насколько я понимаю, это будет работать не везде. Сказки не надо — WINEPREFIX обрабатывается внутри Wine, если мы там решим раскрывать «~», то будет раскрываться.
> > > Итак, на данный момент для W@E 2.0 осталось выяснить, можно ли записать > > > WINEPREFIX как ~/.wine или $HOME/.wine > > Насколько я понимаю, это будет работать не везде. > Сказки не надо — WINEPREFIX обрабатывается внутри Wine, если мы там решим > раскрывать «~», то будет раскрываться. Ну, это если решим...
Добрый день. Есть-ли какие-то продвижения по этому вопросу? Интересует каким образом можно создать ссылку на запуск 1С в /etc/skel, чтобы при добавлении нового пользователя ярлык автоматически появлялся на рабочем столе? Директорию .wine c установленной 1С в /etc/skel скопировали.
Вообще говоря, WINEPREFIX нужно устанавливать, только если используется нестандартный wineprefix, не ~/.wine. Но если таки нужно его прописать, то, думаю, должно работать такое: Exec=sh -c 'WINEPREFIX="$HOME/.wine-buh" wine "C:\\Program Files\\1cv82\\common\\1cestart.exe"' > Добрый день. Есть-ли какие-то продвижения по этому вопросу? Интересует каким > образом можно создать ссылку на запуск 1С в /etc/skel, чтобы при добавлении > нового пользователя ярлык автоматически появлялся на рабочем столе? Директорию > .wine c установленной 1С в /etc/skel скопировали. Поместите создающийся при установке 1С ярлык в /etc/skel/Desktop, удалив env WINEPREFIX="..." в Exec. Скопируйте иконку (имя задано в Icon в ярлыке) в /etc/skel/.local/share/icons. Думаю, должно работать.
1) Создал файл /etc/skel/Desktop/notepad.desktop #!/usr/bin/env xdg-open [Desktop Entry] Name=Notepad Exec="wine notepad" Type=Application StartupNotify=true Icon=/etc/skel/.local/share/icons/wine.png 2) Положил иконку cp /usr/share/icons/wine.ico /etc/skel/.local/share/icons/ 3) Создал нового пользователя adduser -b /var/ftp/tmp -m tempuser Указание иконки через Icon=~/.local/share/icons/wine.png Icon=$HOME/.local/share/icons/wine.png не работают