From 6f32e3b9a0bb97900e966192a7eeb765ddc94c98 Mon Sep 17 00:00:00 2001 From: Patrick Neff Date: Sun, 14 Apr 2024 15:23:37 +0200 Subject: [PATCH] reorganize for rpi --- flake.nix | 67 +++------ lib/mkHomeConfiguration.nix | 23 ++-- lib/mkHomeNixosModule.nix | 6 +- .../{base.nix => base/default.nix} | 15 +-- modules/home-manager/base/news.nix | 7 + modules/home-manager/base/nixpkgs.nix | 3 + modules/home-manager/desktop.nix | 14 -- modules/home-manager/games/default.nix | 13 ++ modules/home-manager/games/doom/default.nix | 5 + modules/home-manager/games/doom/dsda-doom.nix | 18 +++ modules/home-manager/games/steam/default.nix | 1 + .../home-manager/games/unnethack/default.nix | 16 +++ .../{shell.nix => mediacenter/default.nix} | 4 +- .../home-manager/mediacenter/kodi/default.nix | 20 +++ .../dev.nix => nixos/mediacenter/default.nix} | 4 +- modules/nixos/mediacenter/kodi/default.nix | 66 +++++++++ profiles/home-manager/desktop-dev.nix | 18 --- profiles/home-manager/desktop.nix | 17 --- profiles/home-manager/flake.nix | 127 ++++++++++++++++++ profiles/home-manager/kodi@vm/home.nix | 21 +++ profiles/home-manager/odie@asgard/home.nix | 33 +++++ .../pi0 => home-manager/odie@pi0}/home.nix | 0 profiles/home-manager/odie@vm/home.nix | 6 + profiles/home-manager/odie@wanaheim/home.nix | 26 ++++ profiles/home-manager/shell-dev.nix | 17 --- profiles/home-manager/shell.nix | 16 --- profiles/nixos/pi0/configuration.nix | 19 +-- profiles/nixos/vm/configuration.nix | 34 +++-- profiles/nixos/wsl-dev/configuration.nix | 15 +-- 29 files changed, 442 insertions(+), 189 deletions(-) rename modules/home-manager/{base.nix => base/default.nix} (50%) create mode 100644 modules/home-manager/base/news.nix create mode 100644 modules/home-manager/base/nixpkgs.nix delete mode 100644 modules/home-manager/desktop.nix create mode 100644 modules/home-manager/games/default.nix create mode 100644 modules/home-manager/games/doom/default.nix create mode 100644 modules/home-manager/games/doom/dsda-doom.nix create mode 100644 modules/home-manager/games/steam/default.nix create mode 100644 modules/home-manager/games/unnethack/default.nix rename modules/home-manager/{shell.nix => mediacenter/default.nix} (55%) create mode 100644 modules/home-manager/mediacenter/kodi/default.nix rename modules/{home-manager/dev.nix => nixos/mediacenter/default.nix} (50%) create mode 100644 modules/nixos/mediacenter/kodi/default.nix delete mode 100644 profiles/home-manager/desktop-dev.nix delete mode 100644 profiles/home-manager/desktop.nix create mode 100644 profiles/home-manager/flake.nix create mode 100644 profiles/home-manager/kodi@vm/home.nix create mode 100644 profiles/home-manager/odie@asgard/home.nix rename profiles/{nixos/pi0 => home-manager/odie@pi0}/home.nix (100%) create mode 100644 profiles/home-manager/odie@vm/home.nix create mode 100644 profiles/home-manager/odie@wanaheim/home.nix delete mode 100644 profiles/home-manager/shell-dev.nix delete mode 100644 profiles/home-manager/shell.nix diff --git a/flake.nix b/flake.nix index d7270dc..d79d325 100644 --- a/flake.nix +++ b/flake.nix @@ -25,7 +25,6 @@ ]; domain = "odie.intranet"; }; - overlays = [ inputs.nixvim.overlays.default inputs.neovim-nightly-overlay.overlays.default @@ -38,6 +37,8 @@ base = import ./modules/nixos/base; desktop = import ./modules/nixos/desktop; wsl = import ./modules/nixos/wsl; + mediacenter = import ./modules/nixos/mediacenter; + qemu = import ./modules/nixos/qemu; }; nixosConfigurations = flakeLib.mkNixosConfiguration { @@ -57,59 +58,25 @@ } // {}; homeManagerModules = { - base = import ./modules/home-manager/base.nix; - desktop = import ./modules/home-manager/desktop.nix; - shell = import ./modules/home-manager/shell.nix; - dev = import ./modules/home-manager/dev.nix; + base = import ./modules/home-manager/base; + desktop = import ./modules/home-manager/desktop; + shell = import ./modules/home-manager/shell; + development = import ./modules/home-manager/development; + games = import ./modules/home-manager/games; + mediacenter = import ./modules/home-manager/mediacenter; }; - homeConfigurations = { - "odie@wanaheim" = flakeLib.mkHomeConfiguration { + homeConfigurations = + flakeLib.mkHomeConfiguration { inherit inputs outputs nixpkgs flakeLib vars overlays; - profile = ./profiles/home-manager/desktop-dev.nix; + profile = "odie@wanaheim"; system = "x86_64-linux"; - modules = [ - { - desktop = { - enable = true; - awesome = { - enable = true; - wifi_device = "'wlp3s0'"; - battery_device = "'BAT0'"; - }; - }; - services.picom.enable = false; - programs.rofi.enable = true; - } - ]; + } + // + flakeLib.mkHomeConfiguration { + inherit inputs outputs nixpkgs flakeLib vars overlays; + profile = "odie@asgard"; + system = "x86_64-linux"; }; - "odie@asgard" = flakeLib.mkHomeConfiguration { - inherit inputs outputs nixpkgs flakeLib vars overlays; - profile = ./profiles/home-manager/desktop-dev.nix; - system = "x86_64-linux"; - modules = [ - inputs.csleeptimer.homeManagerModules.default - { - desktop = { - enable = true; - awesome = { - enable = false; - }; - }; - programs = { - firefox.enable = false; - keepassxc.enable = false; - }; - services = { - nixGL.enable = true; - borgmatic.enable = true; - nextcloud-client.enable = false; - }; - theme.cursor.enable = false; - theme.gtk.enable = false; - } - ]; - }; - }; } // flake-utils.lib.eachDefaultSystem (system: { packages = { diff --git a/lib/mkHomeConfiguration.nix b/lib/mkHomeConfiguration.nix index 0d42266..e9e0003 100644 --- a/lib/mkHomeConfiguration.nix +++ b/lib/mkHomeConfiguration.nix @@ -6,17 +6,20 @@ vars, system, profile, - modules ? [], overlays ? [], ... -}: -import profile { - inherit inputs outputs modules; - extraSpecialArgs = { - inherit inputs outputs vars flakeLib; - inherit (inputs) nix-colors; - }; - pkgs = flakeLib.mkPkgs { - inherit nixpkgs system overlays; +}: { + ${profile} = inputs.home-manager.lib.homeManagerConfiguration { + extraSpecialArgs = { + inherit inputs outputs vars flakeLib; + inherit (inputs) nix-colors; + }; + pkgs = flakeLib.mkPkgs { + inherit nixpkgs system overlays; + }; + + modules = [ + ../profiles/home-manager/${profile}/home.nix + ]; }; } diff --git a/lib/mkHomeNixosModule.nix b/lib/mkHomeNixosModule.nix index 8614b89..07cbd40 100644 --- a/lib/mkHomeNixosModule.nix +++ b/lib/mkHomeNixosModule.nix @@ -3,16 +3,14 @@ outputs, vars, flakeLib, - imports ? [], + users ? {}, ... }: { + inherit users; useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = { inherit inputs outputs vars flakeLib; inherit (inputs) nix-colors; }; - users.${vars.username} = { - inherit imports; - }; } diff --git a/modules/home-manager/base.nix b/modules/home-manager/base/default.nix similarity index 50% rename from modules/home-manager/base.nix rename to modules/home-manager/base/default.nix index 0e609ef..51ea1b6 100644 --- a/modules/home-manager/base.nix +++ b/modules/home-manager/base/default.nix @@ -1,17 +1,14 @@ -{ lib, vars, ... }: with lib; { +{vars, ...}: { home = { inherit (vars) username homeDirectory; language.base = vars.locale; stateVersion = "23.05"; }; + imports = [ + ./news.nix + ./nixpkgs.nix + ]; + programs.home-manager.enable = true; - - news = { - display = "silent"; - json = mkForce { }; - entries = mkForce [ ]; - }; - - nixpkgs.config.allowUnfree = true; } diff --git a/modules/home-manager/base/news.nix b/modules/home-manager/base/news.nix new file mode 100644 index 0000000..7a9dd52 --- /dev/null +++ b/modules/home-manager/base/news.nix @@ -0,0 +1,7 @@ +{ lib, ... }: with lib; { + news = { + display = "silent"; + json = mkForce { }; + entries = mkForce [ ]; + }; +} diff --git a/modules/home-manager/base/nixpkgs.nix b/modules/home-manager/base/nixpkgs.nix new file mode 100644 index 0000000..e95ec3c --- /dev/null +++ b/modules/home-manager/base/nixpkgs.nix @@ -0,0 +1,3 @@ +{ + nixpkgs.config.allowUnfree = true; +} diff --git a/modules/home-manager/desktop.nix b/modules/home-manager/desktop.nix deleted file mode 100644 index 03e8512..0000000 --- a/modules/home-manager/desktop.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ lib, ... }: with lib; { - imports = [ - ./desktop - ./mpd - ]; - - desktop.enable = mkDefault true; - - news = { - display = "silent"; - json = mkForce { }; - entries = mkForce [ ]; - }; -} diff --git a/modules/home-manager/games/default.nix b/modules/home-manager/games/default.nix new file mode 100644 index 0000000..fd7c313 --- /dev/null +++ b/modules/home-manager/games/default.nix @@ -0,0 +1,13 @@ +{lib, ...}: +with lib; { + imports = [ + ./doom + ./steam + ./unnethack + ]; + + config = { + games.unnethack.enable = mkDefault true; + games.dsda-doom.enable = mkDefault true; + }; +} diff --git a/modules/home-manager/games/doom/default.nix b/modules/home-manager/games/doom/default.nix new file mode 100644 index 0000000..83b1e8a --- /dev/null +++ b/modules/home-manager/games/doom/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./dsda-doom.nix + ]; +} diff --git a/modules/home-manager/games/doom/dsda-doom.nix b/modules/home-manager/games/doom/dsda-doom.nix new file mode 100644 index 0000000..cd4ef87 --- /dev/null +++ b/modules/home-manager/games/doom/dsda-doom.nix @@ -0,0 +1,18 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.games.dsda-doom; +in + with lib; { + options = { + games.dsda-doom.enable = mkEnableOption "dsda-doom"; + }; + config = mkIf cfg.enable { + home.packages = with pkgs; [ + dsda-doom + ]; + }; + } diff --git a/modules/home-manager/games/steam/default.nix b/modules/home-manager/games/steam/default.nix new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/modules/home-manager/games/steam/default.nix @@ -0,0 +1 @@ +{} diff --git a/modules/home-manager/games/unnethack/default.nix b/modules/home-manager/games/unnethack/default.nix new file mode 100644 index 0000000..e86fb18 --- /dev/null +++ b/modules/home-manager/games/unnethack/default.nix @@ -0,0 +1,16 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.games.unnethack; +in + with lib; { + options = { + games.unnethack.enable = mkEnableOption "unnethack"; + }; + config = mkIf cfg.enable { + home.packages = with pkgs; [unnethack]; + }; + } diff --git a/modules/home-manager/shell.nix b/modules/home-manager/mediacenter/default.nix similarity index 55% rename from modules/home-manager/shell.nix rename to modules/home-manager/mediacenter/default.nix index 5159b60..65a5386 100644 --- a/modules/home-manager/shell.nix +++ b/modules/home-manager/mediacenter/default.nix @@ -1,5 +1,5 @@ -_: { +{ imports = [ - ./shell + ./kodi ]; } diff --git a/modules/home-manager/mediacenter/kodi/default.nix b/modules/home-manager/mediacenter/kodi/default.nix new file mode 100644 index 0000000..bc68ae9 --- /dev/null +++ b/modules/home-manager/mediacenter/kodi/default.nix @@ -0,0 +1,20 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.mediacenter.kodi; +in with lib; { + options = { + mediacenter.kodi = { + enable = mkEnableOption "kodi"; + }; + }; + config = mkIf cfg.enable { + programs.kodi = { + enable = true; + package = pkgs.kodi-standalone; + }; + }; +} diff --git a/modules/home-manager/dev.nix b/modules/nixos/mediacenter/default.nix similarity index 50% rename from modules/home-manager/dev.nix rename to modules/nixos/mediacenter/default.nix index 4db6d77..65a5386 100644 --- a/modules/home-manager/dev.nix +++ b/modules/nixos/mediacenter/default.nix @@ -1,5 +1,5 @@ -_: { +{ imports = [ - ./development + ./kodi ]; } diff --git a/modules/nixos/mediacenter/kodi/default.nix b/modules/nixos/mediacenter/kodi/default.nix new file mode 100644 index 0000000..a359d61 --- /dev/null +++ b/modules/nixos/mediacenter/kodi/default.nix @@ -0,0 +1,66 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.mediacenter.kodi; +in + with lib; { + options = { + mediacenter.kodi = { + enable = mkEnableOption "kodi"; + }; + }; + config = let + user = "kodi"; + kodi-standalone = + pkgs.kodi-wayland.passthru.withPackages + (kodiPkgs: + with pkgs.kodiPackages; [ + youtube + pvr-iptvsimple + keymap + inputstream-adaptive + inputstream-ffmpegdirect + requests-cache + inputstreamhelper + advanced-emulator-launcher + ]); + in + lib.mkIf cfg.enable { + services.cage = { + inherit user; + enable = true; + program = "${kodi-standalone}/bin/kodi-standalone"; + }; + + users.users.kodi = { + name = user; + isNormalUser = true; + extraGroups = [ + "audio" + "video" + "disk" + "plugdev" + "i2c" + "spi" + "power" + ]; + }; + + networking.firewall.allowedTCPPorts = [8080 9090]; + + environment.systemPackages = with pkgs; [ + kodi-standalone + alsa-utils + (retroarch.override { + cores = with libretro; [ + snes9x + pcsx-rearmed + nestopia + ]; + }) + ]; + }; + } diff --git a/profiles/home-manager/desktop-dev.nix b/profiles/home-manager/desktop-dev.nix deleted file mode 100644 index db91e49..0000000 --- a/profiles/home-manager/desktop-dev.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - inputs, - pkgs, - extraSpecialArgs, - modules ? [], - ... -}: -inputs.home-manager.lib.homeManagerConfiguration { - inherit pkgs extraSpecialArgs; - modules = - [ - ../../modules/home-manager/base.nix - ../../modules/home-manager/shell.nix - ../../modules/home-manager/desktop.nix - ../../modules/home-manager/dev.nix - ] - ++ modules; -} diff --git a/profiles/home-manager/desktop.nix b/profiles/home-manager/desktop.nix deleted file mode 100644 index 6c45f8c..0000000 --- a/profiles/home-manager/desktop.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - inputs, - pkgs, - extraSpecialArgs, - modules ? [], - ... -}: -inputs.home-manager.lib.homeManagerConfiguration { - inherit pkgs extraSpecialArgs; - modules = - [ - ../../modules/home-manager/base.nix - ../../modules/home-manager/shell.nix - ../../modules/home-manager/desktop.nix - ] - ++ modules; -} diff --git a/profiles/home-manager/flake.nix b/profiles/home-manager/flake.nix new file mode 100644 index 0000000..3ba78ee --- /dev/null +++ b/profiles/home-manager/flake.nix @@ -0,0 +1,127 @@ +{ + description = "My Nix Configs"; + + outputs = { + self, + nixpkgs, + flake-utils, + ... + }: let + inherit (self) inputs outputs; + + flakeLib = import ./lib; + + vars = rec { + name = "Patrick Neff"; + username = "odie"; + homeDirectory = "/home/${username}"; + locale = "de_DE.UTF-8"; + email = "odie86@gmail.com"; + timeZone = "Europe/Berlin"; + sshKeys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIByWNNmKhjVk5VEjk3aSKosOXzglCbiq7q8IQ8mA0qQe odie" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1QZO6fF2RLcmjMKdG1eZi0RLw3joa+VBXaKvfmA7Tg odie" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINs89u4Kvwlmq67eV+H/n+x9M8gsKDxQU+dCPSEb2vJe odie" + ]; + domain = "odie.intranet"; + }; + overlays = [ + inputs.nixvim.overlays.default + inputs.neovim-nightly-overlay.overlays.default + inputs.nur.overlay + inputs.nixgl.overlay + ]; + in + { + nixosModules = { + base = import ./modules/nixos/base; + desktop = import ./modules/nixos/desktop; + wsl = import ./modules/nixos/wsl; + mediacenter = import ./modules/nixos/mediacenter; + qemu = import ./modules/nixos/qemu; + }; + nixosConfigurations = + flakeLib.mkNixosConfiguration { + inherit inputs nixpkgs outputs vars flakeLib overlays; + system = "x86_64-linux"; + hostName = "vm"; + } + // flakeLib.mkNixosConfiguration { + inherit inputs nixpkgs outputs vars flakeLib overlays; + system = "x86_64-linux"; + hostName = "wsl-dev"; + } + // flakeLib.mkNixosConfiguration { + inherit inputs outputs nixpkgs vars flakeLib overlays; + system = "aarch64-linux"; + hostName = "pi1"; + } + // {}; + homeManagerModules = { + base = import ./modules/home-manager/base; + desktop = import ./modules/home-manager/desktop; + shell = import ./modules/home-manager/shell; + development = import ./modules/home-manager/development; + games = import ./modules/home-manager/games; + }; + homeConfigurations = + flakeLib.mkHomeConfiguration { + inherit inputs outputs nixpkgs flakeLib vars overlays; + profile = "odie@wanaheim"; + system = "x86_64-linux"; + } + // + flakeLib.mkHomeConfiguration { + inherit inputs outputs nixpkgs flakeLib vars overlays; + profile = "odie@asgard"; + system = "x86_64-linux"; + }; + } + // flake-utils.lib.eachDefaultSystem (system: { + packages = { + neovim-ide = import ./pkgs/nixvim {inherit inputs system flakeLib nixpkgs;}; + }; + }); + + inputs = { + #nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; + #nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nur.url = "github:nix-community/NUR"; + nix-colors.url = "github:misterio77/nix-colors"; + systems.url = "github:nix-systems/default"; + flake-parts.url = "github:hercules-ci/flake-parts"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixgl = { + url = "github:nix-community/nixGL/9b4887dbf16933bdc124296434b3898d810b3608"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixvim = { + url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + neovim-nightly-overlay = { + url = "github:nix-community/neovim-nightly-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + flake-utils = { + url = "github:numtide/flake-utils"; + inputs.systems.follows = "systems"; + }; + nixos-wsl = { + url = "github:nix-community/NixOS-WSL"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + csleeptimer = { + url = "git+ssh://gitea@pi1.odie.intranet/odie/csleeptimer.git"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-utils.follows = "flake-utils"; + systems.follows = "systems"; + }; + }; + }; +} diff --git a/profiles/home-manager/kodi@vm/home.nix b/profiles/home-manager/kodi@vm/home.nix new file mode 100644 index 0000000..1592208 --- /dev/null +++ b/profiles/home-manager/kodi@vm/home.nix @@ -0,0 +1,21 @@ +{ + inputs, + vars, + ... +}: let + username = "kodi"; + homeDirectory = "/home/${username}"; +in { + imports = [ + inputs.home-manager-flake.homeModules.base + inputs.home-manager-flake.homeModules.shell + inputs.home-manager-flake.homeModules.mediacenter + { + home = { + inherit username homeDirectory; + language.base = vars.locale; + stateVersion = "23.05"; + }; + } + ]; +} diff --git a/profiles/home-manager/odie@asgard/home.nix b/profiles/home-manager/odie@asgard/home.nix new file mode 100644 index 0000000..452b9b4 --- /dev/null +++ b/profiles/home-manager/odie@asgard/home.nix @@ -0,0 +1,33 @@ +{ + inputs, + outputs, + ... +}: { + imports = [ + inputs.csleeptimer.homeManagerModules.default + outputs.homeManagerModules.base + outputs.homeManagerModules.shell + outputs.homeManagerModules.desktop + outputs.homeManagerModules.development + outputs.homeManagerModules.games + { + desktop = { + enable = true; + awesome = { + enable = false; + }; + }; + programs = { + firefox.enable = false; + keepassxc.enable = false; + }; + services = { + nixGL.enable = true; + borgmatic.enable = true; + nextcloud-client.enable = false; + }; + theme.cursor.enable = false; + theme.gtk.enable = false; + } + ]; +} diff --git a/profiles/nixos/pi0/home.nix b/profiles/home-manager/odie@pi0/home.nix similarity index 100% rename from profiles/nixos/pi0/home.nix rename to profiles/home-manager/odie@pi0/home.nix diff --git a/profiles/home-manager/odie@vm/home.nix b/profiles/home-manager/odie@vm/home.nix new file mode 100644 index 0000000..f826fac --- /dev/null +++ b/profiles/home-manager/odie@vm/home.nix @@ -0,0 +1,6 @@ +{ inputs, ... }: { + imports = [ + inputs.home-manager-flake.homeModules.base + inputs.home-manager-flake.homeModules.shell + ]; +} diff --git a/profiles/home-manager/odie@wanaheim/home.nix b/profiles/home-manager/odie@wanaheim/home.nix new file mode 100644 index 0000000..e6c5738 --- /dev/null +++ b/profiles/home-manager/odie@wanaheim/home.nix @@ -0,0 +1,26 @@ +{ + inputs, + outputs, + ... +}: { + modules = [ + inputs.csleeptimer.homeManagerModules.default + outputs.homeManagerModules.base + outputs.homeManagerModules.shell + outputs.homeManagerModules.desktop + outputs.homeManagerModules.development + outputs.homeManagerModules.games + { + desktop = { + enable = true; + awesome = { + enable = true; + wifi_device = "'wlp3s0'"; + battery_device = "'BAT0'"; + }; + }; + services.picom.enable = false; + programs.rofi.enable = true; + } + ]; +} diff --git a/profiles/home-manager/shell-dev.nix b/profiles/home-manager/shell-dev.nix deleted file mode 100644 index f96ce48..0000000 --- a/profiles/home-manager/shell-dev.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - inputs, - pkgs, - extraSpecialArgs, - modules ? [], - ... -}: -inputs.home-manager.lib.homeManagerConfiguration { - inherit pkgs extraSpecialArgs; - modules = - [ - ../../modules/home-manager/base.nix - ../../modules/home-manager/shell.nix - ../../modules/home-manager/dev.nix - ] - ++ modules; -} diff --git a/profiles/home-manager/shell.nix b/profiles/home-manager/shell.nix deleted file mode 100644 index e2f6220..0000000 --- a/profiles/home-manager/shell.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - inputs, - pkgs, - extraSpecialArgs, - modules ? [], - ... -}: -inputs.home-manager.lib.homeManagerConfiguration { - inherit pkgs extraSpecialArgs; - modules = - [ - ../../modules/home-manager/base.nix - ../../modules/home-manager/shell.nix - ] - ++ modules; -} diff --git a/profiles/nixos/pi0/configuration.nix b/profiles/nixos/pi0/configuration.nix index 5fff86b..ef6ae00 100644 --- a/profiles/nixos/pi0/configuration.nix +++ b/profiles/nixos/pi0/configuration.nix @@ -4,10 +4,13 @@ flakeLib, vars, ... -}: { +}: let + inherit (vars) username hostName; + profile = "${username}@${hostName}"; +in { imports = [ + outputs.nixosModules.base ./hardware-configuration.nix - ../../../modules/nixos/base ]; networking = { @@ -16,12 +19,10 @@ home-manager = flakeLib.mkHomeNixosModule { inherit inputs outputs vars flakeLib; - modules = [ - ../../../modules/home-manager/base.nix - ../../../modules/home-manager/shell.nix - { - services.picom.enable = false; - } - ]; + users.${vars.username} = { + imports = [ + ../../home-manager/${profile}/home.nix + ]; + }; }; } diff --git a/profiles/nixos/vm/configuration.nix b/profiles/nixos/vm/configuration.nix index 495c928..8fbc1db 100644 --- a/profiles/nixos/vm/configuration.nix +++ b/profiles/nixos/vm/configuration.nix @@ -4,26 +4,34 @@ inputs, flakeLib, ... -}: { +}: let + inherit (vars) username hostName; + profile = "${username}@${hostName}"; +in { imports = [ inputs.home-manager.nixosModules.home-manager + outputs.nixosModules.base + outputs.nixosModules.desktop + outputs.nixosModules.wsl ./hardware-configuration.nix - ../../../modules/nixos/base - ../../../modules/nixos/desktop - ../../../modules/nixos/wsl ]; home-manager = flakeLib.mkHomeNixosModule { inherit inputs outputs vars flakeLib; - imports = [ - ../../../modules/home-manager/base.nix - ../../../modules/home-manager/desktop.nix - ../../../modules/home-manager/dev.nix - ../../../modules/home-manager/shell.nix - { - services.picom.enable = false; - } - ]; + users.${vars.username} = let + profile = "${username}@${hostName}"; + in { + imports = [ + ../../home-manager/${profile}/home.nix + ]; + }; + users.kodi = let + profile = "kodi@${hostName}"; + in { + imports = [ + ../../home-manager/${profile}/home.nix + ]; + }; }; system.stateVersion = "23.11"; diff --git a/profiles/nixos/wsl-dev/configuration.nix b/profiles/nixos/wsl-dev/configuration.nix index 1b2f975..2410b1e 100644 --- a/profiles/nixos/wsl-dev/configuration.nix +++ b/profiles/nixos/wsl-dev/configuration.nix @@ -20,14 +20,13 @@ home-manager = flakeLib.mkHomeNixosModule { inherit inputs outputs vars flakeLib; - imports = [ - ../../../modules/home-manager/base.nix - ../../../modules/home-manager/dev.nix - ../../../modules/home-manager/shell.nix - { - services.picom.enable = false; - } - ]; + users.${vars.username} = { + imports = [ + ../../../modules/home-manager/base + ../../../modules/home-manager/development + ../../../modules/home-manager/shell + ]; + }; }; system.stateVersion = "23.11";