Подскажите где я дурак :(

Хочу с помощью шаблонов на рабочем столе доменных пользователей изменить внутри файла ярлычка (файл.desktop)
значение параметра URL

1 Создаю каталог для шаблонов
/var/calculate/remote/templates/client/my_templates/Desktop
2 внутрь копирую из
/var/lib/layman/calculate/profiles/templates/3.4/6_ac_desktop_profile/2-user/mate-base/MATE-1.8
файлы
.calculate_directory
Home.desktop

внутри
.calculate_directory

 # Calculate name= path="#-ini(resource.desktop)-#" ac_install_merge==on

внутри Home.Desktop

 # Calculate chmod=755 format=samba env(client.os_remote_auth)!=&&ur_domain_set==on
[Desktop Entry]
URL=file:///home/#-ur_login-#/Home

на клиенте от рута делаю
cl-desktop --verbose on test

на что система ругается , что

Заголовки шаблонов директорий и файлов первого уровня должны включать в себя перемееную действия 
пример 
#calculate ac_install_merge==on

Я куда-то не туда включил эту переменную ?

Шаблоны выполняются на каждое событие начиная от синхронизации портежей и заканчивая входом в сеанс. При этом дерево шаблонов едино, а имена файлов и директорий могут быть произвольными. О том какие шаблоны должны быть выполнены прописано через условные выражения. Элементарная проверка на наличие переменной действия позволяет подловить неправильно составленные шаблоны. Созданные внутри templates директории (client/my_templates/Desktop) по умолчанию будут перенесены в корень систему как есть. Чтобы этого не произошло, для каждой директории в файле .calculate_directory можно описать её свойства.

Для примера лучше взять шаблоны из новой ветки 3.5, которые поддерживаются начиная с CL17. Вначале нужно просмотреть условия до директории “MATE-1.8” относительно директории шаблонов /var/lib/layman/calculate/profiles/templates/:

3.5/.calculate_directory

 # Calculate append=skip cl_name==calculate-core&&cl_ver>=3.5.0_alpha44

3.5/6_ac_desktop_profile/.calculate_directory

 # Calculate env=desktop path=~ name= chown=#-main.ur_login-#:#-main.ur_group-# ac_desktop_profile==on

3.5/6_ac_desktop_profile/2-user/.calculate_directory

 # Calculate append=skip ur_login!=root&&ini(main.update)!=off

3.5/6_ac_desktop_profile/2-user/mate-base/.calculate_directory

 # Calculate append=skip

3.5/6_ac_desktop_profile/2-user/mate-base/MATE-1.8/.calculate_directory

 # Calculate append=skip mergepkg(mate-base/mate-session-manager)>=1.8&&ini(update.mate)!=off&&ini(ver.mate)==&&exists(~/.config/mate)==

3.5/6_ac_desktop_profile/2-user/mate-base/MATE-1.8/Desktop/.calculate_directory

 # Calculate name= path="#-ini(resource.desktop)-#"

Описание условий:

  • "append=skip" - не создавать директорию
  • "cl_name==calculate-core" - проверка на наличие модуля - для совместимости с утилитами версии 2.2
  • "cl_ver>=3.5.0_alpha44" - проверка версии утилит
  • "env=desktop" - использовать по умолчанию переменные окружения модуля desktop (нам понадобится логин пользователя, надо знать путь к домашней директории и т.п.), так же выполняется проверка наличия модуля, т.к. модуль может быть отключен USE-флагом пакета (если модуля нет, шаблоны не выполнятся)
  • "path=~" - путь куда будет перенесен шаблон
  • "name=" - имя файла настраиваемого шаблоном - удобно иметь возможность использовать произвольные имена шаблонов
  • "chown=#-main.ur_login-#:#-main.ur_group-#" - параметр указывающий права доступа
  • "ac_desktop_profile==on" - событие настроки профиля пользователя, к которому привязаны последующие шаблоны
  • "ur_login!=root" - проверка что пользователь не root.
  • "ini(main.update)!=off" - проверка что в файле ini.env не запрещена настройка профиля пользователя
  • "mergepkg(mate-base/mate-session-manager)>=1.8" - проверка что установлен или устанавливается пакет mate-base/mate-session-manager
  • "ini(ver.mate)==" - проверка что в секции “ver” нет параметра “mate” со значением. Чтобы не выполнять настройку каждый раз.
  • "exists(~/.config/mate)==" - проверка на отсутствие у пользователя директории с настройками mate. Для того случая, когда у пользователя уже были выполнены настройки.
  • "path="#-ini(resource.desktop)-#" - путь к директории рабочего стола. При настройке профиля утилитами все пути выписаны в ~/.calculate/ini.env.

В самом шаблоне с иконкой так же есть дополнительные условия:

  • env(client.os_remote_auth)!= - пользователь доменный
  • ur_domain_set==on - компьютер в домене (может быть вариант, когда ноутбук загружен за пределами офиса или сервер не доступен)

Подробнее можно посмотреть в документации. Для локальных шаблонов часть проверок можно убрать.

В выбранной вами структуре "client/my_templates/Desktop", можно использовать следующие проверки:

client/.calculate_directory

 # Calculate append=skip env=desktop ac_desktop_profile==on&&ur_login!=root&&env(client.os_remote_auth)!=&&ur_domain_set==on

client/my_templates/.calculate_directory

 # Calculate append=skip path=~ name= chown=#-main.ur_login-#:#-main.ur_group-# ini(office.my_templates)<1

client/my_templates/Desktop/.calculate_directory

 # Calculate path="#-ini(resource.desktop)-#" name=

client/my_templates/ini.env

 # Calculate format=samba path=~/.calculate
[office]
my_templates = 1

client/my_templates/Home.desktop

 # Calculate format=samba chmod=755
[Desktop Entry]
URL=file:///home/#-ur_login-#/Home

Примечание:
# Пути указаны относительно директории с шаблонами /var/calculate/remote/templates/ или /var/calculate/templates/.
# Проверка что пользователь доменный перенесена в начало условий.
# Функция ini() определяет что иконка уже создана при настройке сеанса. Шаблон ini.env меняет значение параметра непосредственно модифицируя файл (другой вариант использовать для этого функцию ini() для записи).

что значит “При этом дерево шаблонов едино” ?

что значит “При этом дерево шаблонов едино” ?

То, что все настройки находятся в одной директории и пути 1_ac_install_disk, 2_ac_install_merge, 3_ac_install_live и т.д. никак не фиксированы. Это позволило однажды полностью изменить структуру шаблонов ничего не переписывая в коде утилит.

я вроде как успешно шаблонами лажу в хоумнике пользователя .
А в /etc/так шаблонами что-нить править возможно ?

А в /etc/так шаблонами что-нить править возможно ?

Конечно, только привязывайте шаблоны к пакетам. Лучше создать отдельную тему. Пример можно взять из /var/lib/layman/calculate/profiles/templates/3.5/2_ac_install_merge.

Ситуация, пользователь удалил ярлык share.desktop? как его восстановить при следующем запуске?

Создайте новую тему на форуме. В этом обсуждении другой пример к тому же двухгодичной давности.