Commit Graph

59 Commits

Author SHA1 Message Date
Austin Horstman
fa6de26b4d treewide: nixf-diagnose cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 16:30:04 -05:00
DaRacci
3a92ffa192 home-manager: expose all attributes returned by evalModules
This change brings the homeConfigurations output inline with how the
nixosConfiguration output presents its attributes.

The primary purpose is for exposing the graph attribute however there is
no downside to exposing the rest along with it to prevent needing to add
each desired attribute individually in the future if more are added.
2025-12-15 22:36:33 -06:00
zowoq
ceb884e4f3 treewide: fold -> foldr
deprecated in f4d36941eb
2025-11-26 09:23:05 -06:00
Thomas Maurice
3d6c1c8fa0 modules: add minimal variable to modules/default.nix
Fix regression caused by missing `minimal` variable in
modules/default.nix
2025-11-23 08:04:53 -06:00
Austin Horstman
b4752b0eda treewide: format with latest stable formatter
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-23 10:27:52 -05:00
Austin Horstman
cba2f9ce95 treewide: reformat nixfmt-rfc-style
Reformat repository using new nixfmt-rfc-style.
2025-04-08 08:50:05 -07:00
Austin Horstman
95711f9266 treewide: remove with lib (#6512)
* nixos: remove with lib
* nix-darwin: remove with lib
* home-manager: remove with lib
* modules/accounts: remove with lib
* modules/config: remove with lib
* modules/i18n: remove with lib
* modules/misc: remove with lib
* modules: remove with lib
* modules/targets: remove with lib
* tests/modules/firefox: remove with lib
* tests/modules/services: remove with lib
2025-03-07 14:16:46 -06:00
Robert Hensing
26e72d85e6 home-manager: set module class to "homeManager"
This enables a module system feature documented here:
https://nixos.org/manual/nixpkgs/stable/index.html#module-system-lib-evalModules-param-class

For example, it allows a mistake to be caught, which is loading a
NixOS module into home-manager. This only works when the offending
module declares what it's for with a `_class` attribute.

It is not expected that users declare the `_type`, because the payoff
is small. It is only expected to be set by generic code, such as
functions or libraries that help with the "publishing" of modules
(e.g. flake-parts, flake-utils).

The class feature has been available in the module system since
https://github.com/NixOS/nixpkgs/pull/197547, merged May 6, 2023. It
has been part of all releases since 23.05-beta. The last NixOS release
that did _not_ support it has been end-of-life for close to a year
now.

Example:

    (lib.homeManagerConfiguration {
      pkgs = nixpkgs.legacyPackages.x86_64-linux;
      modules = [{ _class = "nixos"; imports = [ ./foo.nix ]; }];
    }).activation-script

Corresponding error:

    error: The module <unknown-file> was imported into homeManager instead of nixos.

(`<unknown-file>` can be improved by also setting `_file`, if known; a
much older feature)

PR #5339
2024-04-27 09:28:21 +02:00
GrizzlT
c7ce343d9b home-manager: add extendModules attribute
The `home-manager.lib.homeManagerConfiguration` function now has an
additional attribute that can be used to extend a Home Manager
configuration with additional modules outside the project tree.

It works similar to the result of `lib.nixosSystem` from Nixpkgs
2024-01-25 23:24:36 +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
Luc Chabassier
5ac84ebeef Add lib argument to homeManagerConfiguration (#2753) 2022-04-17 18:14:41 -04:00
Michael Hoang
8ab155c61f modules: Export pkgs to match NixOS (#2696)
This makes it a lot easier to access the `pkgs` that would be used to
build the home configuration, e.g.

    nix build ./dotfiles#homeConfigurations."user@host".pkgs.vim

This is useful as it allows access to a Nixpkgs that has been
instiantiated with config and overlays.
2022-04-16 18:36:37 -04: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
mlatus
cf5dad76c1 flake: add extraSpecialArgs
This allows flake user to pass extra arguments to all modules.
2021-01-07 21:13:28 +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
f8b03f5750 modules: register the base modules path
This is needed, for example, to support relative paths when disabling
modules.
2019-04-07 13:26:38 +02:00
Robert Helgesson
e99de88c5c modules core: move modules list to own file
This is to simplify use of Home Manager as a NixOS module.
2017-11-24 21:58:16 +01:00
Matthieu Coudron
61a869a1f5 neovim: add module
This is a basic module that allows to configure different Neovim
providers than the system ones. Note, it does not generate any
`init.vim`.
2017-11-12 23:57:14 +01:00
Nikita Uvarov
467b774d13 i3: add module 2017-10-31 16:10:42 +01:00
Robert Helgesson
78a1424582 xsession: remove xsession.windowManager option
This removes the deprecated use of `xsession.windowManager` as a
string.

This commit also adjusts the xmonad module to become a full module.
I.e., the backwards compatibility hack was removed.
2017-10-31 14:05:54 +01:00
Robert Helgesson
54a9058ee0 xdg: add module
When enabled this module will cause Home Manager to manage the user
environment XDG variables. When disabled, then Home Manager will use
the XDG variables taken from the user environment.
2017-10-29 01:59:34 +02:00
Robert Helgesson
7417d8e86e nixpkgs: add module 2017-10-24 01:29:35 +02:00
Silvan Mosberger
f0a1d69f50 Separate home files module from home-environment.nix 2017-10-15 17:14:32 +02:00
Robert Helgesson
3632478b8d man: add module 2017-10-15 16:01:41 +02:00
Robert Helgesson
3f430627df fontconfig: add module 2017-10-10 20:29:22 +02:00
Nikita Uvarov
469caa1a14 polybar: add module 2017-10-07 12:40:08 +02:00
Nikita Uvarov
e9deaf2ca5 rofi: add module 2017-09-28 15:39:25 +02:00
Nikita Uvarov
393274d142 command-not-found: add module 2017-09-27 09:49:32 +02:00
Nikita Uvarov
3e4f7228a0 screen-locker: add module 2017-09-20 17:16:21 +02:00
Nikita Uvarov
aa69598b57 compton: add module 2017-09-13 14:40:30 +02:00
Nikita Uvarov
6a8e8e92a7 blueman-applet: add module 2017-09-12 16:44:16 +02:00
Robin Stumm
29d5f5d760 zsh: fix double compinit slowdown with oh-my-zsh
Integrate oh-my-zsh into zsh module
to be able to control invocation order.
2017-09-12 14:52:04 +02:00
Robert Helgesson
cda222d2ec home-manager: present news even if assertion failed 2017-09-09 17:14:07 +02:00
Robert Helgesson
9c1b3735b4 home-manager: add news sub-command
This command allows the user to examine the news items generated by
the news module. See #52.

Many thanks to @nonsequitur and @uvNikita for suggestions and
improvements.
2017-09-05 11:37:07 +02:00
Robert Helgesson
ab0338f6ae news: add module
This new module adds a "news" feature to Home Manager. See #52.

Many thanks to @nonsequitur and @uvNikita for suggestions and
improvements.
2017-09-05 11:36:33 +02:00
Nikita Uvarov
f5289c546e feh: add module 2017-09-04 21:36:06 +02:00
Nikita Uvarov
2c5151726c vim: add module 2017-08-28 21:59:38 +02:00
Robert Helgesson
125deafc84 home-manager: add explanatory comment 2017-08-27 17:44:23 +02:00
Robert Helgesson
1445673e18 home-manager: temporarily re-add attribute 2017-08-27 17:13:06 +02:00
Robert Helgesson
4a17d8ef97 home-manager: remove unused attribute 2017-08-27 13:13:43 +02:00
Robert Helgesson
b4fff6b9b7 home-manager: minor attribute rename
The "activation-script" attribute doesn't actually point directly at
the activation script. Renamed the attribute to be more descriptive.
2017-08-27 13:04:39 +02:00
Nikita Uvarov
3bcd9d747b owncloud-client: add module 2017-08-26 22:56:26 +02:00
Nikita Uvarov
c3be4c4629 termite: add module 2017-08-23 23:31:47 +02:00
Nikita Uvarov
3ef56576d3 oh-my-zsh: add module 2017-08-16 15:44:27 +02:00
Nikita Uvarov
cde8e02bf2 zsh: add module 2017-08-16 13:58:30 +02:00
Silvan Mosberger
3778a69fbe htop: add module 2017-07-24 11:42:45 +02:00
Utku Demir
dd5061d73b Add syncthing service 2017-07-18 12:50:30 +02:00
Robert Helgesson
7a18a0fb34 home-manager: add module
This module is a module to install and configure the home-manager
tool. By managing the home-manager tool through the Home Manager
module system it will be installed/updated on configuration
activation.
2017-07-11 20:53:42 +02:00
Robin Stumm
e274fc732b browserpass: add module (#16)
* browserpass: add module

* apply some review requests

* browserpass: update to 1.0.5

* browserpass: install from Nixpkgs using `home.file`
2017-06-30 22:45:09 +02:00
Christopher League
ff65781b84 info: add module
This is a module for managing the GNU info directory for the user
profile. See comments at the top of `modules/programs/info.nix` for
further information.
2017-05-26 00:44:55 +02:00