Commit graph

263 commits

Author SHA1 Message Date
t4ccer 3f6cb409ca
xmobar: add module (#2120)
* xmobar: Add module

* xmobar: Add test case

xmobar: Add test default.nix

* xmobar: Order lists alphabetically

* xmobar: Change colon to comma in description

* xmobar: Fix macos tests

* xmobar: Remove extra line

* xmobar: Add literalExample

Co-authored-by: Sumner Evans <me@sumnerevans.com>

* xmobar: Update extraConfig description

Co-authored-by: Sumner Evans <me@sumnerevans.com>
2021-06-29 13:02:43 -06:00
Robert Helgesson f4998f0adc
tests: bump nmt 2021-06-27 14:20:13 +02:00
Bruno BELANYI 8d3b273afe
himalaya: add module
A very simple TUI mail client.
2021-06-26 18:29:42 -04:00
Ilan Joselevich 7e2b1a42aa
i18n.inputMethod: add module 2021-06-25 00:58:50 +02:00
Robert Helgesson ab0e6c3e0e
tests: bump nmt 2021-06-24 22:47:21 +02:00
Robert Helgesson a73e619377
tests: update nmt
Allows running, e.g.,

    nix-build --pure tests -A build.all
2021-06-20 09:52:58 +02:00
Naïm Favier e70524cd2b
bspwm: various improvements (#2095)
* bspwm: various improvements

- fixes shell escaping issues and general style issues
- allow reloading the config on-the-fly by exposing bspwmrc to the user

* bspwm: add configuration test
2021-06-19 18:40:17 -04:00
Philipp Dargel d04e52b0c0
terminator: add module (#2063)
added configuration for terminator
2021-06-17 09:06:47 -06:00
Kevin Amado e92f5bb79e
programs.gnome-terminal: terminal options (#2042)
- Add support for showing bold as bright colors
- Add support to configure the background transparency
- Fix the scrollOnOutput, it was not being dumped to the config
- Add tests!
- Add myself as maintainer
2021-06-15 23:39:56 +02:00
ZerataX fb50102daf
mangohud: add module 2021-06-12 09:55:58 +02:00
Johannes Schleifenbaum 06a98ba0fd
pantalaimon: add module (#2056) 2021-06-07 17:38:42 -04:00
Rodney Lorrimar afb5fd962c
irssi: add ssl_cert option for servers (#2043)
* irssi: add ssl_cert option for servers

I was following these instructions
https://www.oftc.net/NickServ/CertFP/
and found that the `/server add -ssl_cert` option was needed.

This patch therefore adds an optional
`programs.irssi.networks.<name>.server.ssl.certificateFile` path.

Perhaps this could also be done with a `settings` attribute, but that
would probably require most of this module to be reworked.

* irsii: Add example-settings test case
2021-06-06 15:31:25 -06:00
Bruno BELANYI 7591c8041d
rbw: add module (#1998)
`rbw` is a stand-alone Bitwarden client, which makes use of a daemon to
cache your password and manage state.

Its configuration can be managed by `home-manager` or not, leaving the
user free to configure it through `rbw config`.
2021-06-05 18:09:02 -06:00
Bart Bakker 91450f23ce
htop: replace individual option with 'settings' (#1844)
* htop: add some missing meters
* htop: replace individual options with 'settings'
Deprecate all options and introduce `settings` for setting htop configuration
values in Nix configuration.

Use `lib.htop` to provide `fields` and `modes` for easy access to htop's integer
configuration. And `leftMeters` and `rightMeters` functions for building the
separate `*_meters` and `*_meter_modes` attributes.

* htop: add release-notes 21.05 entry
* htop: improve deprecation warnings

Move default configuration into `settings` and make deprecated options default
to `null`. Print deprecation warnings for any option that is non-null --
i.e. only show warnings for explicitly specified deprecated options.

* htop: make self code owner of module
* release notes: fix invalid programs.htop xref
2021-05-19 01:36:08 +02:00
Pierre Labadens ff616b2734
foot: add module
Foot is a fast terminal emulator for Wayland. It can optionally be run
in a client-server configuration.

There are three unit tests to handle an empty configuration, the
default configuration, and systemd service file generation.
2021-05-18 22:29:41 +02:00
Nick Hu 3612ca58e8
syncthing: make syncthing tray package configurable (#1257)
Also sets the default syncthing tray package to
https://github.com/Martchus/syncthingtray instead of
https://github.com/sieren/QSyncthingTray, which indirectly fixes #603
2021-05-18 15:43:17 +01:00
Bruno BELANYI 3b799f6ea4
nix-index: add module (#1984)
`nix-index` is a tool to quickly locate the package providing a certain
file in `nixpkgs`. It indexes built derivations found in binary caches.

This module adds the shell integration for its `command-not-found`
script for interactive shells.
2021-05-09 18:13:10 -04:00
Kritnich 2eed138026
barrier: add module
Co-authored-by: Sumner Evans <me@sumnerevans.com>
2021-05-01 00:11:17 +02:00
Sumner Evans 5e6f09795c
gtk2: allow configuration of gtkrc file
Closes #519
2021-04-30 22:56:56 +02:00
Harsh Shandilya 137a584e22
topgrade: add module (#1924) 2021-04-28 19:56:58 -04:00
Phillip Cloud 26fa84ebce
scmpuff: init (#1921)
scmpuff is a command line tool that allows you to work quicker with Git by substituting numeric shortcuts for files
2021-04-22 22:27:29 -04:00
Tamás Hetesi 1e7e8ac75d
pet: Add support for tags in snippets (#1883)
Add missing `tag` option for elements of `programs.pet.snippets`.
2021-04-20 16:16:27 -04:00
Sebastian Zivota 33edf558a0
lib/types/fontType: Add size attribute (#1848)
* lib/types: Add size attribute to fontType
* tests: Add test for kitty
* modules/types/fontType: Make size nullable
* Add release notes

Co-authored-by: Sebastian Zivota <sebastian.zivota@mailbox.org>
2021-04-07 16:18:09 +02:00
Thiago Kenji Okada 0e2dc4be30
qt: add qt.style option (#1839)
This allows you to set a theme for Qt applications. For example, if you
want to use `adwaita-qt` theme to have uniform look between Gtk and Qt
applications, you can use it like this:

```nix
{
  qt = {
    enable = true;
    platformTheme = "gnome";
    style = {
      name = "adwaita";
      package = pkgs.adwaita-qt;
    };
  };
}
```
2021-03-03 22:20:17 -05:00
Jakub Kozłowski 63d5d28db6
sbt: add new module 2021-02-04 23:42:37 +01:00
Sara Johnsson df7d81b0b3
playerctld: add module 2021-01-31 12:36:30 +01:00
Thiago Kenji Okada 7de0d07dd9 redshift/gammastep: add tests 2021-01-26 01:40:25 -03:00
midchildan 9a12cd7e81
i18n: set the appropriate LOCALE_ARCHIVE_x_xx variable (#1659) 2021-01-23 15:56:38 +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 9d53afb709
tests: add support for asserting warnings
This adds a "test.asserts" module that currently just provides a
convenient way to assert on the content of warnings. By default all
tests will assert that no warnings are given.
2020-12-30 17:25:48 +01:00
Robert Helgesson 4dedfcfd95
tests: bump nmt 2020-12-30 17:25:44 +01:00
seylerius 1a7f190cb9
rofi-pass: add rofi-pass plugin for password-store 2020-12-18 23:22:57 +01:00
Ivar e6a58a7e71
pbgopy: add service 2020-12-09 23:45:51 +01:00
Matthias Riße 33407189c1
wlsunset: add module
This adds the wlsunset module, a program for day/night gamma
adjustments on wayland.

Fixes #1625
2020-12-01 21:46:46 +01:00
Robert Helgesson c1faa848c5
tests: update nmt version
Greatly reduces the memory use when running full test suite.

Fixes #1610.
2020-11-30 00:12:38 +01:00
Robert Helgesson 9fe15dc83b
tests: remove format meta test
This test requires copying the Home Manager checkout to the Nix store,
which seems to require too much memory for the CI jobs. Instead simply
run the format script directly.
2020-11-15 23:12:26 +01:00
workflow 9e9d8ffc7c
i3status-rust: add module
This adds the i3status-rust[0] module, a replacement for i3status
written in pure Rust.

[0] https://github.com/greshake/i3status-rust
2020-11-05 23:59:47 +01:00
Tobias Happ 22a3a5651d
gh: add module 2020-10-22 23:36:15 +02:00
Robert Helgesson 77913ff17e
tests: run neovim tests on Linux only
Currently the package is unbuildable on Darwin. Also sort the test
includes.
2020-10-22 21:26:15 +02:00
Evan Stoll 8537920706
autojump: add module
This also deprecates the `programs.bash.enableAutojump` option in
favor of this module.
2020-10-08 23:50:43 +02:00
Olmo Kramer 41147ae09a
feh: allow binding actions to multiple buttons/keys
In feh you can bind multiple keys to the same action, but Home Manager
only let you set a single key to an action. You can cheat and pass a
string with space-separated keys, but with this change you can pass a
list for each action to bind multiple keys to it.

Also adds a couple of tests.

Fixes #1366
2020-09-30 00:55:09 +02:00
Joe Hermaszewski abfb4cde51
vim: Allow setting init.vim config alongside plugins + neovim test (#876)
* neovim: allow setting init.vim config alongside plugins
* neovim: add test for neovim plugins
* neovim: make pluginWithConfigType a have type submodule
2020-09-25 02:08:39 +02:00
Evan Stoll 9b1b55ba02
numlock: add test
- Add evanjs to CODEOWNERS for numlock and numlock test
- Add evanjs to maintainers for numlock module
2020-09-18 19:35:19 +02:00
Damien Cassou 472ca211ca
man: support building manual page index cache
The apropos software is useful to get a list of manpages matching a
description or to get a list of all manpages. The latter feature is
used by Emacs to get manpage completion (`M-x man`).

To have apropos working, a database of all available manpages must be
built with mandb. This is what this commits does.

A similar change was done for NixOS:
edc6a76cc0
2020-09-13 20:52:08 +02:00
Nicolas Berbiche d3aee544b6
targets.darwin: add module
Currently, this module makes sure that `/Applications` directories for
packages in `home.packages` get linked into the user's environment.
2020-09-04 15:21:48 +02:00
Christoph Herzog 1ed8e7ef98
vscode: add options for keybindings
Adds a new `keybindings` option to the `vscode` configuration.

It contains a list of key bindings, which will be written to
`%vscode-dir%/User/keybindings.json`.

PR #1351
2020-09-04 14:14:52 +02:00
Olmo Kramer 4b702bf6b7
ncmpcpp: add module
PR #1457
2020-09-01 22:05:57 +02:00
Vincent Gatine a3dd580adc
kanshi: add service
PR #1142
2020-08-15 01:02:23 +02:00
Nicolas Berbiche f4f9f1a618
waybar: add module
PR #1329
2020-08-14 00:20:49 +02:00
eyjhb 7b73f84071
dropbox: add module
Ability to control Dropbox daemon, if it should start and where to
place the files.

PR #1391
2020-07-25 23:12:33 +02:00
Philipp Mildenberger 3f1be69359
nushell: add module (#1333) 2020-07-24 17:15:55 +02:00
Cole Mickens 5c639ff68a
sway: focus.followMouse supports yes/no/always
Also add associated tests for both Sway and i3.

PR #1231
2020-07-17 15:35:00 +02:00
cwyc 8f2342e13a
ne: add module
Added a simple module to place configuration files for ne: the nice
editor.

PR #1336
2020-06-23 22:37:02 +02:00
Vincent Breitmoser b0e8a1569e
fluidsynth: add module
Fluidsynth is a real-time MIDI synthesizer based on the SoundFont 2
format.

PR #1326
2020-06-14 15:30:51 +02:00
s1341 1b210e7143
zplug: add module
This adds initial support for the zsh package manager "zplug".

PR #1105
2020-06-14 15:12:49 +02:00
Damien Cassou 478022afad
powerline-go: add module
PR #1285
2020-06-13 00:02:13 +02:00
Robert Helgesson edc3bede6e
tests: avoid dependency on documentation 2020-06-12 21:59:51 +02:00
Tad Fisher 3815248786
emacs: Support socket activation via systemd
Add 'services.emacs.socketActivation.enable' for generating an
'emacs.socket' systemd unit.

Emacs since version 26 has supported socket activation, whereby an
external process manager such as systemd listens on a socket and passes
it to the Emacs daemon when the manager launches it. This improves
startup time of the user session and avoids launching the daemon when not
needed, for example when launching the user session via SSH.

This implementation hard-codes the socket path to the default for the
version of 'programs.emacs.finalPackage', because systemd does not
perform shell expansion in the socket unit's 'ListenStream' parameter
and it seems like an advanced use-case to change the socket path. Shell
expansion would be desirable as the socket path usually resides in
directories such as $XDG_RUNTIME_DIR or $TMPDIR.

Tests were added to verify behavior in the following cases:

- Emacs service with socket activation disabled
- Emacs 26 with socket activation enabled
- Emacs 27 with socket activation enabled

PR #1314
2020-06-11 20:39:49 +02:00
Damien Cassou 575cd4b8ba
direnv: add initial test for bash integration 2020-06-06 21:40:41 +02:00
Robert Helgesson 8bbefa77f7
tests: perform code formatting test in test suite
This should improve visibility when CI job fails due to bad
formatting.
2020-05-28 01:37:27 +02:00
Nikita Uvarov 09304026ae
autorandr: add basic configuration test 2020-05-26 19:04:25 +02:00
Justin Lovinger e9945ee6ee
dircolors: add module
PR #1219
2020-05-12 22:15:32 +02:00
Justin Lovinger 1dd226fde7
aria2: add module
PR #1202
2020-05-03 13:21:52 +02:00
Justin Lovinger ecc1f2310c
i3status: add module
PR #1210
2020-05-03 13:12:13 +02:00
Matthieu Coudron 10673bff4c
alot: add structured settings
- Also support tags.

- Optionally write the hooks file.

PR #812
2020-05-01 22:26:26 +02:00
Robert Helgesson 95b95b1407
tests: improve test purity
Before the XDG variables would be set from the user's environment, if
available. This would break some tests.

With this change the tests should be fully deterministic.

Fixes #1190
2020-04-24 21:46:34 +02:00
Robert Helgesson cfaf213980
tests: bump nmt revision 2020-04-24 21:45:20 +02:00
Owen McGrath 2f2a4396c6
lf: add module
Adds 'programs.lf', configuration managment for lf, a terminal file
manager.

PR #1174
2020-04-23 22:41:22 +02:00
Robin Stumm 86ccd8fecb
kakoune: implement whitespace highlighter config
The options under `programs.kakoune.config.showWhitespace` existed
but were not implemented.

PR #1162
2020-04-16 22:34:31 +02:00
Robert Helgesson ebdfa06685
tests: update nmt 2020-04-10 01:01:20 +02:00
Justin Lovinger b7737f1732
qutebrowser: add module
PR #1132
2020-04-08 14:50:59 +02:00
Tobias Happ d06bcf4c97
targets.genericLinux: add module
PR #797
2020-04-08 13:36:25 +02:00
Tad Fisher 9f46d516fa
services.lieer: add module
Add 'services.lieer', which generates systemd timer and service units
to synchronize a Gmail account with lieer. Per-account configuration
lives in 'accounts.email.accounts.<name>.lieer.sync'.
2020-03-07 15:13:50 +01:00
Tad Fisher 60a939bd01
programs.lieer: add module
Add 'programs.lieer', a tool for synchronizing a Gmail account with a
local maildir and notmuch database. Per-account configuration lives in
'accounts.email.accounts.<name>.lieer'.
2020-03-07 15:13:15 +01:00
Maximilian Bosch 0056a5aea1
debug: add module
This one is fairly similar to `environment.enableDebugInfo`[1] (hence
the name). It ensures that the `debug`-output of packages defined in
`home.packages` is installed if available and ensures that
`gdb`/`elfutils` find those symbols by adding
`~/.nix-profile/lib/debug` to the `NIX_DEBUG_INFO_DIRS`[2] variable.

[1] https://github.com/NixOS/nixpkgs/blob/release-19.09/nixos/modules/config/debug-info.nix
[2] https://github.com/NixOS/nixpkgs/blob/release-19.09/pkgs/development/tools/misc/gdb/debug-info-from-env.patch

PR #1040
2020-03-07 15:03:44 +01:00
Robert Helgesson f3fbb50b68
polybar: add test case 2020-03-04 21:26:35 +01:00
MmeQuignon 0a1ce53990
abook: add module
PR #1058
2020-03-04 19:58:05 +01:00
Robert Helgesson 6fc6c736f9
tests: bump nmt version 2020-03-02 23:47:39 +01:00
Robert Helgesson acf106ced0
starship: give settings option more specific type
This more readily allows merging configurations.

Fixes #1023
2020-02-29 22:17:47 +01:00
Ryan Orendorff 111011b2c2
fish: add some tests
- If a function is defined, check that the function file exists and
  that the contents matches a given string.

- If no functions exists, the functions folder should not exist.

- Verify plugin functionality.
2020-02-20 00:03:26 +01:00
Robert Helgesson de8033747c
tests: clean up tests
- Move all module tests to their own directories.

- Avoid duplication of `// import`.
2020-01-26 21:11:23 +01:00
Matthieu Coudron fba87f8998
neomutt: add module
PR #1002
2020-01-26 20:46:44 +01:00
Robert Helgesson 6e4b9af080
Switch to extended Nixpkg's lib
This change makes use of the `extend` function inside `lib` to inject
a new `hm` field containing the Home Manager library functions. This
simplifies use of the Home Manager library in the modules and reduces
the risk of accidental infinite recursion.

PR #994
2020-01-21 20:47:04 +01:00
Robert Helgesson 6c127efb2d
lib: add type generators dagOf and listOrDagOf
Given an inner type, the former function generates a type that expect
DAG option values. The latter function is only present to temporarily
allow the `programs.ssh.matchBlocks` to keep accepting list values.
2020-01-16 00:16:09 +01:00
Robert Helgesson bcfc52cb85
tests: move git and files tests to directories 2019-12-08 21:40:22 +01:00
Robert Helgesson 284b8d94d4
readline: add variables option
Also add a basic test case.
2019-12-08 21:13:58 +01:00
Robert Helgesson 90bf989002
newsboat: support feed titles
Fixes #861
2019-10-11 21:41:05 +02:00
Nazarii Bardiuk 51581b7e43
sxhkd: add service 2019-09-17 21:42:05 +02:00
pacien e347e932af
xdg-mime-apps: add module 2019-09-15 17:21:42 +02:00
Robert Helgesson 1923ac3358
rofi: add test to verify assertion 2019-09-04 12:52:14 +02:00
Robert Helgesson 73641e492c
firefox: use wrapped package
This makes the

    programs.firefox.package

option take a pre-wrapped Firefox package as value if state version is
set to "19.09" or later. This should make the Firefox module work with
a wider range of Firefox packages.
2019-08-18 18:04:04 +02:00
Robert Helgesson 8467e7e10a
getmail: restrict tests to Linux 2019-06-28 05:56:42 +02:00
Róman Joost 68fe8623ad Address code review comments for getmail service
This patch started by addresssing the code review comments to close
https://github.com/rycee/home-manager/pull/290. However initiating a new
pull request it became clear, that home-manager changed significantly
since then.

This changes the initial pull request to be consistent with the email
account management in home-manager now. It also adds a simple test and support
for multiple accounts.
2019-06-27 07:48:09 +02:00
Robert Helgesson 95d55b8da1
xsession: add option importedVariables
This option lists the environment variables to be imported into the
systemd user session.

Also add a basic test of the xsession module.
2019-06-23 14:06:29 +02:00
Jaka Hudoklin 0db26fc3ab
gpg: add module 2019-06-03 23:50:50 +02:00
Tad Fisher e25113bcf0
browserpass: fix host/policy link sources 2019-06-01 12:24:30 +02:00
Tadeo Kondrak d2ed39f103
alacritty: don't create file if settings is empty
Also add a few test cases for the alacritty module.
2019-05-14 23:53:10 +02:00
Robert Helgesson b256e3a44f
fontconfig: fix build error
This fixes a build error occurring when building a configuration
having fontconfig enabled and `home.packages` only containing one
package installing things to `/lib`.

Also adds a number of test cases to verify the fontconfig cache
generation functionality.

Fixes #703
2019-05-06 00:44:23 +02:00
Robert Helgesson 939274281a
tests: bump nmt version 2019-05-06 00:17:30 +02:00
Robert Helgesson b6e613c771
Fix type of various sessionVariables options
Unfortunately, using `attrsOf` is not possible since it results in too
eager evaluation. In particular, the

    home.sessionVariables = {
      FOO = "Hello";
      BAR = "${config.home.sessionVariables.FOO} World!";
    };

example will cause an infinite recursion.

This commit restores the option type of

- `home.sessionVariables`,
- `pam.sessionVariables`,
- `programs.bash.sessionVariables`, and
- `programs.zsh.sessionVariables`

to `attrs`. It also adds test cases for the above options to avoid
regressions.

Fixes #659
2019-04-27 01:07:09 +02:00
Robert Helgesson 6ebf14143a
systemd: add some basic tests 2019-03-24 15:52:30 +01:00
Robert Helgesson 989e636d98
ssh: add some basic tests 2019-03-19 23:00:17 +01:00
Wael M. Nasreddine 2093cf425f
tmux: general improvements and added options
See #575 for discussion.
2019-02-13 22:14:30 +01:00
Robert Helgesson a334a941c4
tests: bump to latest nmt version 2019-02-10 12:09:47 +01:00
Robert Helgesson 0590c2a4f6
mbsync: add basic test of result configuration 2019-01-31 02:08:40 +01:00
Robert Helgesson 45cadbd4f3
git: quote sendemail section header
This will allow, e.g., the character `@` in the email identity.

Also adds a test case.

Fixes #557
2019-01-29 18:28:55 +01:00
Robert Helgesson 7c04351a57
files: allow a wider range of source file names
In particular support source files whose name start with `.` or
contain characters not allowed in the nix store, such as spaces.

Also add some test cases for `home.file`.
2019-01-19 12:44:58 +01:00
Robert Helgesson 46f787950a
tests: bump nmt version 2019-01-19 12:41:45 +01:00
Robert Helgesson f6ec26075d
tests: simplify test names 2019-01-14 23:02:33 +01:00
Robert Helgesson c42206db02
i3: add test of keybinding merge logic 2019-01-14 22:50:11 +01:00
Robert Helgesson bb64012914
tests: bump nmt to latest 2019-01-14 22:48:59 +01:00
Robert Helgesson e150dd4a66
texlive: always require at least one extra package
Fixes #526
2019-01-09 02:09:23 +01:00
Robert Helgesson 6d56abcec1
tests: add initial test framework 2018-12-11 00:57:58 +01:00