mirror of
https://github.com/oqyude/nixos.git
synced 2026-10-07 20:47:14 +03:00
72 lines
1.7 KiB
Nix
72 lines
1.7 KiB
Nix
{ inputs, ... }@flakeContext:
|
|
let
|
|
nixosModule =
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
xlib,
|
|
...
|
|
}:
|
|
let
|
|
mkUser =
|
|
username:
|
|
{
|
|
imports ? [ ],
|
|
headless ? false,
|
|
}:
|
|
{
|
|
inherit imports;
|
|
home = {
|
|
username = username;
|
|
stateVersion = lib.mkDefault "26.05";
|
|
homeDirectory =
|
|
if username == "root" then lib.mkDefault "/${username}" else lib.mkDefault "/home/${username}";
|
|
enableNixpkgsReleaseCheck = false;
|
|
};
|
|
# Headless hosts: no GUI user dirs
|
|
xdg = lib.mkIf headless {
|
|
enable = true;
|
|
autostart.enable = true;
|
|
userDirs = {
|
|
enable = true;
|
|
createDirectories = false;
|
|
desktop = null;
|
|
documents = null;
|
|
download = null;
|
|
music = null;
|
|
pictures = null;
|
|
publicShare = null;
|
|
templates = null;
|
|
videos = null;
|
|
};
|
|
};
|
|
};
|
|
in
|
|
{
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
users = {
|
|
root = mkUser "root" { };
|
|
"${xlib.device.username}" = mkUser xlib.device.username {
|
|
imports = [
|
|
(./. + "/${xlib.device.type}.nix")
|
|
];
|
|
headless = xlib.isHeadless;
|
|
};
|
|
};
|
|
sharedModules = [
|
|
inputs.plasma-manager.homeModules.plasma-manager
|
|
];
|
|
extraSpecialArgs = {
|
|
inherit inputs;
|
|
inherit xlib;
|
|
};
|
|
};
|
|
};
|
|
in
|
|
{
|
|
inherit nixosModule;
|
|
}
|