many improvements

This commit is contained in:
2025-07-17 18:10:37 +02:00
parent 0a731ef17f
commit 82e26ee498
58 changed files with 1970 additions and 1005 deletions

View File

@@ -0,0 +1,14 @@
Installed using
```
> sudo nixos-install --root /tmp/new-install/ --flake .#nyx --impure --no-root-passwd
```
where `/tmp/new-install` was the moint point of the target FS.
The root user is effectively deactivated, hence the additional setup:
- users are part of the `wheel` group
- password needs to be set before first boot:
- `nix-enter --root /tmp/new-install`
- `passwd <username>`

View File

@@ -0,0 +1,27 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
boot.loader = {
systemd-boot.enable = true;
timeout = 0;
efi.canTouchEfiVariables = true;
};
# cause it is so inconveniently located
services.logind.powerKey = "ignore";
services.logind.lidSwitch = "sleep";
services.logind.lidSwitchDocked = "ignore";
# requires too many shenanigans so I just install using --no-root-passwd
# users.users.root.hashedPassword = "!";
nixpkgs.config.allowUnfree = true;
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "24.05"; # Did you read the comment?
}

View File

@@ -0,0 +1,37 @@
{
config = {
nix-config = {
networking.hostName = "nyx";
userName = "remy";
};
};
# Merge the configuration and hardware configuration
imports = [
./configuration.nix
./hardware-configuration.nix
../../modules/nixos/backup.nix
../../modules/nixos/bluetooth.nix
../../modules/nixos/flakes.nix
../../modules/nixos/flatpak.nix
../../modules/nixos/fonts.nix
../../modules/nixos/hyprland.nix
../../modules/nixos/language.nix
../../modules/nixos/ld.nix
../../modules/nixos/monitoring.nix
../../modules/nixos/networking.nix
../../modules/nixos/nh.nix
../../modules/nixos/pipewire.nix
../../modules/nixos/podman.nix
../../modules/nixos/power.nix
../../modules/nixos/stylix.nix
../../modules/nixos/user.nix
../../utils/binary-cache.nix
../../utils/garbage-collection.nix
../../utils/unfree.nix
];
}

View File

@@ -0,0 +1,59 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/1ea0784c-4eeb-46f1-a0ae-f6b311b27bd1";
fsType = "btrfs";
options = [ "subvol=@" ];
};
boot.initrd.luks.devices."luks-root" = {
device = "/dev/disk/by-uuid/8832c090-9ca7-4a9c-8cfd-cf43cb59b3d3";
crypttabExtraOpts = [ "fido2-token=auto" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/86C2-FD4D";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/1ea0784c-4eeb-46f1-a0ae-f6b311b27bd1";
fsType = "btrfs";
options = [ "subvol=@home" ];
};
# TODO - only enable this if the user remy exists
fileSystems."/home/${config.nix-config.userName}/scratch" =
{ device = "/dev/disk/by-uuid/1ea0784c-4eeb-46f1-a0ae-f6b311b27bd1";
fsType = "btrfs";
options = [ "subvol=@scratch" ];
# TODO make it owned by the user
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wireguard-home.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp192s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}