Я думаю, что вам лучше всего использовать mutt, mbsync и все остальное как системные сервисы пользователя. Технически вы можете использовать субмодули для создания схемы модуля, аналогичной users.users.<name>
, однако, поскольку NixOS не управляет домашним каталогом пользователей, вы не сможете размещать файлы конфигурации и создавать каталоги.
Служба пользователяшаблоны должны решить вашу проблему, и вы все равно можете инкапсулировать их в свой модуль
примерно так:
config = {
systemd.user.services."mutt@" = {
# template unit declaration
...
};
...
}
Таким образом, вы можете использовать функции шаблона systemd для получения текущего пользователя и его пути, еслинеобходимо.