dot.nix/iso/dist/desktop.nix
Chris Toph ceec977ad8 Introduced buildable ISO images for desktop and server
- ARM and X86
- Fully configured ISO for dot.nix for easy installation
- TODO: automatic builds with github actions
2025-06-15 20:15:16 -04:00

85 lines
1.8 KiB
Nix

{
config,
lib,
pkgs,
inputs,
...
}:
let
hostSpec = config.hostSpec;
username = "nixos";
user = config.secretsSpec.users.${username};
calamares-nixos-autostart = pkgs.makeAutostartItem {
name = "io.calamares.calamares";
package = pkgs.calamares-nixos;
};
in
{
imports = [
"${inputs.dot-nix}/hosts/global/core"
"${inputs.dot-nix}/hosts/global/common/gnome.nix" # desktop
"${inputs.dot-nix}/hosts/global/common/plymouth.nix" # fancy boot screen
];
hostSpec = {
hostName = "nixos";
username = username;
hashedPassword = user.hashedPassword;
email = user.email;
handle = user.handle;
userFullName = user.fullName;
isServer = false;
isMinimal = false;
};
# Whitelist wheel users to do anything
# This is useful for things like pkexec
#
# WARNING: this is dangerous for systems
# outside the installation-cd and shouldn't
# be used anywhere else.
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
if (subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
'';
environment.systemPackages = with pkgs; [
# Calamares for graphical installation
libsForQt5.kpmcore
calamares-nixos
calamares-nixos-autostart
calamares-nixos-extensions
# Get list of locales
glibcLocales
];
# Support choosing from any locale
i18n.supportedLocales = [ "all" ];
home-manager = lib.mkForce {
extraSpecialArgs = {
inherit pkgs inputs;
inherit (config) secretsSpec hostSpec;
};
users = {
root.home.stateVersion = "24.05"; # Avoid error
${username} = {
imports = [
(import ../home {
inherit
config
hostSpec
inputs
lib
pkgs
;
})
];
};
};
};
}