my laptops nixos configuration, hopefully less messy this time (but still a lil' messy)
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.

100 lines
2.8KB

  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 = {
  7. url = "github:nix-community/home-manager/release-20.09";
  8. inputs.nixpkgs.follows = "nixpkgs";
  9. };
  10. swatch = {
  11. url = "github:techieAgnostic/swatch";
  12. inputs.nixpkgs.follows = "nixpkgs";
  13. };
  14. agenix = {
  15. url = "github:ryantm/agenix";
  16. inputs.nixpkgs.follows = "nixpkgs";
  17. };
  18. nvim-nightly = {
  19. url = "github:nix-community/neovim-nightly-overlay";
  20. inputs.nixpkgs.follows = "nixpkgs";
  21. };
  22. };
  23. outputs = { self, ...}@inputs: rec {
  24. hydraJobs = {
  25. iwakura."x86_64-linux" = nixosConfigurations.iwakura.config.system.build.toplevel;
  26. };
  27. nixosConfigurations.iwakura = inputs.nixpkgs.lib.nixosSystem {
  28. system = "x86_64-linux";
  29. modules = [
  30. # enable secrets in the store
  31. # inputs.agenix.nixosModules.age
  32. # (import ./secrets { inherit inputs.agenix; })
  33. # enable flakes or we'll be sad
  34. (import ./modules/flakes)
  35. # enable sane garbage collection options
  36. (import ./modules/gc)
  37. # enabling window-manager
  38. (import ./modules/bspwm)
  39. # enable iohk binary cache for haskell dot nix
  40. (import ./modules/iohk)
  41. # neovim + plugins
  42. (import ./modules/neovim)
  43. # disk partitions and such (plus more that needs to be taken out)
  44. (import ./hardware/iwakura)
  45. # sane nameservers because aussie gov blocks everything
  46. (import ./modules/nameservers)
  47. # start mpd
  48. (import ./modules/ncmpcpp)
  49. # FHS runtime for games
  50. (import ./modules/gog-games)
  51. # start hydra CI
  52. (import ./modules/hydra)
  53. # community settings for this laptop
  54. inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t420
  55. inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
  56. # import home manager profiles and set to use same nixpkgs
  57. inputs.home-manager.nixosModules.home-manager {
  58. home-manager = {
  59. useGlobalPkgs = true;
  60. useUserPackages = true;
  61. users = {
  62. root = import ./users/root/home.nix;
  63. thorn = import ./users/thorn/home.nix;
  64. };
  65. };
  66. }
  67. # import nix config user profiles + misc
  68. ({ pkgs, ... }: {
  69. nixpkgs.config.allowUnfree = true;
  70. nixpkgs.overlays = [
  71. inputs.swatch.overlay
  72. inputs.nvim-nightly.overlay
  73. (import ./overlays/picom.nix)
  74. ];
  75. nix.registry.nixpkgs.flake = inputs.nixpkgs;
  76. imports = [
  77. ./users/root
  78. ./users/thorn
  79. ];
  80. })
  81. ];
  82. };
  83. };
  84. }