wip: niri take 2 [skip-ci] #357
8 changed files with 152 additions and 87 deletions
40
example-vm/default.nix
Normal file
40
example-vm/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
import = [ ./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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,7 +1,13 @@
|
||||||
|
## Default QEMU guest config
|
||||||
{
|
{
|
||||||
services.qemuGuest.enable = true;
|
services = {
|
||||||
|
qemuGuest.enable = true;
|
||||||
|
openssh.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot = {
|
||||||
|
loader.systemd-boot.enable = true;
|
||||||
|
initrd.availableKernelModules = [
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
"ehci_pci"
|
"ehci_pci"
|
||||||
"ahci"
|
"ahci"
|
||||||
|
@ -15,17 +21,14 @@
|
||||||
# "virtio_vga"
|
# "virtio_vga"
|
||||||
"virtio_gpu"
|
"virtio_gpu"
|
||||||
];
|
];
|
||||||
|
};
|
||||||
fileSystems."/".device = "/dev/disk/by-label/nixos";
|
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
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
# this value at the release version of the first install of this system.
|
# this value at the release version of the first install of this system.
|
||||||
# Before changing this value read the documentation for this option
|
# Before changing this value read the documentation for this option
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
# (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?
|
||||||
}
|
}
|
|
@ -8,47 +8,11 @@ in
|
||||||
{
|
{
|
||||||
# Example vm configuration
|
# Example vm configuration
|
||||||
flake.nixosConfigurations.vm = lib.nixosSystem {
|
flake.nixosConfigurations.vm = lib.nixosSystem {
|
||||||
inherit system pkgs;
|
inherit pkgs;
|
||||||
modules = [
|
modules = [
|
||||||
inputs.self.nixosModules.vm # import vm module
|
inputs.self.nixosModules.default
|
||||||
{
|
../example-vm # import vm configuration
|
||||||
time.timeZone = "Europe/Berlin";
|
{ nix.registry.nixpkgs.flake = inputs.nixpkgs; }
|
||||||
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;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
{ self, inputs, ... }:
|
{ self, inputs, ... }:
|
||||||
let
|
|
||||||
modules = ../modules;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
# FIXME(25.05): this version of HM should have the flake module
|
# FIXME(25.05): this version of HM should have the flake module
|
||||||
# imports = [ inputs.home-manager.flakeModules.home-manager ];
|
# imports = [ inputs.home-manager.flakeModules.home-manager ];
|
||||||
|
@ -11,7 +8,7 @@ in
|
||||||
defaultModules = [
|
defaultModules = [
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
self.nixvimModules.homeManager
|
self.nixvimModules.homeManager
|
||||||
(modules + "/hm")
|
../module/hm
|
||||||
];
|
];
|
||||||
nixos = {
|
nixos = {
|
||||||
imports = defaultModules;
|
imports = defaultModules;
|
||||||
|
|
|
@ -4,17 +4,15 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
modules = ../modules;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
flake.nixosModules =
|
flake.nixosModules =
|
||||||
let
|
let
|
||||||
nixosModule = {
|
nixosModule = {
|
||||||
imports = [
|
imports = [
|
||||||
|
inputs.niri.nixosModules.niri
|
||||||
inputs.stylix.nixosModules.stylix
|
inputs.stylix.nixosModules.stylix
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
(modules + "/nixos")
|
../modules/nixos
|
||||||
] ++ lib.optional (inputs.lix-module != null) inputs.lix-module.nixosModules.default;
|
] ++ lib.optional (inputs.lix-module != null) inputs.lix-module.nixosModules.default;
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
|
@ -24,20 +22,9 @@ in
|
||||||
# Pin nixpkgs
|
# Pin nixpkgs
|
||||||
nix.registry.nixpkgs.flake = inputs.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
|
in
|
||||||
{
|
{
|
||||||
default = nixosModule;
|
default = nixosModule;
|
||||||
inherit nixosModule;
|
inherit nixosModule;
|
||||||
}
|
};
|
||||||
// machineModules;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
{ self, inputs, ... }:
|
{ self, inputs, ... }:
|
||||||
let
|
|
||||||
modules = ../modules;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [ inputs.nixvim.flakeModules.default ];
|
imports = [ inputs.nixvim.flakeModules.default ];
|
||||||
|
|
||||||
|
@ -10,9 +7,13 @@ in
|
||||||
checks.enable = false; # FIXME: borked due to nix-community/nixvim#3074
|
checks.enable = false; # FIXME: borked due to nix-community/nixvim#3074
|
||||||
};
|
};
|
||||||
|
|
||||||
flake.nixvimModules = {
|
flake.nixvimModules =
|
||||||
standalone = modules + "/nixvim/standalone.nix";
|
let
|
||||||
homeManager = modules + "/nixvim";
|
module = ../modules/nixvim;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
standalone = "${module}/standalone.nix";
|
||||||
|
homeManager = module;
|
||||||
};
|
};
|
||||||
|
|
||||||
perSystem =
|
perSystem =
|
||||||
|
|
62
flake.lock
generated
62
flake.lock
generated
|
@ -275,6 +275,50 @@
|
||||||
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz"
|
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"niri": {
|
||||||
|
"inputs": {
|
||||||
|
"niri-stable": "niri-stable",
|
||||||
|
"niri-unstable": [],
|
||||||
|
"nixpkgs": [
|
||||||
|
"unstable"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||||
|
"xwayland-satellite-unstable": []
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1742108116,
|
||||||
|
"narHash": "sha256-NrV9ysEfSbeRUPo0jdCBeesuNLTVrpHGXg40snH1YGE=",
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"rev": "824f10012de455a1d0ef795a605f28948ee10467",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1740117926,
|
||||||
|
"narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "b94a5db8790339cf9134873d8b490be69e02ac71",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"ref": "v25.02",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742388435,
|
"lastModified": 1742388435,
|
||||||
|
@ -334,6 +378,7 @@
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"lix-module": "lix-module",
|
"lix-module": "lix-module",
|
||||||
|
"niri": "niri",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
"stylix": "stylix",
|
"stylix": "stylix",
|
||||||
|
@ -471,6 +516,23 @@
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739246919,
|
||||||
|
"narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"ref": "v0.5.1",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
11
flake.nix
11
flake.nix
|
@ -43,6 +43,17 @@
|
||||||
nuschtosSearch.follows = "";
|
nuschtosSearch.follows = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
niri = {
|
||||||
|
url = "github:sodiboo/niri-flake";
|
||||||
|
inputs = {
|
||||||
|
# Deduplicate
|
||||||
|
nixpkgs.follows = "unstable";
|
||||||
|
nixpkgs-stable.follows = "nixpkgs";
|
||||||
|
# Unused
|
||||||
|
niri-unstable.follows = "";
|
||||||
|
xwayland-satellite-unstable.follows = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
flake-parts = {
|
flake-parts = {
|
||||||
url = "github:hercules-ci/flake-parts";
|
url = "github:hercules-ci/flake-parts";
|
||||||
inputs.nixpkgs-lib.follows = "nixpkgs";
|
inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||||
|
|
Loading…
Add table
Reference in a new issue