Reformat all Nix files
This commit is contained in:
parent
9e0c1102a9
commit
355b63cf73
81 changed files with 2293 additions and 1153 deletions
|
@ -1,15 +1,25 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mkUserJs = with lib; prefs: extraPrefs: ''
|
||||
// Generated by Geoffrey's dotfiles.
|
||||
mkUserJs =
|
||||
with lib;
|
||||
prefs: extraPrefs: ''
|
||||
// Generated by Geoffrey's dotfiles.
|
||||
|
||||
${concatStrings (mapAttrsToList (name: value: ''
|
||||
user_pref("${name}", ${builtins.toJSON value});
|
||||
'') prefs)}
|
||||
${extraPrefs}
|
||||
'';
|
||||
${concatStrings (
|
||||
mapAttrsToList (name: value: ''
|
||||
user_pref("${name}", ${builtins.toJSON value});
|
||||
'') prefs
|
||||
)}
|
||||
${extraPrefs}
|
||||
'';
|
||||
|
||||
toThunderbirdCalendar = account:
|
||||
toThunderbirdCalendar =
|
||||
account:
|
||||
let
|
||||
id = builtins.hashString "sha256" account.name;
|
||||
thunderbird = config.frogeye.accounts.calendar.accounts.${account.name};
|
||||
|
@ -43,25 +53,29 @@ in
|
|||
profiles.hm = {
|
||||
isDefault = true;
|
||||
withExternalGnupg = true;
|
||||
extraConfig = mkUserJs
|
||||
(lib.attrsets.mergeAttrsList (
|
||||
# Add calendar config
|
||||
(lib.mapAttrsToList (name: account: (toThunderbirdCalendar account)) config.accounts.calendar.accounts) ++
|
||||
extraConfig = mkUserJs (lib.attrsets.mergeAttrsList (
|
||||
# Add calendar config
|
||||
(lib.mapAttrsToList (
|
||||
name: account: (toThunderbirdCalendar account)
|
||||
) config.accounts.calendar.accounts)
|
||||
++
|
||||
# Add config for every identity (kinda)
|
||||
(lib.mapAttrsToList
|
||||
(name: account: ({
|
||||
# UPST Make signature be used in Thunderbird
|
||||
"mail.identity.id_${builtins.hashString "sha256" account.address}.htmlSigText" = account.signature.text;
|
||||
"mail.identity.id_${builtins.hashString "sha256" account.address}.compose_html" = false;
|
||||
}))
|
||||
config.accounts.email.accounts) ++
|
||||
(lib.mapAttrsToList (name: account: ({
|
||||
# UPST Make signature be used in Thunderbird
|
||||
"mail.identity.id_${builtins.hashString "sha256" account.address}.htmlSigText" =
|
||||
account.signature.text;
|
||||
"mail.identity.id_${builtins.hashString "sha256" account.address}.compose_html" = false;
|
||||
})) config.accounts.email.accounts)
|
||||
++
|
||||
# General settings
|
||||
[{
|
||||
"mail.pane_config.dynamic" = 0;
|
||||
"intl.date_time.pattern_override.date_short" = "yyyy-MM-dd";
|
||||
}]
|
||||
[
|
||||
{
|
||||
"mail.pane_config.dynamic" = 0;
|
||||
"intl.date_time.pattern_override.date_short" = "yyyy-MM-dd";
|
||||
}
|
||||
]
|
||||
|
||||
)) "";
|
||||
)) "";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -69,40 +83,45 @@ in
|
|||
options = {
|
||||
frogeye.accounts.calendar.accounts = lib.mkOption {
|
||||
default = { };
|
||||
type = lib.types.attrsOf (lib.types.submodule ({ config, name, ... }: {
|
||||
# TODO Set defaults as Thunderbird sets it
|
||||
options = {
|
||||
color = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "#5277c3";
|
||||
};
|
||||
refreshInterval = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 0; # 0 = Manual
|
||||
};
|
||||
readOnly = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
};
|
||||
showReminders = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
offlineSupport = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
email = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
# TODO Nullable
|
||||
# TODO Ensure it actually matches an email identity
|
||||
};
|
||||
clientSideEmailScheduling = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
}));
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule (
|
||||
{ config, name, ... }:
|
||||
{
|
||||
# TODO Set defaults as Thunderbird sets it
|
||||
options = {
|
||||
color = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "#5277c3";
|
||||
};
|
||||
refreshInterval = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 0; # 0 = Manual
|
||||
};
|
||||
readOnly = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
};
|
||||
showReminders = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
offlineSupport = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
email = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
# TODO Nullable
|
||||
# TODO Ensure it actually matches an email identity
|
||||
};
|
||||
clientSideEmailScheduling = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue