Commit graph

1386 commits

Author SHA1 Message Date
Pacman99 82d6ba7003
nixos,darwin: add sharedModules and extraSpecialArgs options (#1793)
This allows users of the nixos and nix-darwin module to set shared modules
for all users and extra specialArgs to be available to home-manager modules.

The latter is named extraSpecialArgs just like the argument to
modules/default.nix.
This could be confusing since the the two are independent in code,
but they do mean the same thing so I think the name fits.

Darwin can now refer to the global system configuration if used as a module
through the special `darwinConfig` argument.

Co-authored-by: Nicolas Berbiche <nicolas@normie.dev>
2021-02-21 01:02:25 -05:00
Nicolas Berbiche eb3a0342a8
gpg: allow for duplicate keys in config (#1814)
Allow for duplicate keys in the form of a list of strings.

Also update the `settings` example configuration to use `literalExample`.
2021-02-21 00:37:46 -05:00
midchildan 2b7a73071a
targets/darwin: copy fonts to ~/Library/Fonts/HomeManager (#1817)
Fonts are copied instead of being symlinked because macOS won't
recognize symlinked fonts.
2021-02-21 00:34:56 -05:00
Nadrieril da92360208
polybar: allow config to be more nix-like (#1430)
Polybar's config format is a bit strange, and lists in particular are
annoying to handle. This enables using normal nix lists and nested
attrsets instead.

This change is not backwards-compatible, because the INI converter
converts lists of strings to space-separated values, and this does
something else. I expect that this is only relevant for the
`modules-left` etc bar setting, but that's enough to break things :(.
2021-02-20 18:34:59 +01:00
Matthieu Coudron 55030c8302
neovim: deprecate programs.neovim.configure (#1810)
The `configure` option is not type checked and an artifact of how
nixpkgs is implemented.
We now have the equivalent options in home-manager and managing
interactions between the 2 systems complexifies maintainance of the
module.
Please use the other options at your disposal:
configure.packages.*.opt  -> programs.neovim.plugins = [ { plugin = ...; optional = true; }]
configure.packages.*.start  -> programs.neovim.plugins = [ { plugin = ...; }]
configure.customRC -> programs.neovim.extraConfig
2021-02-19 09:52:46 +01:00
Thiago Kenji Okada 2e795f3efd
redshift/gammastep: fix deprecated options warning (#1804)
It was not working since I forgot to inherit imports from commonOptions.
2021-02-16 23:19:28 -05:00
Olmo Kramer 1ee1d01daa
bash: don't unconditionally set HISTFILE variable (#1621)
The bash module always assigns a value to HISTFILE in the bashrc, even
when no value is explicitly set. This makes it impossible to tell bash
to use a different HISTFILE by setting the HISTFILE environment variable

    HISTFILE=/tmp/bash_history bash

This changes the default value of programs.bash.historyFile to null, and
only writes the HISTFILE=... line to the bashrc if it is changed to
something else.
2021-02-12 19:06:24 +01:00
Thiago Kenji Okada 87e2ec341b
rofi: support top-level clauses in rasi (#1788)
See https://github.com/nix-community/home-manager/pull/1748#issuecomment-774995577
for details.

Related documentation:
920de75c4b (splitting-configuration-over-multiple-files)
2021-02-09 15:59:29 +01:00
Martin Weinelt e6f2687a83
firefox: drop enableAdobeFlash option (#1791)
It was removed in nixpkgs and causes an error on rebuilds.

error: Your configuration mentions firefox.enableAdobeFlash. All plugin related options have been removed, since Firefox from version 52 onwards no longer supports npapi plugins (see https://support.mozilla.org/en-US/kb/npapi-plugins).
2021-02-08 23:37:24 -05:00
Pablo Ovelleiro Corral b220d5c446
prezto: fix #1773 (#1778)
* zsh: update prezto path structure

The path structure was changed in Nixpkgs and this commit updates
the module to match.

Fixes #1773

* zsh-prezto: fix tests, small tidyup

Co-authored-by: Nick Hu <me@nickhu.co.uk>
2021-02-09 02:11:56 +00:00
Tristan 88e05a5472
obs-studio: Allow package to be configurable (#1787) 2021-02-08 15:50:59 -05:00
Thiago Kenji Okada d8dd2a09b0
redshift/gammastep: use ini file
Not every option is exposed by redshift/gammastep parameters, for
example gamma options are only exposed in configuration file. So this
PR refactors this module to generate a configuration file and pass it
to the redshift/gammastep using -c parameter.

This is a breaking change since there is no support for some of the
older options like `extraOptions`, but unless you use `extraOptions`
it should work without changes.
2021-02-07 23:33:17 +01:00
Robert Helgesson ef4370bedc
tests: allow testing assertions
By default tests are expected to produce no assertion.

This also updates the existing tests to match.
2021-02-07 22:48:22 +01:00
Robert Helgesson bdee1be7b3
Revert "redshift/gammastep: use ini file"
Manual latitude and longitude setting doesn't work in Redshift.

This reverts commit dd6ee694df.
2021-02-07 10:20:03 +01:00
Thiago Kenji Okada dd6ee694df
redshift/gammastep: use ini file
Not every option is exposed by redshift/gammastep parameters, for
example gamma options are only exposed in configuration file. So this
PR refactors this module to generate a configuration file and pass it
to the redshift/gammastep using -c parameter.

This is a breaking change since there is no support for some of the
older options like `extraOptions`, but unless you use `extraOptions`
it should work without changes.
2021-02-07 10:02:57 +01:00
yoctocell 6dfa9ef85c
mbsync: add subFolders option (#1760)
The `SubFolders` option in mbsync controls the folder naming style in
the maildir.  There are three different styles:

* Verbatim - <maildirPath>/top/sub/subsub
* Maildir++ - <inboxPath>/.top.sub.subsub (used by Dovecot)
* Legacy - <maildirPath>/top/.sub/.subsub

Previously, the `SubFolders` option was hardcoded to `Verbatim`.  This
change allows configuration of the `SubFolders` option.
2021-02-06 22:25:49 +01:00
Matthieu Coudron fc87ac92af
neovim: suffix path with extraPackages (#1756)
* neovim: suffix path with extraPackages
* neovim: avoid generating empty blocks in config
* fix(neovim): install plugin regardless if there is config
2021-02-06 20:43:17 +01:00
Jakub Kozłowski d420287583
vscode: add args option to keybindings
Also make `when` optional.
2021-02-05 22:38:37 +01:00
Robert Helgesson 46a750f94f
home-manager: use 21.05 as next version
Fixes #1662
2021-02-05 22:09:00 +01:00
Jakub Kozłowski 63d5d28db6
sbt: add new module 2021-02-04 23:42:37 +01:00
Robert Helgesson 22ecd0e568
vscode: fix typo 2021-02-04 23:26:00 +01:00
Thiago Kenji Okada 3f2f7f8efa
rofi: add support for lists in rasi (#1768)
This is now supported without the need of using to represent them:
9a843caa86/Official%20Themes/solarized.rasi (L134)
2021-02-03 18:48:34 -05:00
midchildan 9dad146639
targets/darwin: add more options for configuring macOS (#1753)
Add new options Darwin options:

- `targets.darwin.defaults`
  This adds options for configuring macOS through the `defaults(1)` system.
  This option can be used to manipulate a vast majority of user settings for macOS
  and its applications.

  This is implemented using freeform modules and includes additional descriptions
  and type information for some useful options.

- `targets.darwin.keybindings`
  This adds options for configuring the default keybindings for macOS text fields.

- `targets.darwin.search`
  This adds options for configuring the default search engine for macOS.
2021-02-03 18:46:16 -05:00
Robert Helgesson bbb6d30001
newsboat: switch from xdg_utils to xdg-utils 2021-02-03 23:40:41 +01:00
Bernardo Meurer 0fa2b16a07
modules: don't reference deprecated stdenv.lib (#1770)
`stdenv.lib` has been deprecated, and the correct approach is to use
`lib` directly through `pkgs.lib`.
2021-02-01 09:52:05 -05:00
Sara Johnsson df7d81b0b3
playerctld: add module 2021-01-31 12:36:30 +01:00
Thiago Kenji Okada 98d030f723
rofi: add support to custom themes
If this commit now it is possible to define a custom theme directly
using Nix, like this:

```nix
{
   programs.rofi.theme = {
      "*" = {
         background-color = "#000000";
         border-color = "FFFFFF";
         width = 512;
      };
      listview = {
         cycle = true;
      };
   };
}
```

And this will be converted to the proper rasi format to be used in
rofi.
2021-01-30 09:13:28 +01:00
Jack McCown 7313258b45
spotifyd: change config format to toml
Fixes #1754
2021-01-29 21:25:00 +01:00
Robert Helgesson db88b625f9
docs: minor fix 2021-01-27 22:48:41 +01:00
Thiago Kenji Okada 7de0d07dd9 redshift/gammastep: add tests 2021-01-26 01:40:25 -03:00
Thiago Kenji Okada 6b15b03898 redshift/gammastep: unify common options
Nowadays services.{redshift,gammastep} modules are really similar. They
should, since Gammastep is a fork of Redshift with the main objective is
to support Wayland.

So instead of trying to maintain two separate modules, this commit unify
the options in lib/options.nix file, making the implementation of the
module itself ends up being really simple (just calling the common
options with the necessary parameters to differentiate between them).
2021-01-26 01:39:50 -03:00
Robert Helgesson c137866bd7
redshift: add systemd unit documentation field 2021-01-23 18:26:25 +01:00
William Carroll 3d634914ce
redshift: use on-failure restart policy 2021-01-23 18:22:28 +01:00
midchildan e44faef21c
i18n: various fixes 2021-01-23 16:40:25 +01:00
Thiago Kenji Okada 6f7074d21d
rofi: migrate to rasi configuration format (#1736)
* rofi: migrate to rasi configuration format

The Xresources configuration format is deprecated in Rofi. For example,
using Rofi from unstable (1.6.1 as of now) you get the following
warnings when starting the application:

```
(process:9272): Rofi-WARNING **: 01:38:48.596: The old Xresources based configuration format is deprecated.

(process:9272): Rofi-WARNING **: 01:38:48.596: Please upgrade: rofi -upgrade-config.
``````

So this commit migrates it for its new configuration format, called rasi
instead.

This new implementation uses attrsets manipulation instead of using
strings, making the code clearer and also fixing some bugs found during
the way. To make sure everything is right, I also created some tests.

If someone wants to validate if the generated config is correct, just
run in terminal:

```
$ rofi -dump-config
```

And rofi will dump the current configuration file, including all
unsetted options.

* docs: document programs.rofi.extraConfig changes

* rofi: add thiagokokada as maintainer

* rofi: add toRasi function
2021-01-23 16:30:34 +01:00
midchildan 9a12cd7e81
i18n: set the appropriate LOCALE_ARCHIVE_x_xx variable (#1659) 2021-01-23 15:56:38 +01:00
li 08fc1586c0
fzf: add package option 2021-01-22 23:29:41 +01:00
Tino Breddin 4e86d65aee
nextcloud-client: add package option 2021-01-22 21:34:13 +01:00
Thiago Kenji Okada 2c0e3f61da
mpv: fix issue #1725 and add tests (#1726)
Closes issue #1725.

This allows mpv module to be customized with support for more advanced
features than the `programs.mpv.scripts` current support. For example,
with this change now this is possible:

```nix
{
  programs.mpv.package = (pkgs.wrapMpv (pkgs.mpv-unwrapped.override {
    vapoursynthSupport = true;
  }) {
    extraMakeWrapperArgs = [
      "--prefix" "LD_LIBRARY_PATH" ":" "${pkgs.vapoursynth-mvtools}/lib/vapoursynth"
    ];
  });
}

```

Since `programs.mpv.package` doesn't necessary reflect the final
derivation anymore (see #1524), we introduce `programs.mpv.finalPackage`
that has the resulting derivation.

This includes 2 tests:
- One to check if everything is alright with mpv
- Other to validate our assertion that package and scripts can't be
  passed both at the same time

* docs: document recent mpv module changes

* mpv: add thiagokokada as maintainer
2021-01-21 18:10:12 -05:00
Robert Helgesson 5280360d6c
docs: NixOS and nix-darwin option documentation 2021-01-21 23:45:52 +01:00
jD91mZM2 c33b1777b6
chromium: fix preinstallation of crx files
We currently check `isPath` and `isString` on crxPath and version
respectively, which is

1. pointless because the module system already does such checks, and
2. wrong because isPath means path literal; a derivation therefore is
   not a path.
2021-01-21 23:24:29 +01:00
Robert Helgesson b0c8727286
dconf: make sure the configuration directory exists
Fixes #1731
2021-01-21 20:35:03 +01:00
jD91mZM2 6f5fa6350d
chromium: support ungoogled-chromium
The guessed browser name is wrong here, ungoogled-chromium simply uses
"chromium" as configuration name.
2021-01-21 20:23:16 +01:00
Robert Helgesson 9d680ec662
kakoune: disable the kakoune-use-plugins test 2021-01-20 19:49:15 +01:00
Robert Helgesson 7e80e034cc
gh: fix attribute paths
This fixes some attribute paths to match recent changes in Nixpkgs.
2021-01-20 18:59:58 +01:00
Robert Helgesson 8f24ed4c7f
git: fix attribute paths
This fixes some attribute paths to match recent changes in Nixpkgs.
2021-01-20 18:58:35 +01:00
MaxSchlueter 3fe2a57b95
mu: fix command (#1623)
mu-cfind is meant to search for contacts within your contacts database and the emails that you have sent/received. The use of the --personal flag in that command is meant to filter for only emails that use your email addresses (which are all the ones you specify with the ${myAddresses} variable. Disregard what I said in #1623 (comment).

--my-address=<my-email-address>

    specifies that some e-mail addresses are 'my-address' (--my-address can be used multiple times).
    This is used by mu cfind -- any e-mail address found in the address fields of a message which also
    has <my-email-address> in one of its address fields is considered a personal e-mail address. This
    allows you, for example, to filter out (mu cfind --personal) addresses which were merely seen in
    mailing list messages.

To initialize the database with mu init, the ${myAddresses} is not required to be passed to successfully initialize the database, but it is heavily recommended to do so.

To see the difference, in a safe location, run mu init --maildir=<path>, then mu index. You'll notice that "personal addresses" returns <none>, although the database will still work. However, mu cfind --personal will fail (as the personal contacts don't exist). Then run mu init --maildir=<path> --my-address=<address>, then mu index. Then you'll be able to search for contacts using mu cfind --personal.
2021-01-19 19:36:31 +01:00
Nicolas Berbiche 8127799f79
sxhkd: configurable package and command line arguments
Fixes #1598.
2021-01-16 10:57:32 +01:00
Alexander Foremny 4b772fd698 neomutt: fix smtp_pass option
Configuration option `smtp_pass` is expected to evaluate a shell
command, thus its value has to be in double-quotes.
2021-01-12 13:32:03 +01:00
Simon Bruder 65d0e2d241
mpv: add defaultProfiles option 2021-01-11 23:51:58 +01:00