| 8 May 2025 |
Mr. Defenestrator | It'd be cool if --argstr worked with flake checks. I just did a little test and it failed because my arg wasn't defined in _module.args -- I didn't think checks relied in the module system, but that's kind of interesting if they do.
Maybe someone who knows more about the checks attribute could confirm that. Parameterizing checks could be useful. | 04:36:15 |
dramforever | flake checks don't inherently use the module system as they're just derivations. do you use something like flake-parts? | 07:29:57 |
dramforever | like, just to be clear it is not an exaggeration that the nix cli has zero knowledge of how nixos modules work | 07:30:20 |
| isabel changed their profile picture. | 08:58:19 |
kdobieder | Does anyone have an example of a Home Manager module shared via Flake? In the consuming flakes, I’d like it to be added directly to homeManagerModule.modules. The Home Manager module should be able to install packages from nixpkgs. | 10:50:41 |
kdobieder | * Does anyone have an example of a Home Manager module shared via Flake? In the consuming flakes, I’d like it to be added directly to homeManagerModule.modules. The Home Manager module should be able to install packages from nixpkgs. | 10:51:05 |
dramforever |
The Home Manager module should be able to install packages from nixpkgs.
pkgs
| 10:54:50 |
dramforever | *
The Home Manager module should be able to install packages from nixpkgs.
use pkgs
| 10:54:55 |
kdobieder | Well I'd like to pass some things to the flake and this is what I came up with:
{
description = "Custom Flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
myvendor-scripts.url = "git+https://git.myvendor.de/linux/scripts";
};
outputs = { nixpkgs, nixpkgs-unstable, myvendor-scripts, ... }: let
getModule = {system, flakefolder}: let
homeManagerModule = import ./modules {
lib = nixpkgs.lib;
pkgs = nixpkgs.legacyPackages.${system};
pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
flakefolder = flakefolder;
myvendor-scripts = myvendor-scripts;
};
in {
home-manager = homeManagerModule ;
};
in {
getModule = getModule;
};
}
But this way I have to define everything a would need - like lib, config, etc. Doesn't seem to be a good solution. Am I missing something?
| 10:57:18 |
kdobieder | * Well I'd like to pass some things to the flake and this is what I came up with:
{
description = "Custom Flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
myvendor-scripts.url = "git+https://git.myvendor.de/linux/scripts";
};
outputs = { nixpkgs, nixpkgs-unstable, myvendor-scripts, ... }: let
getModule = {system, flakefolder}: let
homeManagerModule = import ./modules {
lib = nixpkgs.lib;
pkgs = nixpkgs.legacyPackages.${system};
pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
flakefolder = flakefolder;
myvendor-scripts = myvendor-scripts;
};
in {
home-manager = homeManagerModule ;
};
in {
getModule = getModule;
};
}
But this way I have to define everything a module would need - like lib, config, etc. Doesn't seem to be a good solution. Am I missing something?
| 10:58:08 |
dramforever | just don't pass it lib, config, etc | 11:27:18 |