refactor: don't include the whole modules
All checks were successful
/ check (push) Successful in 8s
/ check-renovaterc (push) Successful in 2s
/ build-packages (push) Successful in 14s
/ build-vm (push) Successful in 1s
/ report-size (push) Successful in 4s

Instead only import the nixos/hm/nixvim module.

This _should_ reduce rebuilds.
This commit is contained in:
Jalil David Salamé Messina 2025-03-21 16:21:13 +01:00
parent 5359f13621
commit c1309a5d43
Signed by: jalil
GPG key ID: F016B9E770737A0B
6 changed files with 78 additions and 87 deletions

40
example-vm/default.nix Normal file
View file

@ -0,0 +1,40 @@
{
imports = [ ./vm-config.nix ];
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
users.users.jdoe = {
password = "example";
isNormalUser = true;
extraGroups = [
"wheel"
"video"
"networkmanager"
];
};
home-manager.users.jdoe = {
home = {
username = "jdoe";
homeDirectory = "/home/jdoe";
};
jhome = {
enable = true;
gui.enable = true;
dev = {
enable = true;
rust.enable = true;
};
};
};
# password is 'test' see module documentation for more options
services.jupyter.password = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'";
jconfig = {
enable = true;
dev = {
enable = true;
jupyter.enable = true;
};
gui.enable = true;
};
}

View file

@ -1,31 +1,34 @@
## Default QEMU guest config
{
services.qemuGuest.enable = true;
services = {
qemuGuest.enable = true;
openssh.enable = true;
};
boot.initrd.availableKernelModules = [
"xhci_pci"
"ehci_pci"
"ahci"
"usbhid"
"usb_storage"
"sd_mod"
"virtio_balloon"
"virtio_blk"
"virtio_pci"
"virtio_ring"
# "virtio_vga"
"virtio_gpu"
];
boot = {
loader.systemd-boot.enable = true;
initrd.availableKernelModules = [
"xhci_pci"
"ehci_pci"
"ahci"
"usbhid"
"usb_storage"
"sd_mod"
"virtio_balloon"
"virtio_blk"
"virtio_pci"
"virtio_ring"
# "virtio_vga"
"virtio_gpu"
];
};
fileSystems."/".device = "/dev/disk/by-label/nixos";
boot.loader.systemd-boot.enable = true;
services.openssh.enable = true;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "22.11"; # Did you read the comment?
system.stateVersion = "24.11"; # Did you read the comment?
}

View file

@ -8,47 +8,11 @@ in
{
# Example vm configuration
flake.nixosConfigurations.vm = lib.nixosSystem {
inherit system pkgs;
inherit pkgs;
modules = [
inputs.self.nixosModules.vm # import vm module
{
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
users.users.jdoe = {
password = "example";
isNormalUser = true;
extraGroups = [
"wheel"
"video"
"networkmanager"
];
};
home-manager.users.jdoe = {
home = {
username = "jdoe";
homeDirectory = "/home/jdoe";
};
jhome = {
enable = true;
gui.enable = true;
dev = {
enable = true;
rust.enable = true;
};
};
};
nix.registry.nixpkgs.flake = inputs.nixpkgs;
# password is 'test' see module documentation for more options
services.jupyter.password = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'";
jconfig = {
enable = true;
dev = {
enable = true;
jupyter.enable = true;
};
gui.enable = true;
};
}
inputs.self.nixosModules.default
../example-vm # import vm configuration
{ nix.registry.nixpkgs.flake = inputs.nixpkgs; }
];
};

View file

@ -1,7 +1,4 @@
{ self, inputs, ... }:
let
modules = ../modules;
in
{
# FIXME(25.05): this version of HM should have the flake module
# imports = [ inputs.home-manager.flakeModules.home-manager ];
@ -11,7 +8,7 @@ in
defaultModules = [
inputs.nixvim.homeManagerModules.nixvim
self.nixvimModules.homeManager
(modules + "/hm")
../modules/hm
];
nixos = {
imports = defaultModules;

View file

@ -4,9 +4,6 @@
lib,
...
}:
let
modules = ../modules;
in
{
flake.nixosModules =
let
@ -14,7 +11,7 @@ in
imports = [
inputs.stylix.nixosModules.stylix
inputs.home-manager.nixosModules.home-manager
(modules + "/nixos")
../modules/nixos
] ++ lib.optional (inputs.lix-module != null) inputs.lix-module.nixosModules.default;
home-manager = {
useGlobalPkgs = true;
@ -24,20 +21,9 @@ in
# Pin nixpkgs
nix.registry.nixpkgs.flake = inputs.nixpkgs;
};
machines = [ "vm" ];
mkMachine = hostname: {
imports = [
nixosModule
(import (../machines + "/${hostname}"))
];
home-manager.sharedModules = [ { jhome.hostName = hostname; } ];
};
machineModules = lib.genAttrs machines mkMachine;
in
{
default = nixosModule;
inherit nixosModule;
}
// machineModules;
};
}

View file

@ -1,7 +1,4 @@
{ self, inputs, ... }:
let
modules = ../modules;
in
{
imports = [ inputs.nixvim.flakeModules.default ];
@ -10,10 +7,14 @@ in
checks.enable = false; # FIXME: borked due to nix-community/nixvim#3074
};
flake.nixvimModules = {
standalone = modules + "/nixvim/standalone.nix";
homeManager = modules + "/nixvim";
};
flake.nixvimModules =
let
module = ../modules/nixvim;
in
{
standalone = "${module}/standalone.nix";
homeManager = module;
};
perSystem =
{ system, ... }: