Compare commits

...

5 commits

4 changed files with 35 additions and 16 deletions

View file

@ -39,8 +39,8 @@
}; };
}; };
outputs = {self, nixpkgs, ...} @ inputs: let outputs = {self, nixpkgs, ...} @ inputs: {
in { nixosConfigurations = import ./hosts {inherit inputs;};
nixosConfigurations = import ./hosts {inherit nixpkgs inputs self;}; devShells = import ./shells {inherit inputs;};
}; };
} }

View file

@ -1,5 +1,6 @@
{ self, inputs, ... }: { inputs, ... }:
let let
inherit (inputs) self;
inherit (inputs.nixpkgs) lib; inherit (inputs.nixpkgs) lib;
# A list of shared modules that ALL systems need # A list of shared modules that ALL systems need
@ -10,17 +11,6 @@ let
]; ];
in in
{ {
vboxnix = lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit lib inputs self; };
modules = [
./vbox_nix
inputs.home-manager.nixosModules.home-manager
inputs.impermanence.nixosModules.impermanence
inputs.lanzaboote.nixosModules.lanzaboote
] ++ shared;
};
herugrim = lib.nixosSystem { herugrim = lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit lib inputs self; }; specialArgs = { inherit lib inputs self; };

21
shells/default.nix Normal file
View file

@ -0,0 +1,21 @@
{inputs, ...}: let
inherit (inputs) nixpkgs;
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
${system} = {
default = pkgs.mkShell {
name = "nixdots";
meta.description = "The default development shell for my NixOS configuration";
packages = with pkgs; [
git # flakes require git
nil # nix ls
statix # lints and suggestions
deadnix # clean up unused nix code
alejandra # nix formatter
];
shellHook = "exec $SHELL";
};
};
}

View file

@ -11,6 +11,9 @@
deviceType = config.myOptions.device.roles.type; deviceType = config.myOptions.device.roles.type;
acceptedTypes = ["laptop" "desktop"]; acceptedTypes = ["laptop" "desktop"];
greetingMsg = "'Access is restricted to authorized personnel only.'";
tuiGreetTheme = "'border=magenta;text=cyan;prompt=green;time=red;action=white;button=yellow;container=black;input=gray'";
sessionData = config.services.displayManager.sessionData.desktops; sessionData = config.services.displayManager.sessionData.desktops;
sessionPaths = concatStringsSep ":" [ sessionPaths = concatStringsSep ":" [
"${sessionData}/share/xsessions" "${sessionData}/share/xsessions"
@ -25,14 +28,16 @@
"--remember" "--remember"
"--remember-user-session" "--remember-user-session"
"--asterisks" "--asterisks"
"--greeting ${greetingMsg}"
"--sessions '${sessionPaths}'" "--sessions '${sessionPaths}'"
"--theme ${tuiGreetTheme}"
]; ];
}; };
in { in {
config = mkIf (builtins.elem deviceType acceptedTypes) { config = mkIf (builtins.elem deviceType acceptedTypes) {
services.greetd = { services.greetd = {
enable = true; enable = true;
vt = 2; vt = 1;
# <https://man.sr.ht/~kennylevinsen/greetd/> # <https://man.sr.ht/~kennylevinsen/greetd/>
settings = { settings = {
@ -54,5 +59,8 @@ in {
TTYVHangup = true; TTYVHangup = true;
TTYVTDisallocate = true; TTYVTDisallocate = true;
}; };
# Persist info about previous session & user
myOptions.system.impermanence.root.extraDirectories = [ "/var/cache/tuigreet" ];
}; };
} }