36 Commits

Author SHA1 Message Date
Ihar Hrachyshka
c03e475289 programs/thunderbird: stop writing directory prefs
Thunderbird prefers[1] directory-rel for account local paths and only
falls back to directory when the relative pref is absent. To add, the
generated directory values were home-relative paths while the app
expects absolute paths when reading the setting. Instead of fixing
these, just drop the redundant settings.

[1] https://searchfox.org/comm-central/source/mailnews/base/src/nsMsgIncomingServer.cpp#745
2026-06-15 16:01:52 -05:00
Austin Horstman
af59809e94 thunderbird: add language packs and policies
Install Thunderbird language packs through enterprise policies so Home
Manager can use Mozilla's release-hosted XPIs without vendoring or
hashing them.

This also exposes programs.thunderbird.policies for configuring
supported Thunderbird enterprise policies directly and wraps the
configured Thunderbird package with merged extraPolicies.
2026-04-28 16:27:37 -05:00
Austin Horstman
c357182707 thunderbird: support ews accounts
Generate the Thunderbird identity and outgoing server preferences
needed for explicit accounts.email.accounts.<name>.ews accounts,
and add an outlook.office365.com-ews flavor preset for Office365
Exchange accounts.

Closes #8011
2026-04-28 16:27:37 -05:00
Austin Horstman
c2f07e2dca thunderbird: default office365 to oauth2
Default Office365 Thunderbird IMAP/SMTP settings to OAuth2 while
keeping the existing outlook.office365.com flavor on IMAP and SMTP.
2026-04-28 16:27:37 -05:00
Austin Horstman
ae6aeb9dbc thunderbird: map account auth methods
Closes #5137
2026-04-28 16:27:37 -05:00
Austin Horstman
4f77c535e0 thunderbird: html signature support 2026-04-28 09:39:47 -05:00
Austin Horstman
b869d6cadb firefox: default configPath to XDG on 26.05
Use `lib.hm.deprecations.mkStateVersionOptionDefault` to keep the legacy `.mozilla/firefox` default for existing configurations while switching new Linux configurations to `"${config.xdg.configHome}/mozilla/firefox"`.

Add focused tests for the legacy and XDG defaults plus a news entry describing the transition.

Closes #8200.
Supersedes #8716 and the earlier attempt in #8672.

Co-authored-by: Heitor <44377258+HeitorAugustoLN@users.noreply.github.com>
2026-04-23 22:58:59 -05:00
Austin Horstman
01ea51d706 treewide: use inherit for attribute assignments
This change converts redundant attribute assignments of the form `a =
a;` or `a = someSet.a;` into cleaner `inherit` statements. This reduces
verbosity and follows common Nix style for bringing attributes into
scope.

Statix Codes: W03 (manual_inherit), W04 (manual_inherit_from)

