Archived
LXC hosts (device busy fix): modules/platforms/lxc.nix now imports nixpkgs' own virtualisation/proxmox-lxc.nix, giving every lxc-* host a real config.system.build.tarball output — a directly `pct restore`-able Proxmox container image. This is the actual bug fix behind the "cannot remove real root directory: device busy or in use" error: lxc-* targets were only reachable through nixos-install, which bind-mounts / onto /mnt for containers (no raw disk to partition) and then correctly refuses to modify the filesystem it's currently running on. auto-install.sh's menu now excludes lxc-* targets entirely (they deploy via nix build + pct restore instead, see docs/auto-installer.md) — and, on the same reasoning, also excludes `installer`/`proxmox-lxc`, which are the installer image's own flake targets, not deployable hosts. manageHostName = true keeps host.nix's declared hostnames (upstream's default would let Proxmox's ambient container config win instead); privileged = false matches how these containers are actually created. Eval warnings, now zero across all 19 nixosConfigurations + 4 packages: - Multiple password options (root/nixos in the installer): nixpkgs' own installer profile sets initialHashedPassword = "" for passwordless login, conflicting with our explicit hashedPassword. Force-nulled the upstream option rather than adopting passwordless login, since this image now also boots over LAN PXE with PasswordAuthentication enabled. - boot.zfs.forceImportRoot default value: set explicitly to false (matching the two places that already did) in modules/common/configuration.nix and modules/installer/common.nix, covering every host and the installer alike. - Deprecated pkgs.system in modules/build-types/gui.nix: switched to pkgs.stdenv.hostPlatform.system. All confirmed non-behavioral where it matters: unrelated hosts' drvPaths are byte-identical to their pre-existing baselines throughout. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01La55Nsss8jZ7ZuzUV9mfot
74 lines
1.5 KiB
Nix
74 lines
1.5 KiB
Nix
{ config, pkgs, lib, inputs, ... }:
|
|
|
|
{
|
|
environment.systemPackages = with pkgs; [
|
|
inputs.nixos-conf-editor.packages.${pkgs.stdenv.hostPlatform.system}.nixos-conf-editor
|
|
nodejs
|
|
appimage-run
|
|
seahorse
|
|
vscode
|
|
p7zip
|
|
popsicle # balena-etcher
|
|
shotcut
|
|
gimp
|
|
pdfarranger
|
|
terminator
|
|
libreoffice-qt
|
|
transmission_4-qt
|
|
];
|
|
|
|
boot.loader.grub.useOSProber = true;
|
|
|
|
services = {
|
|
xserver = {
|
|
enable = true;
|
|
|
|
displayManager = {
|
|
lightdm.enable = true;
|
|
sessionCommands = ''
|
|
eval $(gnome-keyring-daemon --start --components=secrets,ssh)
|
|
export SSH_AUTH_SOCK
|
|
'';
|
|
};
|
|
|
|
desktopManager.cinnamon.enable = true;
|
|
|
|
xkb = {
|
|
layout = "au";
|
|
variant = "";
|
|
};
|
|
};
|
|
|
|
printing.enable = true;
|
|
|
|
pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
};
|
|
|
|
xrdp = {
|
|
enable = true;
|
|
defaultWindowManager = "cinnamon-session";
|
|
openFirewall = true;
|
|
};
|
|
|
|
gnome.gnome-keyring.enable = true;
|
|
};
|
|
|
|
security = {
|
|
rtkit.enable = true;
|
|
pam.services.login.enableGnomeKeyring = true;
|
|
};
|
|
|
|
# The networkmanager group only exists when NM is actually enabled — the
|
|
# lxc platform module force-disables it, so don't add the user to a group
|
|
# that won't exist there.
|
|
users.users.nixos.extraGroups = lib.mkIf config.networking.networkmanager.enable [ "networkmanager" ];
|
|
|
|
programs.firefox.enable = true;
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
}
|