configuration.nix 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. { config, pkgs, lib, ... }:
  2. let
  3. user = "johron";
  4. storageRoot = "/storage";
  5. folders = [
  6. "Applications"
  7. "Documents"
  8. "Downloads"
  9. "Games"
  10. "Machines"
  11. "Music"
  12. "Pictures"
  13. "Projects"
  14. "Scripts"
  15. "Videos"
  16. "Wineprefixes"
  17. ];
  18. mkBindMount = folder: {
  19. name = "/home/${user}/${folder}";
  20. value = {
  21. device = "${storageRoot}/${folder}";
  22. options = [ "bind" "nofail" "x-systemd.automount" ];
  23. depends = [ storageRoot ];
  24. };
  25. };
  26. in
  27. {
  28. imports = [
  29. ./networking.nix
  30. ./hardware-configuration.nix
  31. ../../nixos/hardware/gpu/nvidia.nix
  32. ../../nixos/hardware/wifi/bcm4360.nix
  33. ../../nixos/hardware/sound
  34. ../../nixos/hardware/bluetooth
  35. ../../nixos/flavors/desktop/sway
  36. ../../nixos/flavors/desktop/sway/greeter-default.nix
  37. ../../nixos/features/system/basic.nix
  38. ../../nixos/features/system/users.nix
  39. ../../nixos/features/system/gaming.nix
  40. ];
  41. nixpkgs.config.allowUnfree = true;
  42. nix.settings.experimental-features = [ "nix-command" "flakes" ];
  43. fileSystems = lib.mkMerge [
  44. (builtins.listToAttrs (map mkBindMount folders))
  45. ];
  46. boot.loader.systemd-boot.enable = true;
  47. boot.loader.efi.canTouchEfiVariables = true;
  48. system.stateVersion = "25.11";
  49. }