Also include statix and the rule in our configuration.
2026-04-08 14:47:48 -05:00
tsrk.
d441981b20 thunderbird: fix aliases SMTP configuration not being listed as usable
Signed-off-by: tsrk. <tsrk@tsrk.me>
2025-12-04 10:16:29 +01:00
zorrobert
7834432ca5 thunderbird: support declaration of address books (#7443)
Adds support for address books using the `accounts.contact.accounts.*` options.
2025-07-20 19:12:35 -05:00
tsrk.
3978bcd696 thunderbird: configure SMTP and GPG for aliases
Signed-off-by: tsrk. <tsrk@tsrk.me>
2025-07-10 15:45:32 -05:00
DerRockWolf
66523b0efe thunderbird: support declaration of calendars (#5484)
Adds calendar support using the `accounts.calendar.accounts.*` options.
2025-06-15 19:21:02 -05:00
Ihar Hrachyshka
929f8ee836 thunderbird: deprecate darwinSetupWarning option (#6531)
nixpkgs support thunderbird for darwin now
2025-05-03 10:40:34 -05:00
Austin Horstman
412eb166eb tests/thunderbird: dont use realPkgs
Not relevant for testing.
2025-04-18 15:56:09 -07:00
Nathan Felber
9864a2f421 thunderbird: add accountsOrder option (#6310)
Fixes #5031 and adds accountsOrder option for declarative account ordering in Thunderbird's folder pane as discussed in the issue.
2025-04-09 09:18:26 -05:00
Austin Horstman
cba2f9ce95 treewide: reformat nixfmt-rfc-style
Reformat repository using new nixfmt-rfc-style.
2025-04-08 08:50:05 -07:00
Austin Horstman
c657142e24 thunderbird: add message filters option (#6652)
* thunderbird: add message filters option

Add option to declare account-specific message filters.

* tests/thunderbird: add second filter for sort

Make sure they are generated in correct order.

* thunderbird: use profilePath for messageFilters

In testing on darwin and NixOS, they use this path. 

---------

Co-authored-by: 347Online | Katie Janzen <katiejanzen@347online.me>
2025-03-17 16:14:41 -05:00
Austin Horstman
8d2a058108 tests/thunderbird: fix darwin test 2025-03-09 00:44:11 -06:00
Artem Starikov
90504b9a89 thunderbird: allow managing feed accounts (#5613) 2025-02-22 12:33:41 -06:00
Ihar Hrachyshka
fad54a641a tests: check thunderbird with and without native messaging hosts
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar Hrachyshka
63146593a9 tests: don't override scraping of nixpkgs for thunderbird suite
Instead, pick just the required packages to pass the tests.

Note: we have to refer to real derivations because symlinkJoin assumes
the passed derivation is a directory with files, otherwise it fails as:

@thunderbird@: No such file or directory

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar Hrachyshka
e5e485e73c thunderbird: separate test case for firefox+thunderbird setup
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar Hrachyshka
7e81c581a5 thunderbird, firefox: fix file conflict for native messaging hosts
On Linux, both Thunderbird and Firefox use the same directory to contain
native messaging host modules. On this platform, we have to merge both
directories with native hosts into one.

The patch introduces a separate helper module to manage native host
directory generation. Now program modules (firefox, thunderbird) declare
native hosts to initialize; while the new helper module determines
*where* and *how* to merge them on disc.

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar Hrachyshka
fadb9cba44 Reapply "thunderbird: add native host support (#6292)" (#6371)
This reverts commit 6fbbfb9240.

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Robert Helgesson
7a3f0b3b8d tests: rework derivation stubbing
Instead of having to manually stub packages that should not be
downloaded we instead automatically stub all packages (except a small
list of whitelisted ones). Tests can re-introduce the real package by
using the `realPkgs` module argument.
2025-02-04 23:58:20 +01:00
Austin Horstman
6fbbfb9240 Revert "thunderbird: add native host support (#6292)" (#6371) 2025-01-29 17:11:30 -06:00
Ihar Hrachyshka
608b26d16e thunderbird: add native host support (#6292)
Note: the test case uses a firefox native host but it shouldn't matter
since they are packaged the same way for both TB and Firefox.
2025-01-29 16:07:28 -06:00
Ihar Hrachyshka
12851ae746 thunderbird: Enable tests for Darwin (#6324) 2025-01-17 01:54:26 +01:00
alois31
9ebaa80a22 thunderbird: set the correct SMTP server for aliases (#6177)
Previously, only the main identity of an account would get the proper SMTP
server assigned. Identities corresponding to aliases would not get an SMTP
server assigned at all, leading to a (Thunderbird-internal) fallback to the
SMTP server associated to the primary account. This is obviously wrong for
non-primary accounts having aliases associated to them. Fix it by specifying
the SMTP server explicitly for all identities.
2024-12-09 15:34:21 +01:00
Matthew_Cash
4974dfb26e thunderbird: change settings type to json
Uses the JSON type, just like the Firefox module, so that nested sets
can be used.
2024-09-18 00:12:16 +02:00
Silvio Ankermann
e13aa9e287 thunderbird: configure signature if set (#4852)
The identity's signature  will be configured according to signature.text
and signature.showSignature. Signature commands are not supported by
Thunderbird.
2024-01-09 15:19:17 +01:00
Alois Wohlschlager
75b24cc557 thunderbird: support aliases
The main email address, as well as all aliases, each get mapped to one
identity in Thunderbird. All these identities are then linked to their
account.
2023-06-14 08:31:26 +02:00
VwCSXg
6db559daa9 thunderbird: add extraConfig option
The added extraConfig option allowes users to insert custom text at
the end of the generated profile `user.js` file. This allows the users
to import templates as part of their configuration.
2023-04-17 22:42:32 +02:00
Matthew_Cash
28698126bd thunderbird: add userChrome and userContent options
Add an option to the Thunderbird module that allows specifying CSS for
userChrome and userContent styling

PR #3808
2023-04-12 00:06:38 +02:00
David
2b02f8c7cb thunderbird: use account id for IMAP directory name
This allows users to have multiple accounts on the same domain within
the same profile.

Fixes #3448.
2022-12-04 13:49:29 +01:00
David
b764068a50 thunderbird: add module
Add a new Thunderbird module that uses the configuration in
`accounts.email.accounts` to setup SMTP and IMAP accounts.

Multiple profiles are not supported at this point.
2022-11-04 16:12:12 +01:00