1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-14 15:19:45 +01:00
Commit graph

909 commits

Author SHA1 Message Date
Lucas Wagler
020399c287
k9s: v0.29/v0.30 compatibility
- Add `skins` option for definition of multiple skin files
- Change file extension to ".yaml"
- Deprecate `skin` option (points to `skins.skin`)
2024-01-22 00:17:27 +01:00
Nikita Pedorich
0021558dba
mise: fix test
assertPathExists -> assertFileExists
2024-01-21 23:26:31 +01:00
Nikita Pedorich
928f2528f9
mise: add module
This adds the support for the mise program, the successor of rtx. This
commit therefore also removes the rtx module.
2024-01-21 08:51:14 +01:00
Samuele Facenda
9b378afae7
hyprland: change plugins settings generation
The previous syntax (`plugin:name { ...settings}`) is not working with
more than one plugin. There is no documentation for this, just the
source code [1].

With this update the plugins paths aren't generated together with the
full config (so the "plugin" field is not "important" anymore) and the
plugins settings are generated like the other fields.

[1] 4d403dac32/src/config/ConfigManager.cpp (L1574)
2024-01-21 00:40:55 +01:00
Samuele Facenda
2064348e55
hyprland: do not override existing plugins settings in config
The plugin setting in the Hyprland config is used both for defining
plugin paths and configuring the plugins. This fix removes the
silent override of the plugins settings converting them to the
`plugin:<name> { ...settings }` syntax.
2024-01-19 11:27:00 +01:00
Robert Helgesson
d6185e83d8
docs, tests: revert to fetchTarball for nmd and nmt
Turns out pulling nmt and nmd from Nixpkgs causes an IFD, even when
the packages are fixed-output derivations.

Thus, since Sourcehut is up and well, we can revert to simply fetching
nmd and nmt directly.

See discussion in <https://github.com/nix-community/home-manager/pull/4884>.
2024-01-18 23:29:40 +01:00
Jared Baur
d9c869681d
sway: include cursor environment variables
DBus activated services such as mako use the XCURSOR_THEME and
XCURSOR_SIZE environment variables to decide how to show the cursor,
so without these, the cursor may not match the rest of the desktop
when hovering over (in this example) mako notification surfaces.
2024-01-18 00:30:06 +01:00
Damien Cassou
bf4b576f84
firefox: restore compatibility for extraPolicies
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)
2024-01-16 09:04:30 +01:00
Robert Helgesson
8ae3bfe2bf
tests: use nmt from Nixpkgs 2024-01-14 22:57:56 +01:00
Robert Helgesson
f2942f3385
Remove some formatting exceptions
This formats a few more file using nixfmt.
2024-01-13 19:05:27 +01: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
Gabriel Fontes
fcbc70a7ee
xdg-portal: add new module 2024-01-03 20:51:54 +01:00
XYenon
992b38f29c
yazi: fix nushell integration 2024-01-03 20:18:53 +01:00
~noodlez1232
6e91c5df19
i3blocks: added configuration module 2024-01-01 10:15:19 +01:00
Omer Naveed
2aff324cf6
bemenu: add module 2023-12-29 09:24:28 +01:00
Robert Helgesson
30f9cdd69d
oh-my-posh: fix test under Darwin 2023-12-28 23:07:59 +01:00
r-vdp
ba6b75011b
alacritty: make compatible with alacritty 0.13
The config file is in TOML from 0.13 onwards.
2023-12-28 21:25:20 +01:00
Fugi
6e2afa5c3b
sftpman: add module 2023-12-28 14:03:49 +01:00
Tom Hall
0f11c14065
osmscout-server: add module
Osmscout-server includes a setting in its UI to create a systemd user
service and socket to run the server on demand. This does not function
correctly on NixOS, for two reasons:

1. It assumes that the binary path is stable (e.g.
   /usr/bin/osmscout-server), which is not the case on NixOS.

2. It auto-detects the unwrapped binary path, which doesn't work.

