This PR fixes two issues that cause rebuild to fail, see #5222.
The first was caused when sync.target and sync.interval were not set,
this was fixed by changing the default values from null to "undefined"
and filtering these out later.
The second error occurred when the .config/joplin-desktop directory
didn't exist (e.g. when installing Joplin for the first time) which
caused the touch command to fail. This was fixed using mkdir to ensure
that .config/joplin-desktop exists.
The `postHook` option was being processed and reset to a string, even if
the user set it to null, causing issues under certain conditions (see
Using `if-then-else` instead of `optionalString` keeps the option as
null, instead of setting it to an empty string.
Support alternate configuration files for k9s in darwin where XDG is
not mandated and k9s expects configuration files in
`~/Library/Application Support/k9s/`.
* neovim: add extraWrapperArgs option
pass external arguments to neovim-unwrapper
this gives users more flexibility in managing neovim configuration
* neovim: add test for `extraWrapperArgs`
Firefox, upon exit, creates the default containers.json file in place of
the one that home-manager created. This leads to errors when switching
to a new profile, as home-manager is careful with overwriting existing
files. The added option toggles that behaviour.
Closes: https://github.com/nix-community/home-manager/issues/4989
The current module constrains to values in enum but khal supports RGB
colors as well
khal.readthedocs.io/en/latest/configure.html#the-calendars-section !
(be careful when setting an RGB value, it has to be quoted else it is ignored, got bitten by it with a manual config )
NB: It's also not possible to set addresses khal.readthedocs.io/en/latest/configure.html#the-calendars-section
The documentation for the option says...
> If you want a default binding to be passed through to the website,
> bind it to null.
but if you actually try to set a key to `null`, it causes an error.
> A definition for option
> `programs.qutebrowser.keyBindings."<Ctrl+Shift+Tab>".normal' is not
> of type `strings concatenated with " ;; "'.
So this commit implements unbinding as it is documented.
The beets package no longer has the "enableCheck" option so this was
confusing. Also the word override was used to mean two different
things so I modified the FAQ to use the word "change" and linked to
documentation regarding package overrides.
Using `mkDefault` for the individual aliases makes it easier to
override or replace individual entries by the user, without having to
use `mkForce` which is often confusing for new users.
Adding unmailboxes option to neomutt, which adds the `unmailboxes`
option it to every account.email with neomutt enabled.
See https://www.mutt.org/doc/manual/#mailboxes for more.
Borgmatic has support for Borg's pattern matching. It is mutually
exclusive with the existing `sourceDirectories` option, so assertions
have been added to make sure that both are not set at the same
time (but also that at least one of them is). Additionally, tests have
been added to test the following configurations: `patterns` instead of
`sourceDirectories`, both at the same time, and neither.
This commit changes the way aliases are rendered, adding the "no more
flags" flag `--`, which means that, for example, the alias `"-" = "cd
-";` will work as expected. (I was getting a syntax error before this
change.)
Additionally, now the alias key is shell escaped, which may help some
edge cases. I'm honestly not sure if this part is necessary since I
assume an alias can't contain spaces anyway, but it definitely
shouldn't break anything.
* vdirsyncer: change verify to type path
accounts.<calendar/contacts>.accounts.<name>.vdirsyncer.verify should not be a bool, it should be a path.
* vdirsyncer: Add example of verify use
* programs.khal: fix build failure due to null value
* calendar: allow null value for primaryCollection
* calendar / programs.khal: set default values to avoid common errors
* khal: fix contact integration
- Add tests for contact+khal
- Make options `color`/`priority` available for contact accounts
* khal: add separate calendar for each contact collection
A contact account may have multiple VCARD collections, but Khal doesn't
search recursively. Collection folder names must be hardcoded, and each
has its own calendar.
- Add khal.collections option for contact accounts
- Default to previous setup for accounts with a single collection
- Add tests
* khal: specify how priority is defined by Khal
See https://khal.readthedocs.io/en/latest/configure.html
neomutt: Updated options and added tests
neomutt: Added test for individual mailbox type
neomutt: Formatted code
neomutt: Enable ssl_force_tls based on IMAP instead of SMTP
neomutt: Applied suggestions from @chayleaf
neomutt: fix breaking tests
In order to manage the extensions and configs from openvscode-server,
the only additional requirement was some mapping missing between the
name of the package and the default configDir/extensionDir
This ensures that `KITTY_SHELL_INTEGRATION` is manually set to the
user's `shellIntegration.mode`. This is necessary because sometimes
the variable is not set in subshells or splits.
`shellIntegration.mode` is also now ensured to always contain `no-rc`.
Since the module system doesn't allow specifying order on types.lines
users can't specify anything to run after what modules have put into
shellInitInteractive since it runs last. This implements a fourth field
that runs after all others, not to be used by HM modules, but regular
users.
Co-authored-by: Carl Hjerpe <git@hjerpe.xyz>
Farm links from the selected firefox package,
programs.firefox.nativeMessagingHosts and a package with a .keep file
for always creating the ~/.mozilla/native-messaging-hosts folder as a
regular folder with links in it.
Fixes#4959
Since nushell 0.89, automatically spreading lists is deprecated. This
commit introduces a string replace for the zoxide init script to replace
the deprecated code.
See: https://github.com/ajeetdsouza/zoxide/issues/662Fixes: #4916
The gradle package from nixpkgs will install a default Java version and
pass it to the gradle executable without polluting the global env.
Users can customize this by overriding the gradle package like so:
programs.gradle = {
package = (pkgs.gradle.override {
java = pkgs.jdk21;
});
}
This commit makes it possible to specify Firefox' extraPolicies
through:
programs.firefox.package = pkgs.firefox.override {
extraPolicies = {... }
}
This was possible in the past but was broken by:
3feeb77155
firefox: add support for specifying policies (#4626)
The identity's signature will be configured according to signature.text
and signature.showSignature. Signature commands are not supported by
Thunderbird.