mirror of
https://github.com/nix-community/home-manager.git
synced 2025-12-05 16:41:04 +01:00
219 lines
5.3 KiB
Nix
219 lines
5.3 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
../../accounts/email-test-accounts.nix
|
|
];
|
|
|
|
accounts.email.accounts = {
|
|
"hm@example.com" = {
|
|
thunderbird = {
|
|
enable = true;
|
|
profiles = [ "first" ];
|
|
messageFilters = [
|
|
{
|
|
name = "Should be first";
|
|
enabled = true;
|
|
type = "128";
|
|
action = "Cry";
|
|
condition = "ALL";
|
|
}
|
|
{
|
|
name = "Mark as Read on Archive";
|
|
enabled = true;
|
|
type = "128";
|
|
action = "Mark read";
|
|
condition = "ALL";
|
|
}
|
|
];
|
|
};
|
|
|
|
aliases = [
|
|
"home-manager@example.com"
|
|
{
|
|
realName = "Home Manager";
|
|
address = "homeManager@alias.example.com";
|
|
userName = "homeManager@alias.example.com";
|
|
|
|
signature = {
|
|
showSignature = "none";
|
|
};
|
|
|
|
smtp = {
|
|
host = "ml.example.com";
|
|
port = 465;
|
|
tls.enable = true;
|
|
};
|
|
}
|
|
];
|
|
|
|
gpg.key = "ABC";
|
|
|
|
imap = {
|
|
port = 123;
|
|
tls.enable = true;
|
|
};
|
|
smtp.port = 456;
|
|
|
|
signature = {
|
|
text = "signature";
|
|
showSignature = "append";
|
|
};
|
|
};
|
|
|
|
hm-account = {
|
|
thunderbird = {
|
|
enable = true;
|
|
settings = id: {
|
|
"mail.identity.id_${id}.protectSubject" = false;
|
|
"mail.identity.id_${id}.autoEncryptDrafts" = false;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
accounts.calendar.accounts = {
|
|
calendar = {
|
|
thunderbird = {
|
|
enable = true;
|
|
profiles = [ "first" ];
|
|
};
|
|
primary = true;
|
|
remote = {
|
|
type = "caldav";
|
|
url = "https://my.caldav.server/calendar";
|
|
userName = "testuser";
|
|
};
|
|
};
|
|
holidays = {
|
|
thunderbird = {
|
|
enable = true;
|
|
readOnly = true;
|
|
};
|
|
remote = {
|
|
type = "http";
|
|
url = "https://www.thunderbird.net/media/caldata/autogen/GermanHolidays.ics";
|
|
};
|
|
};
|
|
local = {
|
|
thunderbird = {
|
|
enable = true;
|
|
profiles = [ "second" ];
|
|
};
|
|
};
|
|
};
|
|
|
|
accounts.contact.accounts = {
|
|
family = {
|
|
remote = {
|
|
type = "carddav";
|
|
url = "https://my.caldav.server/contact/";
|
|
userName = "home-manager@example.com";
|
|
};
|
|
thunderbird = {
|
|
enable = true;
|
|
profiles = [ "first" ];
|
|
};
|
|
};
|
|
work = {
|
|
thunderbird = {
|
|
enable = true;
|
|
profiles = [ "second" ];
|
|
};
|
|
};
|
|
shared = {
|
|
thunderbird.enable = true;
|
|
};
|
|
};
|
|
|
|
programs.thunderbird = {
|
|
enable = true;
|
|
package = config.lib.test.mkStubPackage {
|
|
name = "thunderbird";
|
|
};
|
|
|
|
profiles = {
|
|
first = {
|
|
isDefault = true;
|
|
withExternalGnupg = true;
|
|
userChrome = ''
|
|
* { color: blue !important; }
|
|
'';
|
|
userContent = ''
|
|
* { color: red !important; }
|
|
'';
|
|
extraConfig = ''
|
|
user_pref("mail.html_compose", false);
|
|
'';
|
|
|
|
feedAccounts.rss = { };
|
|
|
|
accountsOrder = [
|
|
"hm@example.com"
|
|
"rss"
|
|
"imperative_account"
|
|
"hm-account"
|
|
];
|
|
calendarAccountsOrder = [
|
|
"calendar"
|
|
"imperative_cal"
|
|
"holidays"
|
|
];
|
|
};
|
|
|
|
second = {
|
|
settings = {
|
|
"second.setting" = "some-test-setting";
|
|
second.nested.evenFurtherNested = [
|
|
1
|
|
2
|
|
3
|
|
];
|
|
};
|
|
accountsOrder = [ "account1" ];
|
|
calendarAccountsOrder = [ "calendar1" ];
|
|
};
|
|
};
|
|
|
|
settings = {
|
|
"general.useragent.override" = "";
|
|
"privacy.donottrackheader.enabled" = true;
|
|
};
|
|
};
|
|
|
|
nmt.script =
|
|
let
|
|
isDarwin = pkgs.stdenv.hostPlatform.isDarwin;
|
|
configDir = if isDarwin then "Library/Thunderbird" else ".thunderbird";
|
|
profilesDir = if isDarwin then "${configDir}/Profiles" else "${configDir}";
|
|
platform = if isDarwin then "darwin" else "linux";
|
|
in
|
|
''
|
|
assertFileExists home-files/${configDir}/profiles.ini
|
|
assertFileContent home-files/${configDir}/profiles.ini \
|
|
${./thunderbird-expected-profiles-${platform}.ini}
|
|
|
|
assertFileExists home-files/${profilesDir}/first/user.js
|
|
assertFileContent home-files/${profilesDir}/first/user.js \
|
|
${./thunderbird-expected-first-${platform}.js}
|
|
|
|
assertFileExists home-files/${profilesDir}/second/user.js
|
|
assertFileContent home-files/${profilesDir}/second/user.js \
|
|
${./thunderbird-expected-second-${platform}.js}
|
|
|
|
assertFileExists home-files/${profilesDir}/first/chrome/userChrome.css
|
|
assertFileContent home-files/${profilesDir}/first/chrome/userChrome.css \
|
|
<(echo "* { color: blue !important; }")
|
|
|
|
assertFileExists home-files/${profilesDir}/first/chrome/userContent.css
|
|
assertFileContent home-files/${profilesDir}/first/chrome/userContent.css \
|
|
<(echo "* { color: red !important; }")
|
|
|
|
assertFileExists home-files/${profilesDir}/first/ImapMail/${builtins.hashString "sha256" "hm@example.com"}/msgFilterRules.dat
|
|
assertFileContent home-files/${profilesDir}/first/ImapMail/${builtins.hashString "sha256" "hm@example.com"}/msgFilterRules.dat \
|
|
${./thunderbird-expected-msgFilterRules.dat}
|
|
'';
|
|
}
|