This module allows the user to access the same functionality on NixOS.
2023-12-28 09:28:48 +01:00
Harsh Shandilya
d1d950841d gh: include version in settings
Also add an activation script block for allowing gh version 2.40.0 and
later to perform account migration.
2023-12-27 11:42:06 +05:30
Callum Iddon
015a36e9c7
oh-my-posh: enable nushell integration 2023-12-25 19:01:13 +01:00
lgehr
07c322a7cf
aerc-accounts: support for maildirpp (#4653)
* aerc-accounts: support for maildirpp

aerc-accounts now is aware of the mbsync.subFolders setting

* aerc: Adds test for maildirpp format

---------

Co-authored-by: lgehr <lgehr@mailbox.org>
2023-12-22 18:14:39 +01:00
Stel Abrego
8b797c8eea
fish: escape abbr expansions once again
Commit 8cedd6 `fish: support flexible abbreviations` removed shell
escaping for fish shell abbr values. This was a dangerous breaking
change offered little value and made writing abbr expansions more
difficult. This commit restores automatic shell escaping of fish abbr
values.
2023-12-21 11:42:07 +01:00
Joaquín Triñanes
3bfaacf461
direnv: Make lines shorter 2023-12-21 00:00:17 +01:00
Joaquín Triñanes
67c4c05c29
direnv: Apply nushell env transformations
In nushell, the ENV_CONVERSIONS environment variable is used to
transform the defined variables from a string to a nushell value (PATH
to a list being one of the most common uses). This commit applies
user-defined conversions to direnv-loaded variables.

This fixes binary autocompletion not being triggered for newly added
paths and makes direnv work consistently with nushell
2023-12-21 00:00:16 +01:00
Robert Helgesson
4f258945de
thefuck: fix test case 2023-12-20 22:33:36 +01:00
Robert Helgesson
c8c6a52702
sway: fix failing tests
Due to a recent change in Nixpkgs, the version field is required for
the sway package.
2023-12-20 22:29:00 +01:00
Benedikt Ritter
433120e47d
gradle: add module
Introduces a new program called gradle for managing files stored in
the home directory by the [Gradle Build Tool](https://gradle.org).
Gradle uses the $HOME/.gradle folder for all it's configuration.

Features of the new program module are:

- Automatically setting programs.java.enable = true to make a Java
  installation available for running Gradle.
- Specifying an alternate Gradle home directory
- Setting of abitrary values for gradle.properties stored inside the
  Gradle home directory.
- Defining init scripts that will be linked into the init.d inside
  the Gradle home directory.

Co-authored-by: Olli Helenius <liff@iki.fi>
Co-authored-by: Robert Helgesson <robert@rycee.net>
2023-12-20 12:41:17 +01:00
Pierce Bartine
efc177c15f
sapling: add module
Adds a program module for [Sapling](https://sapling-scm.com/).

Since Sapling itself is very similar in nature to Mercurial,
`modules/programs/mercurial.nix` was copied to make this module with
the ignore pieces removed (Sapling respects gitignore).
2023-12-19 23:58:05 +01:00
Viktor Kronvall
6c82b1c9ce docs: use .xhtml for appendices 2023-12-16 15:46:42 +09:00
Viktor Kronvall
6fc71dc563 docs: add release-notes as appendix
The release notes used to be an appendix in the manual. After
converting to markdown that appendix got lost. This commit
reintroduces the release notes into the manual.
2023-12-16 15:46:00 +09:00
Ryan
abdc82d930
yazi: pass additional args to ya alias
This allows commands like `ya /etc/nixos` and `ya --help` to be used.
2023-12-16 00:07:57 +01:00
Robin Gloster
0e2e443ff2
hyprland: mark plugin setting as important
The plugins are often necessary for other configurations.
2023-12-14 08:14:24 +01:00
Jan Schmitt
7a69b3e738
ssh: add addKeysToAgent option 2023-12-14 00:11:45 +01:00
Nara Díaz Viñolas
defbb9c585
hyprland: add option sourceFirst
Add the option sourceFirst to the hyprland module. When this option is
enabled source entries will be put near the top of the file, so that
the variables declared in other files can be used by the other
configuration entries.

Add "source" to the list of important prefixes when the former option
is enabled.

Resolves #4729
2023-12-10 11:12:06 +01:00
Viktor Kronvall
613dbb35db docs: rename generated manual to index.xhtml
The `nixos-render-docs` tool outputs XHTML formatted content. In
order to convince browsers like `firefox` to treat the data as XHTML
the extension must be `.xhtml` and not `.html`.

Using the XHTML-formatted content as HTML is mainly an issue with
self-closing `<a />` tags.
2023-12-07 21:40:31 +09:00
Viktor Kronvall
f48a0062df docs: update paths to make manual tests pass 2023-12-07 21:27:38 +09:00
0x5a4
ac7216918c
firefox: fix folders not showing in toolbar
Fixes #4568
2023-12-04 23:14:01 +01:00
Damien Cassou
7c97c46dc4
signaturepdf: add service 2023-11-27 00:19:14 +01:00
XYenon
a462e7315d yazi: update shell integrations and docs 2023-11-25 16:17:54 +08:00
OTABI Tomoya
8cedd63eed
fish: support flexible abbreviations
https://github.com/fish-shell/fish-shell/releases/tag/3.6.0
2023-11-24 18:44:25 +01:00
Leah Amelia Chen
134deb46ab
bat: support boolean flags in config
Previously, users cannot enable boolean flags like `--show-all` in bat's
config since all options were expected to be either a string, or a list
of strings. With this commit boolean flags are simply appended to the
end of the config if they are set to `true`, and discarded otherwise.

For example, the config

    {
      theme = "TwoDark";
      show-all = true;
      lessopen = false;
    }

would produce a config file that looks like

    --theme='TwoDark'
    --show-all

Fixes #4657
2023-11-23 00:16:58 +01:00
Gaetan Lepage
1bd1e86464
ruff: add module
ruff is Python linter and code formatter, written in Rust.
See <https://docs.astral.sh/ruff/>.
2023-11-22 23:51:52 +01:00
Philipp Mildenberger
1aabb0a31b
picom: use getExe instead of hardcoded binary 2023-11-21 08:55:46 +01:00
Robert Helgesson
9482610ac1
qt: fix issues introduced in previous merge 2023-11-21 08:38:09 +01:00
Thiago Kenji Okada
3de857fa7d qt: fix qt.platformTheme = "gtk3" 2023-11-20 20:33:29 +00:00
Gutyina Gergő
993fb02d20
zsh: allow enabling syntax highlighters (#4360) 2023-11-19 19:37:32 +01:00
Thiago Kenji Okada
fff5204e5d qt: fix basic usage when just qt.enable = true is set 2023-11-19 12:39:53 +00:00
Robert Helgesson
9a4725afa6
qt: multiple fixes
PR #4579
2023-11-19 10:40:09 +01:00
Damien Cassou
3feeb77155
firefox: add support for specifying policies (#4626) 2023-11-17 23:54:39 +01:00
Nicola Squartini
ab1459a1fb
openstackclient: add module (#4530)
Co-authored-by: Sumner Evans <me@sumnerevans.com>
2023-11-15 15:25:44 -07:00
Chuang Zhu
280721186a
firefox: support setting a separate default search engine in private browsing (#4114)
* firefox: support setting a separate default search engine in private browing

Ref: https://searchfox.org/mozilla-central/rev/05d1afda588e54be73e31ef4e022dde91f1ed97a/toolkit/components/search/SearchSettings.sys.mjs#548

* Update modules/programs/firefox.nix

---------

Co-authored-by: Naïm Favier <n@monade.li>
2023-11-12 11:11:12 +01:00
9p4
50e582b9f9
swayidle: always restart systemd unit on failure
Occasionally, swayidle crashes with a failure to connect to the
Wayland session. Ideally, swayidle should automatically restart
instead of leaving the system in a vulnerable state.
2023-11-12 01:13:38 +01:00
Paul Meyer
691cbcc03a
k9s: add aliases, plugins, views
Adding the remaining config files of k9s that weren't covered yet.

PR #4627
2023-11-11 01:39:45 +01:00
Olli Helenius
e27be9db7b
systemd: avoid creating an empty user.conf
Due to the defaults in `systemd.user.settings`, the default value when
there are no settings explicitly set is `{ Manager = { }; }`. This
means an empty file is created even when `systemd.user.settings` is
never used in home-manager configuration. Since user’s `user.conf` is
preferred to the global `/etc/systemd/user.conf`, this can cause any
values set in the latter to be discarded.
2023-11-11 00:51:53 +01:00
Rodney Lorrimar
f5182ffc42
emacs: Fix socket activation 2023-11-11 00:44:54 +01:00
Rodney Lorrimar
47226ec7e7
emacs: Remove obsolete socket file workaround 2023-11-11 00:44:53 +01:00
Damien Cassou
54586daa59
firefox: add container support 2023-11-11 00:34:21 +01:00
Damien Cassou
858fe2f09a
firefox: refactor duplicate profile ID detection 2023-11-11 00:34:20 +01:00
Olli Helenius
6a8444467c
systemd: add settings option (#4276)
The `systemd.user.extraConfig` provides a way to generate a
`systemd-user.conf(5)` file for the user.

This is the home-manager equivalent of NixOS’s option of the same
name, with the difference that NixOS’s option generates a `user.conf`
file that is shared between all users.
2023-11-07 07:55:17 -07:00
9p4
c067d57fc4
swayr: add module (#4322)
a window switcher for sway
2023-11-06 18:05:18 +01:00
Sebastian Zivota
8765d4e38a
thefuck: add fish integration (#4535)
Co-authored-by: Sumner Evans <me@sumnerevans.com>
2023-11-03 09:33:15 -06:00
Willi Carlsen
48b0a30202
granted: add module
Signed-off-by: Willi Carlsen <carlsenwilli@gmail.com>
2023-11-01 22:20:17 +01:00
Philipp Kühn
a421804890
borgmatic: preparing upcoming borgmatic change
This commit changes the config format of repositories to the
soon-be-expected `{ "path": "repository-path", }`. The Home Manager
configuration allows a simple string (which will get translated), the
new format by directly using the path attribute, and the one with the
optional label attribute. More information about the background can be
found here https://torsion.org/borgmatic/docs/reference/configuration/
2023-11-01 22:16:04 +01:00
Li Yang
fc2a8842ea
k9s: add hotkey option (#4617)
* k9s: add hotkey option

This PR adds an option to customise k9s hotkeys.
The keyword `hotKey` must be in camel case on the user config.

* Update modules/programs/k9s.nix

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>

* fix formatting

---------

Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
2023-11-01 18:40:14 +01:00
NAHO
f92a54fef4
wezterm: remove automatic config reload call
Closes: #4426
2023-10-28 09:45:59 +02:00
Knut Magnus Aasrud
1369d2cefb
aerc: fix config paths on darwin
When xdg.enable is set, aerc uses the $XDG_CONFIG_HOME variable instead
of the default $HOME/Library/Preferences. home-manager needs to check
this to make sure aerc can find the proper file in both cases.
2023-10-27 09:44:45 +02:00
Naïm Favier
14b5415720
sxhkd: set scope OOMPolicy to continue
When a process inside the sxhkd scope is OOM killed, if the OOM policy
is set to `stop` then the sxhkd scope itself will exit, terminating
every process launched from the keyboard.

This is undesirable, set it to `continue` instead to keep other
processes running.
2023-10-24 17:48:13 +02:00
Luna Simons
6045b68ee7
cava: add module 2023-10-24 08:20:22 +02:00
Benjamin Lee
219d268a69
aerc: fix config paths on darwin 2023-10-22 10:49:52 +02:00
sisyphushappy
3433206e51
qutebrowser: add greasemonkey userscript option
Co-authored-by: Ivar Scholten <ivar.scholten@protonmail.com>
2023-10-18 22:56:15 +02:00
Thiago Kenji Okada
3452e14ec7 qt: workaround issue when i18n.inputMethod.enabled = 'fcitx5' 2023-10-18 16:17:32 +01:00
Thiago Kenji Okada
5744ebf359 qt: export QT_PLUGIN_PATH/QML2_IMPORT_PATH
Those 2 variables are necessary to make e.g.: qt6ct work correctly.

See issue: https://github.com/NixOS/nixpkgs/issues/239909.
2023-10-18 13:15:56 +01:00
Gabe Dunn
3e1f8df4f0
thefuck: add instant mode option
Also do a slight code cleanup.
2023-10-17 17:30:37 +02:00
Xavier Lambein
b25161c6a2
darkman: add module
Co-authored-by: Naïm Favier <n@monade.li>
Co-authored-by: Robert Helgesson <robert@rycee.net>
2023-10-17 09:07:47 +02:00
Damien Cassou
78125bc681
firefox: add test for duplicate profile id assertion 2023-10-16 00:54:15 +02:00
Damien Cassou
f033205b25
firefox: extract an overlay common to all tests 2023-10-16 00:54:14 +02:00
Janik
3b67ae3f66
services.cliphist: add module (#4445) 2023-10-15 14:03:18 +02:00
Damien Cassou
d4a5076ea8
borgmatic: improve support for version 1.8.0
The configuration file format of borgmatic has changed in version
1.8.0:
https://projects.torsion.org/borgmatic-collective/borgmatic/src/branch/main/NEWS

This commit makes Home Manager generate borgmatic's configuration file
using the new format.

Even though the NEWS file indicates that old configuration files are
compatible, this is not 100% the case: empty sections work fine in old
borgmatic but stop working in new ones. I've reported the bug upstream
by email as I couldn't create an account on the forge.
2023-10-15 00:38:55 +02:00
Kiran Ostrolenk
9a2ce65697
zsh: generalize zsh-history-substring-search
Specifically, allow variable expansion for the key codes by switching
from single to double quotes.

This also adds a helpful suggestion to descriptions. Taken from the
project's README, see

  4abed97b6e/README.md (L71-L74))
2023-10-15 00:09:13 +02:00
Mihai Fufezan
ed0770e962
hyprland: allow customizing systemd
Allows users to customize which environment variables to import in DBus
and SystemD user environments, and to specify which commands will be run
after the environment activation.
2023-10-06 23:34:47 +02:00
Bernardo Meurer
44635279a0
bat: allow setting themes/syntaxes without IFD
The way the `bat` module is currently written makes it essentially
impossible to use themes and syntaxes without IFD, since you must
provide the contents as string, instead of just giving a path to be
linked.

With this change, setting themes/syntaxes by-string will start issuing
warnings, and a new attribute model is added, lightly inspired by how
`programs.zsh.plugins` avoided this issue.
2023-10-06 23:26:08 +02:00
Simone Ragusa
68f7d8c0fb
firefox: set ADD_DATE and LAST_MODIFIED of bookmarks to 1
For some reason, Firefox completely discards the ADD_DATE and
LAST_MODIFIED attributes if they are set to 0. This has been
confirmed by exporting a sample set of bookmarks generated by
Nix using home-manager and comparing it to the same sample of
bookmarks set manually and then exported.

Missing these attributes can cause problems for extensions and
other tools that try to read bookmarks. A known example is the
Tridactyl extension.
2023-10-04 21:08:09 +02:00
ilaumjd
2874c6fce6
thefuck: add module 2023-10-04 09:39:23 +02:00
ilaumjd
b0e0d82696
zsh-abbr: add module 2023-10-04 08:07:49 +02:00
ilaumjd
55ce64c3ca
scmpuff: enable or disable aliases 2023-10-03 18:04:43 +02:00
Olmo Kramer
6f9b5b83ad
khard: add module 2023-10-01 09:29:05 +02:00
Avimitin
209a24dff2
wpaperd: add wpaperd configuration
Signed-off-by: Avimitin <dev@avimit.in>
2023-10-01 09:23:33 +02:00
Anthony Roussel
f1b7775d23
awscli: add module 2023-09-30 09:48:13 +02:00
shimun
a88df2fb10
bacon: add module
Bacon is a background rust code checker. See
<https://dystroy.org/bacon/>.
2023-09-24 12:07:57 +02:00
Robert Helgesson
baf222f2fb
tests: add mainProgram to stub packages
This is to avoid warnings being printed while tests are run.
2023-09-24 09:48:46 +02:00
Avimitin
835465e8ba
lsd: allow user to configure colors
Signed-off-by: Avimitin <dev@avimit.in>
2023-09-24 09:47:00 +02:00
XYenon
7413408b04
yazi: add fish and nushell integration
PR #4493
2023-09-24 00:41:14 +02:00
Sefa Eyeoglu
e0c70942c0
programs.sway: separate trayOutput values for sway (#4489)
Fixes nix-community/home-manager#4488

The default config for sway generates a bar block with tray_output primary. But wayland (or sway, take your pick?) has no concept of a primary display so this just results in no tray anywhere.

A better default is "*" which puts the tray on every monitor, since sway can do so without issue.

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-09-23 20:53:45 +02:00
Franz Pletz
408ba13188
neomutt: fix STARTTLS
When smtps is used as a protocol, neomutt expects TLS but will if
STARTTLS should be used. When using STARTTLS, smtp has to be used as
protocol and `ssl_force_tls` is set.

See <https://neomutt.org/guide/optionalfeatures#2-1-%C2%A0starttls>.
2023-09-20 17:39:23 +02:00
Robert Helgesson
8aac47a140
waybar: fix service After value
Fixes #4469
2023-09-19 21:39:16 +02:00
Robert Helgesson
92364581dd
tests: sort test list 2023-09-19 08:03:34 +02:00
Motiejus Jakštys
8045eb45a7
pasystray: add extraOptions
Allows a user to, for example, add the `-g` option.

Also add a basic test case.
2023-09-19 08:02:18 +02:00
Otavio Salvador
f092a92202
programs.rio: add module (#4118)
Adds a programs.rio module to control Rio installation and configuration, a gpu accelerated terminal

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2023-09-18 22:42:22 +02:00
stuebinm
aed5ed979e
bat: allow adding custom syntaxes
Adds an option to add custom syntax files to bat's cache, analogous to
the existing programs.bat.themes option.
2023-09-13 22:29:41 +02:00
VwCSXg
d12c8fc85b
emacs: fix emacs-extra-config test
Fixes #4453
2023-09-13 19:13:10 +02:00
Weathercold
3c0e381fef
carapace: add module 2023-09-05 08:39:59 +02:00
Robert Helgesson
f5c15668f9
tests: update to match latest TOML output
The generated format seems to have changed with the merge of
<https://github.com/NixOS/nixpkgs/pull/245440>.
2023-08-30 14:37:13 +02:00
arjan-s
a7eab56be5
programs.khal: add settings option (#4375) 2023-08-30 11:57:47 +02:00
XYenon
90e62f96c7
programs.yazi: add module (#4373)
add module for yazi https://github.com/sxyazi/yazi a terminal rust file browser akin to ranger or joshuto
2023-08-27 20:47:47 +02:00
Anton Mosich
8eb8c212e5
qcal: add module 2023-08-22 18:09:05 +02:00
Robert Helgesson
aa59f91746
fcitx5: add fcitx5-config-qt to test stub 2023-08-16 22:41:11 +02:00
Robert Helgesson
1ccd0c935c
pqiv: only run tests on Linux platforms 2023-08-16 22:38:03 +02:00
Donovan Glover
9db5b89f40
pqiv: add module 2023-08-16 17:44:54 +02:00
Robert Schütz
18791781ea
browserpass: support librewolf 2023-08-15 08:42:51 +02:00
musjj
406d34d919
lf: simplify option validation (#4334)
Don't try to validate a limited set of hardcoded options, instead just
convert them as-is. Now, users can keep all their options in a single
attribute set, including arbitrary `user_{option}`s which was impossible
to express with a hard-coded submodule. As a plus, there is also less
maintainence burden.
2023-08-12 18:10:49 +02:00
Jian Lin
a8f8f48320
mu: add package option (#4325) 2023-08-09 18:40:43 +02:00
Maxim Karasev
0a014a729c
aerc: do not use smtp-starttls (#4272)
It was deprecated in 0.15.0, +insecure schema is suggested instead.
Thus, we can just copy imap logic, which already uses +insecure.
2023-08-05 10:56:10 +02:00
Yt
8c731978f0
nushell: deprecation of let-env (#4292) 2023-08-01 19:27:30 +02:00
satoqz
4fd794d3df
gh: option to enable helper for additional hosts (#4288)
* gh: option to enable helper for additional hosts

`gh` can also be used with github enterprise
hosts, for which there exists no easy option
to enable the credential helper except for
directly working with `programs.git.extraConfig`.
Not sure if this is a needed addition since it's
somewhat niche, at the same time it's not very
complex and makes the life of github enterprise
a little easier.

* gh: update credential-helper tests

* gh: refactor credential helper option

this moves from `enableGitCredentialHelper` to
`gitCredentialHelper.enable` and
`gitCredentialHelper.hosts`.

* gh: lib.mkIf -> mkIf
2023-08-01 01:40:37 +02:00
Robert Helgesson
f58889c07e
gnome-terminal: add assertion on profile names 2023-07-29 19:43:20 +02:00
Janik H
a30f5b5b35
gh-dash: add module 2023-07-24 12:38:44 +02:00
ryane
ab70a02363
git-sync: add darwin support
- On darwin, creates a launch agent to run git-sync on an interval and
  when the `path` changes.

- The `uri` option is not used on Darwin. The auto-creation of the
  local git directory from the `uri` is a feature of the
  git-sync-on-inotify [1] wrapper (which won't work on Darwin afaik)
  and not `git-sync` itself.

[1] https://github.com/simonthum/git-sync/blob/master/contrib/git-sync-on-inotify
2023-07-24 11:16:09 +02:00
Mihai Fufezan
76dd6c6619
hyprland: prioritize variables and beziers (#4263)
* hyprland: prioritize variables and beziers

The `settings` key now handles `$variables` and `bezier`s differently,
putting them at the top of the file.
Also, proper indentation has been implemented.

* Update modules/services/window-managers/hyprland.nix

Co-authored-by: Naïm Favier <n@monade.li>

* hyprland: add animations & beziers test

---------

Co-authored-by: Naïm Favier <n@monade.li>
2023-07-22 13:58:46 +02:00
Mihai Fufezan
ee5673246d
hyprland: add module
Ported from

  https://github.com/hyprwm/Hyprland/blob/main/nix/hm-module.nix

which was adapted from the sway module.

Co-authored-by: Robert Helgesson <robert@rycee.net>
2023-07-21 00:14:22 +02:00
Emily
9f9e277b60 treewide: remove now-redundant lib.mdDoc calls
These (and the `*MD` functions apart from `literalMD`) are now no-ops
in nixpkgs and serve no purpose other than to add additional noise and
potentially mislead people into thinking unmarked DocBook documentation
will still be accepted.

Note that if backporting changes including documentation to 23.05,
the `mdDoc` calls will need to be re-added.

To reproduce this commit, run:

    $ NIX_PATH=nixpkgs=flake:nixpkgs/e7e69199f0372364a6106a1e735f68604f4c5a25 \
      nix shell nixpkgs#coreutils \
      -c find . -name '*.nix' \
      -exec nix run -- github:emilazy/nix-doc-munge/98dadf1f77351c2ba5dcb709a2a171d655f15099 \
      --strip {} +
    $ ./format
2023-07-17 18:49:09 +01:00
Emily
36a53d9f26 treewide: convert all option docs to Markdown
This process was automated by [my fork of `nix-doc-munge`]. All
conversions were automatically checked to produce the same DocBook
result when converted back, modulo minor typographical/formatting
differences on the acceptable-to-desirable spectrum.

To reproduce this commit, run:

  $ NIX_PATH=nixpkgs=flake:nixpkgs/e7e69199f0372364a6106a1e735f68604f4c5a25 \
    nix shell nixpkgs#coreutils \
    -c find . -name '*.nix' \
    -exec nix run -- github:emilazy/nix-doc-munge/98dadf1f77351c2ba5dcb709a2a171d655f15099 \
    {} +
  $ ./format

[my fork of `nix-doc-munge`]: https://github.com/emilazy/nix-doc-munge/tree/home-manager
2023-07-17 18:40:56 +01:00
Emily
c1d8d2a3d1 treewide: adjust some DocBook for conversion
The NixOS variant of Markdown doesn't make a distinction between
`<code>` and `<literal>` or `<quote>` and... quotes, and doesn't
support `<parameter>` or `<replaceable>`. These are infrequently used
(apart from `<code>`) and don't add much, so just convert them to
simpler forms to allow the options containing them to be converted
to Markdown automatically.

A few minor syntactic adjustments were also made to make
`nix-doc-munge`'s job easier.
2023-07-17 16:49:35 +01:00
Emily
1add3c3a99 manual: add test
This checks that the documentation can be built in the context of a
Home Manager configuration.
2023-07-16 14:26:53 +01:00
Aaron Pietscher
5598567489
zsh: fix custom syntax highlighting styles (#4236)
Previously, lines in .zshrc were added with quotes in keys
(e.g. ZSH_HIGHLIGHT_STYLES['comment']='fg=#6c6c6c'). However, zsh
considered these quotes to be part of the key, so the "comment" key
remained unchanged.
2023-07-15 11:49:12 +02:00
Sven Friedrich
f63b39a67d
i3-sway: multiple outputs (#4223)
multiple outputs can be assigned to a workspace
2023-07-14 21:25:55 +02:00
Genevieve
bec87d536c
aerc: add assertion to limit per-account extraConfig to UI config (#4196)
* aerc: fix per-account extraConfig section names

The aerc configuration file `aerc.conf` can contain 10 different
sections, but only the UI section supports what the aerc manual calls
contextual configuration. This works by appending to the section heading
either `:account=name` or `:folder=bar`.

The aerc-accounts module, however, applied `mkAccountConfig` to each
section heading declared in
`config.accounts.email.accounts.<name>.aerc.extraConfig.*`. This means
home-manager will generate files with `[general:account=default]` and
the options will not be recognized by aerc.

To address this, and since it doesn't make sense for other sections to
only be under a single account's scope, an assertion has been added
to confirm that only sectons that support contextual config (i.e.,
only the UI section) is declared.

This also addresses confusions like declaring
`accounts.email.accounts.*.aerc.extraConfig.general.unsafe-accounts-conf
= true` and triggering a warning message because
`programs.aerc.extraConfig.general.unsafe-accounts-conf` was unset.

This commit also updated documentation throughout the aerc modules to
be in line with this change, and fixed minor typos/formatting therein.

Co-authored-by: Genevieve <genevieve@sunlashed.garden>

* aerc: make assertion plaintext and add test case

This commit adds a test case to check both the warning on unset
`unsafe-accounts-conf = true` when aerc accounts are configured
with Nix, and the new assertion when per-account configuration
contains unsupported subsections (i.e. general).

It also fixes minor formatting issues and typos.
2023-07-14 20:34:28 +02:00
Robert Helgesson
b70db52ff0
imapnotify: move test
Also add test for the systemd service.
2023-07-09 10:53:28 +02:00
David Baynard
fad475553a
imapnotify: use direct nix store path for config
As pointed out in #3291, using the XDG symlink means the agent/unit
files don’t change when the contents of the config changes, and so the
service will not be restarted.
2023-07-09 09:32:25 +02:00
SaiProton
e15010ee6e
nushell: add login.nu configuration option
Nushell has the option to source from the login.nu file in the case
that nushell is used as a login shell. This commit adds the login file
alongside the existing config and env files as another configuration
option.
2023-07-08 23:58:37 +02:00
SiriusStarr
24805d3ca7
himalaya: fix notmuch backend
Previously, IMAP was preferred over notmuch, even if notmuch was
configured, causing problems with setting account flavor (which
automatically sets IMAP settings). The new backend order is:

    notmuch > IMAP > maildir

This also fixes the notmuch DB path being set to the wrong location.
The notmuch DB is located at the maildir base path, not in each
account's maildir.
2023-07-08 12:37:34 +02:00
Anton Plotnikov
98282a481d
swayosd: add module 2023-07-08 12:09:09 +02:00
Tobias Markus
069d450b6d
pyenv: add module
Adds a module for pyenv (https://github.com/pyenv/pyenv).
2023-07-08 11:26:21 +02:00
Chris Martin
050d01a62c
darcs: add module 2023-07-08 10:31:45 +02:00
Robert Helgesson
af715ed857
tests: some minor cleanups 2023-07-08 10:12:35 +02:00
Robert Helgesson
f288310b7a
goimapnotify: remove test dependency on notmuch
Also minor test cleanup.
2023-07-08 09:58:06 +02:00
David Baynard
719de878f7
imapnotify: Add launchd agent (#3291)
* imapnotify: expose package (and exe) options

There are multiple packages that provide an imapnotify interface. Those
packages have differently named executables. This can now be customized.

This change also means test configurations can use stub packages.

* imapnotify: use/create config in configHome

Exposing the configuration file makes testing imapnotify configurations much
easier. It also allows for golden tests in home-manager.

* imapnotify: extend with launchd agent

Now that home-manager supports launchd agents, the imapnotify service
can be configured (and enabled) for darwin. The configuration matches
that of the linux/systemd version. In particular, by not setting a
`UserName`, this runs as the user whose configuration includes the
module.

Due to the launchd `Program` implementation (it must take an absolute
path) it is not possible to use that for the program and stub the path
in tests. Instead, this uses `ProgramArguments` for the program name.

The `ThrottleInterval` is equivalent to `RestartSec`. `KeepAlive` is
equivalent to `Restart`.

The `ExitTimeOut` default is 20 seconds, but goimapnotify should not
time out — this is achieved by setting the `ExitTimeout` to 0.

* imapnotify: add launchd plist test

This only tests the generated plist (which is new), not the original
systemd implementation, nor the json config file.

(Note the lack of a newline at the end of the plist file.)
2023-07-07 11:39:12 +02:00
hitsmaxft
2f78e6fcba
antidote: static file move to /tmp
Make antidote create static file path with hm hash_id in /tmp.
2023-07-05 08:30:58 +02:00
Janik
4a26e21030
programs.khal
moved highlight_event_days where appropriated and added tests
2023-07-04 12:14:47 +02:00
Rodney Lorrimar
3be2abb2e6
i18n: Use glibcLocales from NixOS if possible (#2333) (#4177)
This will reduce the system closure size by about 200MB under NixOS by
sharing the glibcLocales package.

When home-manager is installed on Linux without the NixOS module, all
glibc locales are installed, as before.

Resolves: #2333
2023-07-04 11:28:25 +02:00
Kylie McClain
44d1a8542a
sxhkd: allow usage of derivations as keybind commands (#4169)
This makes it consistent with some other options, like
`systemd.user.services.Service.ExecStart`.
2023-06-30 17:49:05 -06:00
ThinkChaos
f5f64ac022
zsh: allow setting custom syntax highlighting styles (#4122)
* zsh: allow setting custom syntax highlighting styles

Custom styles allow overriding the default colors.
Example:
```nix
zsh.syntaxHighlighting.styles.comment = "fg=#6c6c6c";
```

See https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md

* zsh: allow configuring syntax-highlighting package
2023-06-28 11:12:58 +02:00
Naïm Favier
4c08f65ab5
broot: fix test (#4170)
We can't test for the whole contents of the config file because that is
out of our control and may change unexpectedly. Only check for the
settings we know should be set.
2023-06-27 11:02:53 +02:00
hitsmaxft
491f74db89
antidote: fix package source path
Changes

  'source %antidote%/antidote.zsh'

to

  'source %antidote%/share/antidote/antidote.zsh'
2023-06-23 09:36:00 +02:00
hitsmaxft
70ac18872a
antidote: add module
Antidote is a Zsh plugin manager.
2023-06-23 00:35:00 +02:00
Clément DOUIN
9ce6977fe7
himalaya: adjust module for 0.8.X (#4093)
Added notmuch support, and adjust password commands configuration.
2023-06-21 10:59:29 +02:00
Damien Cassou
ec58f8bed7
borgmatic: add missing support for output and hooks
Fixes #3760
2023-06-20 19:19:10 +02:00
Will Leinweber
f06a43dca0
starship: add enable_transience for fish (#3975)
Starship has an advanced, experimental feature where fancy stuff in the
prompt can be replaced with something more simple after the command is
ran. This is very helpful for copy and pasting shell history somewhere
else.

docs: https://starship.rs/advanced-config/#transientprompt-and-transientrightprompt-in-fish

Fish is currently the only shell as far as I can tell that both
home-manager and starship support for this feature. Since the function
has to be called after starship is loaded, this seems like the best
place to put it.

format
2023-06-19 21:56:48 +02:00
Clément DOUIN
e0034971f9
comodoro: add module 2023-06-14 23:43:19 +02: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