Изменение "HotKeys" в CLD c помощью шаблонов.

Доброго времени суток!

Появилась необходимость внести изменение в файл ~/.kde4/share/config/khotkeysrc с помощью шаблонов. Однако изменения не применяются. Если переименовать файл (например добавить 1 к названию) то файл создается и изменяется.
Куда копать?

С уважением,
Константин.

Приведите пример Вашего шаблона. CLD доменный или обычный?

CLD доменный или обычный?

CLD доменный.
Собственно шаблон простой(добавляем для всех глобальный шорткат):

cat /var/calculate/remote/templates/V3_ac_desktop_desktop/CLD/.kde4/share/config/khotkeysrc 

 # Calculate format=kde path=~/.kde4/share/config

[Data_3_1Triggers0]

[Data_3_2]
Comment=Комментарий
Enabled=true
Name=Base Launch
Type=SIMPLE_ACTION_DATA

[Data_3_2Actions]
ActionsCount=1

[Data_3_2Actions0]
CommandURL=#-ur_home_path-#/.ICAClient/startBASE.sh
Type=COMMAND_URL

[Data_3_2Conditions]
Comment=
ConditionsCount=0

[Data_3_2Triggers]
Comment=Simple_action
TriggersCount=1

[Data_3_2Triggers0]
Key=Ctrl+Alt+Shift+B
Type=SHORTCUT

если убрать директиву path, и переименовать файл, то файл создается и при изменении шаблона файл изменяется.
Похоже работает правило: шаблонами изменяются те файлы, которые менялись шаблонами при установке/настройке…
С уважением.

Пример шаблона:

 # Calculate env=desktop format=kde path=~/.kde4/share/config name=khotkeysrc 
ac_desktop_profile==on&&cl_chroot_status==off&&ur_login!=root&&pkg(kde-base/kdelibs)>=4.9&&ini(office.hotkeys)==&&ini(main.update)!=off&&cl_ver>=3.1.1


#-ini(office.hotkeys, 4.9)-#

[Data_3_1Triggers0]

[Data_3_2]
Comment=Комментарий
Enabled=true
Name=Base Launch
Type=SIMPLE_ACTION_DATA

[Data_3_2Actions]
ActionsCount=1

[Data_3_2Actions0]
CommandURL=#-ur_home_path-#/.ICAClient/startBASE.sh
Type=COMMAND_URL

[Data_3_2Conditions]
Comment=
ConditionsCount=0

[Data_3_2Triggers]
Comment=Simple_action
TriggersCount=1

[Data_3_2Triggers0]
Key=Ctrl+Alt+Shift+B
Type=SHORTCUT

Имя файла шаблона может быть любым, например hotkeys. Файл поместите в директорию /var/calculate/remote/templates/

Только я его сделал уже под вторую бета-версию утилит 3.1.x, которая выйдет сегодня или завтра, для beta1 используйте ac_desktop_desktop вместо ac_desktop_profile.

Будут вопросы - спрашивайте.

Спасибо, протестирую…

Теперь для понимания пройдемся по заголовку(если где-то ошибся поправьте, пожалуйста):

env=desktop 

это мы указываем, использовать переменные из пакета calculate-desktop.

format=kde path=~/.kde4/share/config name=khotkeysrc 

Здесь тоже все по-старому: формат, путь куда помещаем и имя конечного файла конфигурации.

ac_desktop_profile==on

Это, на сколько я понимаю, как раз директива реагировать(срабатывать) на событие - в данном случае вход в доменный профиль, верно? где можно посмотреть список возможных “событий” для шаблонов?

cl_chroot_status==off&&ur_login!=root&&pkg(kde-base/kdelibs)>=4.9

Вроде тоже понятно: проверка на точто мы не под chroot’ом, не под root, проверяем версию KDE (не меньше 4.9).

ini(office.hotkeys)==

эээ как раз непонятная строчка
дальше

ini(main.update)!=off

проверяем на обновление?!

pre>
cl_ver>=3.1.1

проверяем версию calculate-core - должна быть не ниже 3.1.1

С уважением.

ac_desktop_profile==on
Это, на сколько я понимаю, как раз директива реагировать(срабатывать) на событие - в данном случае вход в доменный профиль, верно?

Если этого условия не будет, шаблон будет выполняться при любом событии.

где можно посмотреть список возможных “событий” для шаблонов?

Все события расписаны в README-файлах /var/lib/layman/calculate/profiles/templates/3.1/

ini(office.hotkeys)==

"ini()":/main/ru/calculate_utilities_templates - функция, при помощи которой шаблоны могут сохранять свои настройки. При настройке профиля пользователя, функция по умолчанию сохраняет значения в файле ~/.calculate/ini.env, при настройке системы - в /etc/calculate/ini.env. Благодаря функции ini() мы избавляемся от необходимости заводить большое кол-во переменных. Через функцию шаблоны сами могут создавать свои переменные, которые могут полноценно участвовать в условных выражениях. После объявления, переменные функции становятся доступны для всех шаблонов.

Чтобы отслеживать изменения, а также иметь возможность управлять процессом обновления настроек, шаблоны учитывают все выполненные настройки. См. файл '~/.calculate/ini.env'. Вверху этого файла выписаны пути к шаблонам, редактирующим этот файл. Поскольку файл имеет samba-подобный формат, менять значения можно не только при помощи функции ini(), но и непосредственно шаблоном. В этом случае будет храниться история правок. В текущей реализации утилит, записанные утилитой ini() значения не комментируются.

Вы можете запретить обновление одного или всех пакетов сразу, отредактировав:

[main]
update = off

При этом вся логика этих действий ложится не на утилиты, а на конкретную реализацию шаблонов.

Для ваших локальных шаблонов удобно хранить значения в отдельной секции [office]. В примере я не использую аналога [update], где хранятся имена программ для возможности указать запрет на дальнейшие обновления конкретной программы, а использую только проверку глобальной переменной main.update.

Чтобы уложиться в формат одного файла, я использую возможность сохранять значения при помощи функции, для этого в теле шаблона использую вызов #-ini()-#. Функция только сохраняет значение ничего не возвращая.

В итоге программа будет настроена только при первом входе в сеанс.

Тестировать можно при помощи cl-desktop. Пример вызовая для версии 3.1.1:

cl-desktop --locate=remote --verbose=on LOGIN