LINUX.ORG.RU

Не работают относительные пути в ярлыке KDE

 , ,


0

1

Предыстория:

Планируем переход на Linux на части машин в целях экономии на лицензиях. По сути там будет принтер, доступ к сетевым файлам и запуск специфического ПО для работы с медицинской базой данных. ПО работает под wine 1.6 без проблем. На машинах будет развертываться KDE (выбран голосованием как наиболее комфортный). В /etc/skel лежат эталонные настройки джля новых пользователей. Возникла проблема - Я создал ярлык для запуска из-под wine этого ПО на сетевом диске. Однако, при использовании абсолютного пути по имени пользователя текущего работает, а относительный вариант нет («~/.wine» вместо «/home/user/.wine»).

Содержимое ярлыка:

[Desktop Entry]
Categories=Office;
Comment[ru]=Инфоклиника
Comment=Инфоклиника
Encoding=UTF-8
Exec=env WINEPREFIX="~/.wine" wine "/mnt/Infoclinica/IStart.exe"
GenericName[ru]=Инфоклиника
GenericName=Инфоклиника
Icon=/usr/share/icons/Infoclinica.png
MimeType=
Name[ru]=Инфоклиника
Name=Infoclinica
OnlyShowIn=KDE;
Path=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=


Ответ на: комментарий от meklon

Не знаю, оно так и сохраняется: «~/.wine». Наверное, не разворачивается в полное имя. А в env все пути развернуты.

cdshines ★★★★★ ()

Раз все равно используется стандартный префикс, убрать его объявление, оставив лишь Exec=wine "/mnt/Infoclinica/IStart.exe"

Imker ()

Возможно ~ таки не разворачивается, попробуй $HOME вместо него.

anonymous ()


опыты показывают, что не разворачивается ничего, ни алиасы, ни подстановки результатов команд. По спецификации ключ Exec строковый - видимо при обработке desktop-файла его значение берется as is и тупо исполняется, считая, что все пути абсолютны или команда есть в $PATH

Imker ()

Exec=env WINEPREFIX=«~/.wine» wine «/mnt/Infoclinica/IStart.exe»

В KDE есть специальный модификатор $e для раскрытия параметров, как это делается в командных оболочках.

Exec[$e]=env WINEPREFIX="$HOME/.wine" wine "/mnt/Infoclinica/IStart.exe"

- такой вариант при первом запуске произведёт раскрытие переменной $HOME и запишет результат в Exec уже на постоянной основе.

Если хотите, чтобы раскрытие производилось каждый раз, сделайте ключ неизменяемым с помощью модификатора $i:

Exec[$ei]=env WINEPREFIX="$HOME/.wine" wine "/mnt/Infoclinica/IStart.exe"
anonymous ()
Ответ на: комментарий от anonymous

Ваше решение заработало. Спасибо)) Правда, после попадания непосредственно на рабочий стол ярлык меняет текст на абсолютный путь. Поэтому

Exec[$ei]=env WINEPREFIX="$HOME/.wine" wine "/mnt/Infoclinica/IStart.exe"
лежит в /usr/share/applications и подтягивается вручную. в skel не засунешь скопировав .kde в /home/$username.

Бог с ним. И так работает. Честно говоря, фиг бы сам нашел.

meklon ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.