services: home-manager init with kdeconnect and pkgsets integration

This commit is contained in:
Kevin Baensch 2025-07-12 12:57:33 +02:00
parent 1861afd4a7
commit 15cb1af8ac
Signed by: derped
GPG key ID: C0F1D326C7626543
4 changed files with 75 additions and 0 deletions

View file

@ -6,6 +6,10 @@
nixpkgs-unstable.url = "github:/NixOS/nixpkgs/nixos-unstable";
nixpkgs.url = "github:/NixOS/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
impermanence.url = "github:nix-community/impermanence";
flake-utils.url = "github:numtide/flake-utils";
mailserver.url = "gitlab:/simple-nixos-mailserver/nixos-mailserver";

45
services/home.nix Normal file
View file

@ -0,0 +1,45 @@
{
lib,
fn,
pkgs,
config,
home-manager,
...
}:
with lib;
{
imports = [
home-manager.nixosModules.home-manager
];
}
// mkIf (elem "home" config.machine.services) {
home-manager = {
users =
let
homeFiles = fn.lsfRec (toString ./home) true;
in
listToAttrs (
map (user: {
name = user.name;
value =
{ pkgs, ... }:
{
home.stateVersion = "25.05";
imports = homeFiles;
};
}) config.machine.users
);
extraSpecialArgs = {
inherit (config.machine) pkgsets;
# config.machine.users as set (user name as key)
users = (
listToAttrs (
map (user: {
name = user.name;
value = user;
}) config.machine.users
)
);
};
};
}

View file

@ -0,0 +1,10 @@
{
config,
lib,
users,
...
}:
lib.mkIf (lib.elem "kdeconnect" users."${config.home.username}".services) {
services.kdeconnect.enable = true;
}

View file

@ -0,0 +1,16 @@
{
lib,
config,
users,
pkgsets,
...
}:
let
user = users."${config.home.username}";
in
lib.mkIf (user ? pkgs) {
home.packages = lib.flatten (
map (setName: lib.optionals (pkgsets ? "${setName}") pkgsets."${setName}".pkgwrap) user.pkgs
);
}