Commit graph

155 commits

Author SHA1 Message Date
polykernel 32e433d07d
nix: add structural settings (#2718)
Nix permits user level configurations through ~/.config/nix/nix.conf that allow
customization of system-wide settings and behavior. This is beneficial in chroot
environments and for per-user configurations. System level Nix configurations in the
form of /etc/nix/nix.conf can be specified declaratively via the NixOS nix module but as
of currently no counter part exists in home-manager.

This PR is a port of the RFC42 implementation for the NixOS nix module[1]
to home-manager. Non-applicable options have been excluded and the config generation
backends have been tweaked to the backends offered by home-manager. A notable change
from the NixOS module is a mandatory option to specify the Nix binary corresponding
to the version "nix.conf" should be generated against. This is necessary because
the validation phase is dependent on the `nix show-config` subcommand on the host platform.
While it is possible to avoid validation entirely, the lack of type checking was deemed too significant.
In NixOs, the version information can be retrieved from the `package` option itself which
declares the Nix binary system-wide. However in home-manager, there is no pure way to
detect the system Nix version and what state version the "nix.conf" should be generated
against. Thus an option is used to overcome this limitation by forcing the user to
specify the Nix package. Note this interaction can still be automated by forwarding
the system-wide Nix package to the home-manager module if needed.

Three unit tests were added to test the module behavior for the empty settings, the example
settings and the example registry configurations respectively.

[1] - NixOS/nixpkgs#139075
2022-03-17 22:47:32 -04:00
iosmanthus 8bdfa41b4e
fusuma: add module
Fusuma is a tool supports multitouch gestures with libinput driver on
Linux.
2022-03-13 22:17:55 +01:00
Karl Hallsby da92196a95
mu: allow aliases to be used by mu configuration file
This has no effect if the user does not have any aliases defined for
any accounts.

This will also only add `--my-address=` to only accounts that are
enabled to be tracked by mu.
2022-03-13 20:27:35 +01:00
Loïc Reynier afe96e7433
pubs: add module
Note, the pubs configuration file uses ConfigObj syntax, which is
similar to the INI files syntax but with extra functionalities like
nested sections. This prevents it from using Nix's INI format
generator. Here is an example of pubs configuration that cannot be
generated using Nix's INI format generator:

    [plugins]

    [[git]]
    manual=False

For this reason, we opted for a stringly-typed configuration since the
use of a structured `settings` option would require a custom parser.
2022-03-06 10:40:28 +01:00
Robert Helgesson 541874f55d
mpd: add basic test case 2022-03-04 01:36:48 +01:00
midchildan c7a13f76a7
launchd: initial support for LaunchAgents 2022-02-26 10:32:19 +01:00
lucasew 4f4165a8b9
espanso: add module
This commit adds a module to configure espanso, a program to do text
expansions that is configured using a YAML configuration file.
2022-02-18 00:35:57 +01:00
Morgane Austreelis 63dccc4e60
twmn: add module
This module allows to configure and start the twmn daemon.
2022-02-04 01:05:04 +01:00
pinage404 418ae217dd
home-manager.autoUpgrade: add module
Home Manager upgrade service that periodically updates your Nix
channels before running `home-manager switch`.
2022-01-28 23:42:25 +01:00
Daniel Wagenknecht cbc176010b
kodi: add module
Kodi is a media center software.
2022-01-26 23:56:25 +01:00
Robert Helgesson f206f94ac5
tests: re-enable commented tests
The issue is now fixed in Nixpkgs.
2022-01-25 22:47:27 +01:00
Kirill Elagin c47c350f65
pandoc: add new module
Add a module for pandoc that provides the following:

1. Setting default configuration options.
2. Installing templates.
3. Installing citation styles.
2022-01-22 21:16:50 +01:00
polykernel d469b9bf8a
watson: add module
Watson is a CLI for tracking your time.

Two unit tests were added to validate the module behavior for an empty
configuration and the example configuration.
2022-01-22 16:12:34 +01:00
Philipp Mildenberger 32da35f65b
helix: add module 2022-01-22 15:42:49 +01:00
Kirill Elagin 204f9808d3
sagemath: add module 2022-01-11 14:38:02 +01:00
Robert Helgesson 5a8b29bc7a
tests: disable a few tests due to broken notmuch
This disables a few tests that fail due to a broken notmuch in
Nixpkgs. See

    https://github.com/nix-community/home-manager/pull/2629

and

    https://github.com/NixOS/nixpkgs/pull/154309
2022-01-11 14:30:56 +01:00
Jos van Bakel 65e5b835a9
swayidle: add module (#2610)
Swayidle is an idle management daemon for Wayland. This modules adds support for
running swayidle as a SystemD user unit and makes it configurable through
home-manager.
2022-01-03 12:03:20 -07:00
Robert Helgesson 5f00024e75
tests: make enableBig an option
This makes it possible to identify the test as big in the test file
itself. It also seems like a more natural way to control the test
running.
2022-01-02 10:36:52 +01:00
Olmo Kramer 89bdef7994
herbstluftwm: init module 2021-12-31 10:44:08 +01:00
Peter Jones 0ebed30a10
gromit-mpx: add module 2021-12-11 19:17:59 +01:00
oxalica 78ff6b851c
gpg-agent: fix and enable tests 2021-12-08 00:01:29 +01:00
Pamplemousse f23073f1da
less: allow customization
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2021-11-30 23:28:32 +01:00
Robert Helgesson dc2a4e4146
Switch to 21.11 as stable release 2021-11-25 22:22:26 +01:00
Robert Helgesson 81fc0c6fbf
tests: disable Nixpkgs release check 2021-11-25 08:16:16 +01:00
oxalica df931a59a5
taskwarrior: change config file location and use relative theme paths (#2455)
After taskwarrior 2.6.0, its default config file now locates at
`$XDG_CONFIG_HOME/task/taskrc`, and builtin themes can be included
via relative paths.
2021-11-23 21:33:03 -05:00
Robert Helgesson e28a720ce9
irssi: fix test directory name
Also fix stub package name.
2021-10-30 20:40:49 +02:00
superherointj 406eeec0b9
hexchat: add module
Review and contributions from Thiago Kenji Okada
<thiagokokada@gmail.com>.

Co-authored-by: Thiago Kenji Okada <thiagokokada@gmail.com>
Co-authored-by: Nicolas Berbiche <nic.berbiche@gmail.com>
Co-authored-by: Sumner Evans <me@sumnerevans.com>
2021-10-23 21:31:54 +02:00
Robert Helgesson 0b47ded208
flameshot: add settings option 2021-10-11 21:47:05 +02:00
Thiago Kenji Okada 592da767bd
nnn: init (#2368)
nnn is a terminal file manager.

It is configured mostly using environment variables, so the way I
found it to avoid needing to write either shell specific code or
using `home.sessionVariables` (that would need to make the user
relogin at every configuration change) is to wrap the program using
`wrapProgram`.
2021-10-05 19:14:52 -04:00
Robert Helgesson af2007bb77
atuin: add module
This commit adds a module for configuring atuin, a replacement shell
history program.

The module adds options for generating atuin's `config.toml` from Nix,
and options to enable atuin's integration for bash and zsh
(which will rebind history keys to open the atuin history).
2021-10-05 23:48:52 +02:00
Josh Robson Chase e4df31dcea
screen-locker: Make xautolock optional, reorganize options (#2343)
* screen-locker: Make xautolock optional, reorganize options

xautolock isn't really needed to trigger xss-lock on the basis of time
since the built-in screensaver functionality of X serves as one of the
event sources for xss-lock. Keeping it around and defaulting to
"enabled" to avoid unexpected breakage.

Also shuffled around the options to submodules for xss-lock and
xautolock to get rid of prefixes in option names and to make
enableDetectSleep a bit clearer.

* screen-locker: update maintainership

* tests/screen-locker: Stub i3lock and xss-lock

* screen-locker: add package options for xss-lock and xautolock
2021-10-05 12:58:25 -04:00
Gabriel Fontes 52e84a040e
xsettingsd: make configurable through module 2021-10-01 01:31:47 +02:00
Robert Helgesson cb09a968e9
tests: add option test.stubs
This option provides a more convenient way to overlay dummy packages.
It also adds a function `config.lib.test.mkStubPackage` that can,
e.g., be used for `package` options.
2021-09-26 23:26:38 +02:00
polykernel 4b964d2f7b
bottom: add module
Bottom is a cross-platform graphical process/system monitor with a
customizable interface and a multitude of features.

Two unit tests were added validate the module behavior for an empty
configuration and the example configuration.
2021-09-14 23:40:21 +02:00
Seth Etter 21a2ff4496
broot: expose modal option (#2300)
* broot: expose modal option

* broot: add basic test

* Use `mkEnableOption`
2021-08-31 10:52:20 -06:00
polykernel 521a03d8bf
fnott: add module
Fnott is a keyboard driven and lightweight Wayland notification daemon
for wlroots-based compositors.

There are four unit test to validate behavior for an empty
configuration, the default configuration, global properties and
systemd service file generation.
2021-08-26 08:43:39 +02:00
Ivan Malison ad0fc085c7
git-sync: add module 2021-08-17 00:00:38 +02:00
Robert Helgesson 3d93e1e802
bat: support list settings and shell escaping
Fixes #2262
2021-08-12 21:29:14 +02:00
midchildan b0d769691c
emacs: add extraConfig option 2021-08-06 23:57:14 +02:00
Andreas Mager cc6909d407
trayer: add module (#2177) 2021-07-24 00:29:49 +02:00
IvarWithoutBones 775cb20bd4
sm64ex: add module 2021-07-12 08:57:35 +02:00
dawidsowa 97d183e2e4
devilspie2: add module (#1477)
Co-authored-by: Sumner Evans <me@sumnerevans.com>
Co-authored-by: Nicolas Berbiche <nicolas@normie.dev>
2021-07-05 16:29:34 -04:00
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