rasdark
1
Здравствуйте, Уважаемые.
Хотелось бы узнать, каким образом можно приложить свои шаблоны <<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
что означает, что шаблон выполнится только если:
- обновление настроек разрешено в ini.env
- настройки еще не производились
- версия настраиваемого пакета >=9.16
Чтобы применить ваш шаблон, можно взять за основу готовый имеющийся, и изменить условие выполнения следующим образом:
# Calculate append=skip merge()!=&&ini(update.urxvt)!=off&&ini(ver.urxvt)>=9.16&&pkg()>=9.16
Теперь ваш шаблон выполнится даже в том случае, если файл .Xresources уже был настроен.
Но правильнее будет использовать другую переменную, отслеживающую факт настройки, например ver.myurxvt, изменив соответствующим образом ini.env после настройки.
Надеюсь, понятно? )
rasdark
3
Да, спасибо за ответ.
Уже в 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 “сырой”, этот файл все равно перезапишется вашим шаблоном.
rasdark
5
Он такой же “сырой” и для шаблонов из калькулейт-оверлея.
Но лучше запретить, лишних чтений-записи из python-программ не будет 
Соответственно увеличится скорость применения шаблона
Lautre
6
Возможно правильней будет завести свои секции для настраиваемых программ, по аналогии с “update” и “ver”. Мы так делаем настраивая софт у себя в компании. В нашем случае ограничиваемся одной секцией “office” с номерами версий.