thunderbird: change settings type to json

Uses the JSON type, just like the Firefox module, so that nested sets
can be used.
This commit is contained in:
Matthew_Cash 2024-03-03 00:33:53 -08:00 committed by Robert Helgesson
parent 4a4a8b1454
commit 4974dfb26e
No known key found for this signature in database
GPG key ID: 96E745BD17AA17ED
3 changed files with 22 additions and 3 deletions

View file

@ -7,6 +7,11 @@ let
cfg = config.programs.thunderbird;
thunderbirdJson = types.attrsOf (pkgs.formats.json { }).type // {
description =
"Thunderbird preference (int, bool, string, and also attrs, list, float as a JSON string)";
};
enabledAccounts = attrValues
(filterAttrs (_: a: a.thunderbird.enable) config.accounts.email.accounts);
@ -161,11 +166,21 @@ in {
};
settings = mkOption {
type = with types; attrsOf (oneOf [ bool int str ]);
type = thunderbirdJson;
default = { };
example = literalExpression ''
{
"mail.spellcheck.inline" = false;
"mailnews.database.global.views.global.columns" = {
selectCol = {
visible = false;
ordinal = 1;
};
threadCol = {
visible = true;
ordinal = 2;
};
};
}
'';
description = ''
@ -216,7 +231,7 @@ in {
};
settings = mkOption {
type = with types; attrsOf (oneOf [ bool int str ]);
type = thunderbirdJson;
default = { };
example = literalExpression ''
{

View file

@ -28,6 +28,7 @@ user_pref("mail.smtpserver.smtp_bcd3ace52bed41febb6cdc2fb1303aebaa573e0d993872da
user_pref("mail.smtpserver.smtp_bcd3ace52bed41febb6cdc2fb1303aebaa573e0d993872da503950901bb6c6fc.username", "home.manager.jr");
user_pref("mail.smtpservers", "smtp_bcd3ace52bed41febb6cdc2fb1303aebaa573e0d993872da503950901bb6c6fc");
user_pref("privacy.donottrackheader.enabled", true);
user_pref("second", {"nested":{"evenFurtherNested":[1,2,3]}});
user_pref("second.setting", "some-test-setting");

View file

@ -53,7 +53,10 @@
'';
};
second.settings = { "second.setting" = "some-test-setting"; };
second.settings = {
"second.setting" = "some-test-setting";
second.nested.evenFurtherNested = [ 1 2 3 ];
};
};
settings = {