seeing if it's easier to fork tA's nixos laptop config rather than make one from scratch (more or less).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.2KB

  1. {
  2. description = "Iwakura System Flake";
  3. inputs = {
  4. nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  5. nixos-hardware.url = "github:NixOS/nixos-hardware";
  6. home-manager.url = "github:nix-community/home-manager/release-20.09";
  7. swatch = {
  8. url = "github:techieAgnostic/swatch";
  9. inputs.nixpkgs.follows = "nixpkgs";
  10. };
  11. vim = {
  12. url = "github:techieAgnostic/vim";
  13. inputs.nixpkgs.follows = "nixpkgs";
  14. };
  15. agenix = {
  16. url = "github:ryantm/agenix";
  17. inputs.nixpkgs.follows = "nixpkgs";
  18. };
  19. };
  20. outputs = { self, nixpkgs, home-manager, agenix, nixos-hardware, swatch, vim, ...}: {
  21. nixosConfigurations.iwakura = nixpkgs.lib.nixosSystem {
  22. system = "x86_64-linux";
  23. modules = [
  24. # enable secrets in the store
  25. agenix.nixosModules.age
  26. (import ./secrets { inherit agenix; })
  27. # enable flakes or we'll be sad
  28. (import ./modules/flakes)
  29. # enable sane garbage collection options
  30. (import ./modules/gc)
  31. # enabling window-manager
  32. (import ./modules/bspwm)
  33. # emacs + package override
  34. (import ./modules/emacs)
  35. # disk partitions and such (plus more that needs to be taken out)
  36. (import ./hardware/iwakura)
  37. # sane nameservers because aussie gov blocks everything
  38. (import ./modules/nameservers)
  39. # community settings for this laptop
  40. nixos-hardware.nixosModules.lenovo-thinkpad-t420
  41. nixos-hardware.nixosModules.common-pc-laptop-ssd
  42. # import home manager profiles and set to use same nixpkgs
  43. home-manager.nixosModules.home-manager {
  44. home-manager = {
  45. useGlobalPkgs = true;
  46. useUserPackages = true;
  47. users = {
  48. root = import ./users/root/home.nix;
  49. thorn = import ./users/thorn/home.nix;
  50. };
  51. };
  52. }
  53. # import nix config user profiles + misc
  54. ({ pkgs, ... }: {
  55. nixpkgs.overlays = [
  56. swatch.overlay
  57. vim.overlay
  58. (import ./overlays/picom.nix)
  59. ];
  60. nix.registry.nixpkgs.flake = nixpkgs;
  61. imports = [
  62. ./users/root
  63. ./users/thorn
  64. ];
  65. })
  66. ];
  67. };
  68. };
  69. }