!wfudwzqQUiJYJnqfSY:nixos.org

NixOS Module System

125 Members
24 Servers

Load older messages


SenderMessageTime
9 Jun 2025
@spaenny:tchncs.dePhilipp changed their display name from Spaenny to Philipp.20:46:30
16 Jun 2025
@brisingr05:matrix.orgBrisingr05Redacted or Malformed Event07:00:33
@ygt:matrix.orgnadir left the room.21:50:42
17 Jun 2025
@jopejoe1:matrix.orgjopejoe1 (4094@eh22) changed their display name from jopejoe1 (4094@eh22) to jopejoe1 (4094@GPN23).12:06:51
22 Jun 2025
@ss:someonex.netSomeoneSerge (UTC+U[-12,12]) changed their display name from SomeoneSerge (UTC+U[-12,12]) to SomeoneSerge (Ever OOMed by Element).12:14:58
23 Jun 2025
@isabel:isabelroses.comisabel changed their profile picture.15:36:50
27 Jun 2025
@nbp:mozilla.orgnbp changed their display name from nbp to nbp — PTO.17:25:55
30 Jun 2025
@atagen:imagisphe.reatagen joined the room.03:04:43
2 Jul 2025
@mtheil:scs.ems.hostMarkus Theil joined the room.13:30:44
4 Jul 2025
@majiir:matrix.orgMajiir Paktu joined the room.21:28:45
7 Jul 2025
@nbp:mozilla.orgnbp changed their display name from nbp — PTO to nbp.13:12:04
8 Jul 2025
@djsushi123:matrix.orgMartin Gaens joined the room.09:11:18
@djsushi123:matrix.orgMartin GaensHey guys, I am trying to modularize my system, but there's one thing that I can't grasp. When you see everyone using Nix modules to split their configs, they almost always have their home manager configuration separate from their system configuration. I mean, it makes sense 95% of time, however, for some programs, like for example Hyprland, if you want to use Home Manager to manage Hyprland, you need the system module enabled as well. Basically everyone I've seen simply has a hyprland.nix config file both in the home-manager config as well as the system config. However, this means they're decoupled. If I am choosing which modules to enable inside my host, I have to think about enabling both my user hyprland module as well as my system hyprland module (which are in different parts of my dotfiles, since one of them is inside the home-manager configuration directory and the other one is inside the system configuration directory). How do I properly manage this sort of thing?09:17:03
@nbp:mozilla.orgnbp

Martin Gaens: I have a home-manager config which is either managed on its own or within NixOS, which I use across 2 different computer. I am using the extraSpecialArgs in flake.nix or home-manager.users.nicolas._module.args when embedded in a NixOS configuration, to set some configuration managed externally.

Note, there is nothing about special args, I might have as well set an option by adding an extra module in homeManager's flake.nix and done the same within the configuration embedded in NixOS.

09:25:23
@djsushi123:matrix.orgMartin GaensThanks for your reply. I am quite new to this; I'm not sure I understand. Do you mean you have some externally-managed configuration, which you pass both to your home-manager config as well as to your system config, and then, make decisions in those configs based on the global configuration?09:43:25
@nbp:mozilla.orgnbp

I can either use my home manager as a standalone entry in my flake.nix:

    homeConfigurations.nicolas = home-manager.lib.homeManagerConfiguration {
      extraSpecialArgs = inputs // {
        inNixOS = false;
      };
      pkgs = import nixpkgs-unstable {
        system = "x86_64-linux";
        overlays = [ self.overlays.openpnp ];
      };
      modules = [ ./users/nicolas/home.nix ];
    };

Or as a module to import in my NixOS configuration:

{ home-manager, ...}@inputs:

{
  imports = [
    home-manager.nixosModules.home-manager
  ];

  home-manager = {
    users.nicolas.imports = [ ./home.nix ];
    users.nicolas._module.args = {
      inNixOS = true;
    } // inputs;
  };
}

The inNixOS argument is nothing special, this is just an extra attribute I give as argument to the home-manager modules to tune it differently.

09:54:33
@nbp:mozilla.orgnbp *

I can either use my home manager as a standalone entry in my flake.nix:

    homeConfigurations.nicolas = home-manager.lib.homeManagerConfiguration {
      extraSpecialArgs = inputs // {
        inNixOS = false;
      };
      pkgs = import nixpkgs-unstable { system = "x86_64-linux"; };
      modules = [ ./users/nicolas/home.nix ];
    };

Or as a module to import in my NixOS configuration:

{ home-manager, ...}@inputs:

