Commit graph

1230 commits

Author SHA1 Message Date
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
Gutyina Gergő 993fb02d20
zsh: allow enabling syntax highlighters (#4360) 2023-11-19 19:37:32 +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
Robert Helgesson fad880ea93
firefox: minor documentation fix 2023-11-12 01:07:50 +01:00
Damien Cassou d78f6693ee
firefox: add finalPackage read-only option
When a user references config.programs.firefox.package in her/his
configuration, s·he will get a different path than what is in the
$PATH variable. To make it possible to get the same path, this commit
introduces the finalPackage read-only option.
2023-11-12 00:57:26 +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
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
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
Nova Leary 9bc7d84b82
zsh: made ZDOTDIR export to the shell (#4619) 2023-11-01 00:35:15 +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
Martin Schwaighofer 9d0f799c66
helix: add extraPackages option
Closes #2923 based on how arnarg solves this in his personal config.
With review suggestions from musjj.

Co-authored-by: Arnar Gauti Ingason <arnarg@fastmail.com>
Co-authored-by: musjj <72612857+musjj@users.noreply.github.com>
2023-10-25 18:11:33 +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
Haras 4c0bcf5dff
exa: add aliases to nushell 2023-10-22 00:38:07 +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
r-vdp 84fa81c7ac
fzf: add mkOrder for fish like we do for other shells 2023-10-18 11:40:55 +02:00
r-vdp cffc9938c7
fzf: fix fish integration
Since fzf 0.43.0, the fzf_key_bindings function is only defined when
fish is running interactively, see [1].
This caused errors when entering non-interactive fish shells since we
called fzf_key_bindings during startup.

[1]: 7e89458a3b
2023-10-18 10:26:09 +02:00
Gabe Dunn 3e1f8df4f0
thefuck: add instant mode option
Also do a slight code cleanup.
2023-10-17 17:30:37 +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?plain=1#L71-L74)
2023-10-15 00:09:13 +02:00
a-kenji 31a27e4806
fish: query pname and version for completions
Query the `pname` and `version` attributes for completion generation,
if the `name` attribute is not available.

Fixes #2813
2023-10-07 00:59:08 +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
Ramses 4f02e35f9d
direnv: add package options 2023-09-29 12:51:58 +02:00
jakob 0f4e5b4999
keychain: fix edge-cases in nushell integration
- If the parse does not match/returns an empty list, transpose does
  not transform it into a record and thus load-env fails.

- The parsing assumes keychain to emit bash-style completions, so set
  SHELL=bash to ensure keychain output is in the expected format.

PR #4459
2023-09-26 16:24:27 +02:00
KFears dd88dbc694
neovim: expose finalPackage
Make the `finalPackage` option public, but still read-only. The final
package option is quite useful for users.

For example, to integrate `lazy.nvim` with Nix there are three things
that must be done:

1. `lazy.nvim` resets packpath, which should be managed by Nix; it has
   to be turned off with `performance.reset_packpath = false` option in
   `lazy.nvim`

2. Same thing applies to rtp, the relevant option is
   `performance.rtp.reset = false`

3. `dev.path` must be specified as the folder that contains the plugins.
   This folder is the path to Nix store path with Neovim plugins, and
   the plugins that are managed by Nix must be marked as `dev = true`

The third condition can not be fulfilled without this PR, as the final
package that Home Manager produces is not exposed, therefore it is
impossible to extract the Nix store path. This PR makes it more
accessible via

    ${
      pkgs.vimUtils.packDir config.programs.neovim.finalPackage.passthru.packpathDirs
    }/pack/myNeovimPackages/start
2023-09-26 08:00:52 +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
Avimitin 835465e8ba
lsd: allow user to configure colors
Signed-off-by: Avimitin <dev@avimit.in>
2023-09-24 09:47:00 +02:00
Chris Dawkins 2d27bdcd64
direnv: fix nushell syntax
With nushell `0.85.0` this is no longer valid syntax. This change fixes
the syntax error with `0.85.0` while still remaining valid for `0.84.0`
and earlier.
2023-09-24 00:56:48 +02:00
XYenon 7413408b04
yazi: add fish and nushell integration
PR #4493
2023-09-24 00:41:14 +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
David Knaack 6f88243322
starship: use use instead of source for nushell
For starship v1.16 onwards this is the upstream-recommended method.
2023-09-19 23:14:29 +02:00
Robert Walter 7ee73f5363
rofi-pass: add package option 2023-09-19 22:24:36 +02:00
Robert Helgesson 8aac47a140
waybar: fix service After value
Fixes #4469
2023-09-19 21:39:16 +02:00
VwCSXg feb7006159
git: replace gitToInit with lib function
Remove the function gitToInit and underlying functions in favor of using
the function lib.generators.toGitINI from nixpkgs.
2023-09-18 23:57:36 +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
Florian Peter e63a6b3479
programs.i3status-rust: reload on config change (#4466)
Adds automatic reloading of i3status-rust on config change.
This is done via sending SIGUSR2, which is now supported since [v0.20.0](https://github.com/greshake/i3status-rust/blob/master/NEWS.md#new-blocks-and-features-21)

The previous method of attempting to restart i3 in its entirety didn't work at least on my system, and is now overkill anyways.
2023-09-18 15:25:42 +02:00
Robert Helgesson 5f5cb7a613
carapace: add xgettext workaround 2023-09-13 23:45:50 +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
Tristan Daniël Maat 5171f5ef65
swaylock: document the need for host PAM configuration 2023-09-11 23:59:04 +02:00
Sefa Eyeoglu ac1c7c34db
exa: replace with eza
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2023-09-11 22:17:41 +02:00
Lin Jian 19c6a4081b
emacs: add version for default.el package
A recent change[1] in Nixpkgs makes version attribute non-optional.

[1]: https://github.com/NixOS/nixpkgs/pull/253448
2023-09-08 09:00:58 +08:00
Robert Helgesson f1d4f49e71
just: simplify 2023-09-07 22:29:12 +02:00
Christina Sørensen 91341cde41
eza: add module
This copies the exa configuration for eza, the official fork of the
program.

Signed-off-by: Christina Sørensen <christina@cafkafk.com>
2023-09-07 17:57:00 +02:00
Weathercold 3c0e381fef
carapace: add module 2023-09-05 08:39:59 +02:00
arjan-s a7eab56be5
programs.khal: add settings option (#4375) 2023-08-30 11:57:47 +02:00
Damien Cassou 455cc8cf1c
offlineimap: cleanup unused bindings 2023-08-27 22:36:42 +02:00
Damien Cassou 0962772e0b
antidote: cleanup unused bindings 2023-08-27 22:36:41 +02:00
Damien Cassou 35cbed7ac7
aerc: cleanup unused bindings 2023-08-27 22:36:40 +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
networkException f8c5fd7509
chromium: add support for dictionaries
this patch adds support for installing hunspell dictionaries in
chromium.
2023-08-27 10:42:38 +02:00
Anton Mosich 8eb8c212e5
qcal: add module 2023-08-22 18:09:05 +02:00
Robert Helgesson ea59b79f31
bat: generate cache file in XDG cache home
Fixes #4345
2023-08-22 08:34:00 +02:00
Donovan Glover 9db5b89f40
pqiv: add module 2023-08-16 17:44:54 +02:00
NotAShelf b84767a145
xplr: add module 2023-08-15 20:26:58 +03: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
Anton Mosich 255f921049
programs.khal: uncomment locale config (#4319)
While the locale options were declared, the weren't used in the
generation of the config file, because the locale submodule missed a
default, which failed the tests. I added an empty attribute set as a
default, which fixes the test, and works with the defaults in the
submodule options as expected.
2023-08-12 17:21:13 +02:00
Jian Lin a8f8f48320
mu: add package option (#4325) 2023-08-09 18:40:43 +02:00
Christian Albrecht 7b8d43fbaf
modules: types.string throws error now (#4324)
Since the merge of https://github.com/NixOS/nixpkgs/pull/247848
2023-08-08 17:00:24 +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
Lena Fuhrimann 15043a6591
zsh: Add zsh.history.ignoreAllDups config option (#4248) 2023-08-04 12:12:57 +02:00
Matt Moriarity a4f4508791
jujutsu: fix zsh completion (#4305) 2023-08-04 11:19:57 +02:00
Masanori Ogino a146ab6a61
himalaya: update a link to ticket 2023-08-02 11:41:17 +02:00
Yt 8c731978f0
nushell: deprecation of let-env (#4292) 2023-08-01 19:27:30 +02:00
Yureka 4542db6056
man: fix caches generation in cross-compiled system (#4294)
Co-authored-by: Your Name <you@example.com>
2023-08-01 12:56:37 +02:00
Yureka 89df56fefe
fish: fix session vars build in cross-compiled system (#4293) 2023-08-01 10:50:13 +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
Anselm Schüler 8d243f7da1
gpg: fix typo (#4277) 2023-07-27 18:54:08 +02:00
Naïm Favier ba2c0737cc
firefox: make package nullable (#4113) 2023-07-25 18:49:12 +02:00
Naïm Favier d309a62ee8
tmate: don't generate empty config file (#4271) 2023-07-24 16:17:31 +02:00
Janik H a30f5b5b35
gh-dash: add module 2023-07-24 12:38:44 +02:00
Patrick Jackson 1443abd269
script-directory: fix documentation link (#4258) 2023-07-20 19:52:05 +02:00
Masanori Ogino 44ba018437
jujutsu: update for Jujutsu 0.8.0 (#4250) 2023-07-19 20:33:38 +02:00
Naïm Favier 0841242b94
ripgrep: don't set env. variable if no config (#4254)
Fixes https://github.com/nix-community/home-manager/issues/4253
2023-07-19 18:18:40 +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 e04de5b308 treewide: mkPackageOption -> mkPackageOptionMD 2023-07-17 16:49:35 +01:00
Emily 71df507159 treewide: convert options with tables to Markdown
The Markdown options processor cannot handle rendering tables
to DocBook.  This could be fixed, but as we won't be using the
DocBook output for long I just removed them for now in the interest
of expediency; they were all well-suited to being description lists
showing option types anyway, apart from one awkward case in the form
of trayer, which also had ad-hoc syntax for enumerating acceptable
values in the documentation. Since the types aren't actually used for
option processing anyway, I changed them to use `enum` and similar to
give a single description of the acceptable values without a big table.
2023-07-17 16:49:35 +01:00
Emily 21c700d14b treewide: convert options with lists to Markdown
`nix-doc-munge` can't handle these, which is understandable as I can
barely handle them either. There are a few infelicities here: the
current processor can't handle multiple terms to one description in
a description list so they get comma-separated in one case, and one
case that should ideally render as a `<figure>` with a `<figcaption>`
in HTML is reduced to a paragraph with some `<strong>` text. (Which, in
fairness, is how it rendered in practice with the DocBook anyway.) The
docs generator has since been updated to handle figures, but we can't
use it until moving off DocBook output.
2023-07-17 16:49:35 +01:00
Emily 9e4a73c25e treewide: convert custom enable docs to Markdown
`nix-doc-munge` can't tell what's going on with this pattern, so I
just handled them all manually.
2023-07-17 16:49:35 +01:00
Emily 3222c99a91 treewide: convert parameterized docs to Markdown
Parameterized documentation generators like this can't be converted
automatically.
2023-07-17 16:49:35 +01:00
Emily 3228f92b90 treewide: manually convert some docs to Markdown
These files all have options that trip up the `nix-doc-munge`
conversion tool for one reason or another (syntax that clashes with
Markdown, options that were already using Markdown syntax despite not
being marked that way, output that differs slightly after conversion,
syntax too elaborate to convert with some cheap regular expressions,
...). Translate them manually and do a little copyediting to options
in the vicinity while we're at it.
2023-07-17 16:49:35 +01:00