Хочу объяснения по приоритетам применения шаблонов

Здравствуйте, Уважаемые.

Хотелось бы узнать, каким образом можно приложить свои шаблоны <<ac_desktop_profile>> к, например, urxvt, при наличии подобных шаблонов в вашем профиле?

По факту, применяются сперва ваши шаблоны, обновляется ini.env, и, само собой, мои шаблоны не применяются.

Можно ли это как то изменить или обойти?

Задача: изменить пользовательский файл .Xresources

Здравствуй,
Шаблоны выполняются в порядке:

calculate
distros
local
remote
clt

Соответственно, например, локальные шаблоны имеют более высокий приоритет над шаблонами калькулэйта, т.к. выполняются позднее.
Рассмотрим вашу задачу, на основании имеющегося шаблона калькулэйт.
Файл .calculate_directory содержит:

 # Calculate append=skip merge()!=&&ini(update.urxvt)!=off&&ini(ver.urxvt)==&&pkg()>=9.16

что означает, что шаблон выполнится только если:

  1. обновление настроек разрешено в ini.env
  2. настройки еще не производились
  3. версия настраиваемого пакета >=9.16

Чтобы применить ваш шаблон, можно взять за основу готовый имеющийся, и изменить условие выполнения следующим образом:

 # Calculate append=skip merge()!=&&ini(update.urxvt)!=off&&ini(ver.urxvt)>=9.16&&pkg()>=9.16

Теперь ваш шаблон выполнится даже в том случае, если файл .Xresources уже был настроен.
Но правильнее будет использовать другую переменную, отслеживающую факт настройки, например ver.myurxvt, изменив соответствующим образом ini.env после настройки.

Надеюсь, понятно? )

Да, спасибо за ответ.
Уже в IRC разобрались, спасибо Lautre.

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

ini(ver.urxvt)>=9.16

После первой настройки будет всегда да.

Я, пока, решил повысив версию

 # Calculate append=skip merge()!=&&ini(update.urxvt)!=off&&ini(ver.urxvt)<9.20&&pkg()>=9.20

Но это вариант временный, так как нет никакой гарантии, что Разработчики, в какой-то момент, не обновлят версию в своих шаблонах.

Когда это произойдет, мои настройки перетрутся.
Чтобы этого не произошло, можно пойти вторым путем, с другой переменной, типа

[ver]
rxvt-unicode =

Но, теми же шаблонами необходимо отменить возможность обновления этого конфига шаблонами из калькулейт-оверлея, то есть в ~/.calculate/ini.env

[update]
urxvt = off

Все верно, второй путь правильнее. И нет никакой необходимости запрещать обновление (urxvt = off). Так как формат шаблона .Xresources “сырой”, этот файл все равно перезапишется вашим шаблоном.

Он такой же “сырой” и для шаблонов из калькулейт-оверлея.
Но лучше запретить, лишних чтений-записи из python-программ не будет :wink:
Соответственно увеличится скорость применения шаблона

Возможно правильней будет завести свои секции для настраиваемых программ, по аналогии с “update” и “ver”. Мы так делаем настраивая софт у себя в компании. В нашем случае ограничиваемся одной секцией “office” с номерами версий.