{
  imports = [
    home-manager.nixosModules.home-manager
  ];

  home-manager = {
    users.nicolas.imports = [ ./home.nix ];
    users.nicolas._module.args = {
      inNixOS = true;
    } // inputs;
  };
}

The inNixOS argument is nothing special, this is just an extra attribute I give as argument to the home-manager modules to tune it differently.

09:55:32
@nbp:mozilla.orgnbp *

I can either use my home manager as a standalone entry in my flake.nix:

    homeConfigurations.nicolas = home-manager.lib.homeManagerConfiguration {
      extraSpecialArgs = inputs // {
        inNixOS = false;
      };
      pkgs = import nixpkgs-unstable { system = "x86_64-linux"; };
      modules = [ ./users/nicolas/home.nix ];
    };

Or as a module to import in my NixOS configuration:

{ home-manager, ...}@inputs:

{
  imports = [
    home-manager.nixosModules.home-manager
  ];

  home-manager = {
    users.nicolas.imports = [ ./home.nix ];
    users.nicolas._module.args = {
      inNixOS = true;
      inherit (inputs) awesome-copycats; // list other inputs forwarded from NixOS to home-manager
    };
  };
}

The inNixOS argument is nothing special, this is just an extra attribute I give as argument to the home-manager modules to tune it differently.

09:56:35
@nbp:mozilla.orgnbp *

I can either use my home manager as a standalone entry in my flake.nix:

    homeConfigurations.nicolas = home-manager.lib.homeManagerConfiguration {
      extraSpecialArgs = inputs // {
        inNixOS = false;
      };
      pkgs = import nixpkgs-unstable { system = "x86_64-linux"; };
      modules = [ ./users/nicolas/home.nix ];
    };

Or as a module to import in my NixOS configuration:

{ home-manager, ...}@inputs:

{
  imports = [
    home-manager.nixosModules.home-manager
  ];

  home-manager = {
    users.nicolas.imports = [ ./home.nix ];
    users.nicolas._module.args = {
      inNixOS = true;
      inherit (inputs) awesome-copycats; # list other inputs forwarded from NixOS to home-manager
    };
  };
}

The inNixOS argument is nothing special, this is just an extra attribute I give as argument to the home-manager modules to tune it differently.

09:56:50
@nbp:mozilla.orgnbp *

I can either use my home manager as a standalone entry in my flake.nix:

    homeConfigurations.nicolas = home-manager.lib.homeManagerConfiguration {
      extraSpecialArgs = inputs // {
        inNixOS = false;
      };
      pkgs = import nixpkgs-unstable { system = "x86_64-linux"; };
      modules = [ ./home.nix ];
    };

Or as a module to import in my NixOS configuration:

{ home-manager, ...}@inputs:

{
  imports = [
    home-manager.nixosModules.home-manager
  ];

  home-manager = {
    users.nicolas.imports = [ ./home.nix ];
    users.nicolas._module.args = {
      inNixOS = true;
      inherit (inputs) awesome-copycats; # list other inputs forwarded from NixOS to home-manager
    };
  };
}

The inNixOS argument is nothing special, this is just an extra attribute I give as argument to the home-manager modules to tune it differently.

09:57:26
9 Jul 2025
@atagen:ch.atagen.coatagen joined the room.07:41:54
14 Jul 2025
@mightyiam:matrix.orgShahar "Dawn" Or joined the room.10:05:13
@n4ch723hr3r:nope.chatn4ch723hr3r joined the room.14:00:31
8 Feb 2024
@aciceri:nixos.devzrsk joined the room.10:38:02
15 Feb 2024
@a-kenji:matrix.orga-kenji joined the room.19:15:14
16 Feb 2024
@qyriad:matrix.orgQyriad joined the room.14:56:15
@mr-qubo:matrix.orgmr-qubo joined the room.14:59:24
@mr-qubo:matrix.orgmr-qubo

I recently stumbled upon similar issue when working on home-manager. https://discourse.nixos.org/t/is-it-possible-to-define-systemd-services-in-a-submodule/39538/5

The idea is that enabling https://nix-community.github.io/home-manager/options.xhtml#opt-programs.bash.enableCompletion should set environment.pathsToLink = [ "/share/bash-completion" ];.

I think that module system is missing an option to pass config options recursively up to all ancestors.

15:06:01
@mr-qubo:matrix.orgmr-qubo My idea is that nixos config could have a property extraNixosChildConfig and in home-manager bash module I could set _recurseAncestors = { extraNixosChildConfig = { environment.pathsToLink = [ ... ]; }; }. 15:07:22
@mr-qubo:matrix.orgmr-qubowdyt?15:07:26

Show newer messages


Back to Room ListRoom Version: 10