nixos/flake.nix
Malte Tammena 87d550fcb0 chore: update
• Updated input 'devshell':
    'github:numtide/devshell/2d45b54ca4a183f2fdcf4b19c895b64fbf620ee8?narHash=sha256-HzpgM/wc3aqpnHJJ2oDqPBkNsqWbW0WfWUO8lKu8nGk%3D' (2024-03-22)
  → 'github:numtide/devshell/1ebbe68d57457c8cae98145410b164b5477761f4?narHash=sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY%3D' (2024-06-03)
• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2?narHash=sha256-Dt/wOWeW6Sqm11Yh%2B2%2Bt0dfEWxoMxGBvv3JpIocFl9E%3D' (2024-03-01)
  → 'github:hercules-ci/flake-parts/2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8?narHash=sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw%3D' (2024-06-01)
• Updated input 'flake-parts/nixpkgs-lib':
    'github:NixOS/nixpkgs/1536926ef5621b09bba54035ae2bb6d806d72ac8?dir=lib&narHash=sha256-cy6ArO4k5qTx%2Bl5o%2B0mL9f5fa86tYUX3ozE1S%2BTxlds%3D' (2024-02-29)
  → 'eb9ceca17d.tar.gz?narHash=sha256-lIbdfCsf8LMFloheeE6N31%2BBMIeixqyQWbSr2vk79EQ%3D' (2024-06-01)
• Updated input 'home-manager':
    'github:nix-community/home-manager/1c2c5e4cabba4c43504ef0f8cc3f3dfa284e2dbb?narHash=sha256-WJOahf%2B6115%2BGMl3wUfURu8fszuNeJLv9qAWFQl3Vmo%3D' (2024-03-22)
  → 'github:nix-community/home-manager/0a7ffb28e5df5844d0e8039c9833d7075cdee792?narHash=sha256-sKrD/utGvmtQALvuDj4j0CT3AJXP1idOAq2p%2B27TpeE%3D' (2024-06-16)
• Updated input 'hydra':
    'github:NixOS/hydra/8f56209bd6f3b9ec53d50a23812a800dee7a1969?narHash=sha256-mhEj02VruXPmxz3jsKHMov2ERNXk9DwaTAunWEO1iIQ%3D' (2024-03-08)
  → 'github:NixOS/hydra/b3e0d9a8b78d55e5fea394839524f5a24d694230?narHash=sha256-WAJJ4UL3hsqsfZ05cHthjEwItnv7Xy84r2y6lzkBMh8%3D' (2024-05-23)
• Updated input 'hydra/nix':
    'github:NixOS/nix/8f42912c80c0a03f62f6a3d28a3af05a9762565d?narHash=sha256-fjx%2BnCOzuSxGWfhwWWc8hCsLFZAjZLDDUcbBtldRqbk%3D' (2024-01-30)
  → 'github:NixOS/nix/1c8150ac312b5f9ba1b3f6768ff43b09867e5883?narHash=sha256-gW1mO/CvsQQ5gvgiwzxsGhPFI/tx30NING%2BqgF5Do0s%3D' (2024-04-23)
• Added input 'hydra/nix/flake-parts':
    'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d?narHash=sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm%2BGpZNw%3D' (2024-04-01)
• Added input 'hydra/nix/flake-parts/nixpkgs-lib':
    follows 'hydra/nix/nixpkgs'
• Added input 'hydra/nix/pre-commit-hooks':
    'github:cachix/pre-commit-hooks.nix/40e6053ecb65fcbf12863338a6dcefb3f55f1bf8?narHash=sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y%3D' (2024-04-12)
• Added input 'hydra/nix/pre-commit-hooks/flake-compat':
    follows 'hydra/nix'
• Added input 'hydra/nix/pre-commit-hooks/flake-utils':
    'github:numtide/flake-utils/5aed5285a952e0b949eb3ba02c12fa4fcfef535f?narHash=sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau%2B/OdUAjtQ0rA%3D' (2022-11-02)
• Added input 'hydra/nix/pre-commit-hooks/gitignore':
    follows 'hydra/nix'
• Added input 'hydra/nix/pre-commit-hooks/nixpkgs':
    follows 'hydra/nix/nixpkgs'
• Added input 'hydra/nix/pre-commit-hooks/nixpkgs-stable':
    follows 'hydra/nix/nixpkgs'
• Updated input 'hydra/nixpkgs':
    'github:NixOS/nixpkgs/a1982c92d8980a0114372973cbdfe0a307f1bdea?narHash=sha256-K5eJHmL1/kev6WuqyqqbS1cdNnSidIZ3jeqJ7GbrYnQ%3D' (2024-01-12)
  → 'github:NixOS/nixpkgs/1d6a23f11e44d0fb64b3237569b87658a9eb5643?narHash=sha256-CzZwhqyLlebljv1zFS2KWVH/3byHND0LfaO1jKsGuVo%3D' (2024-04-11)
• Removed input 'hydra/nixpkgs-for-fileset'
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/86dc46ffea2fa72abe1228c1fad1b42d1507e45d?narHash=sha256-K5MByS37KyZ3%2BUPV/UAP6hscqiXtGQVevAA7nkGd96Y%3D' (2024-03-24)
  → 'github:hyprwm/Hyprland/b15be9c77de593581007de53b2bbca97d121900a?narHash=sha256-IIUhBjiDa0TjvEJb1WTJ9TM8PTGJjl%2BsOWfSdZKIJNA%3D' (2024-06-16)
• Updated input 'hyprland/hyprcursor':
    'github:hyprwm/hyprcursor/6a92473237f430399a417e1c2da9d7fcd4970086?narHash=sha256-5vvhCSUGG9TA2G1eIRgokuYizhRnZu0ZbcU1MXfHsUE%3D' (2024-03-21)
  → 'github:hyprwm/hyprcursor/dd3a853c8239d1c3f3f37de7d2b8ae4b4f3840df?narHash=sha256-VfMg3RsnRLQzbq0hFIh1dCM09b5C/F/qPFUOgU/CRi0%3D' (2024-06-14)
• Updated input 'hyprland/hyprcursor/hyprlang':
    'github:hyprwm/hyprlang/a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2?narHash=sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk%3D' (2024-03-08)
  → follows 'hyprland/hyprlang'
• Removed input 'hyprland/hyprcursor/hyprlang/nixpkgs'
• Removed input 'hyprland/hyprcursor/hyprlang/systems'
• Removed input 'hyprland/hyprland-protocols'
• Removed input 'hyprland/hyprland-protocols/nixpkgs'
• Removed input 'hyprland/hyprland-protocols/systems'
• Updated input 'hyprland/hyprlang':
    'github:hyprwm/hyprlang/a2f39421144d42541c057be235154ce21b76c0f6?narHash=sha256-tt0UgVKWeLQ%2BtFzvqrm4uAZbzONwdGshpfiLHAQ1P2c%3D' (2024-03-20)
  → 'github:hyprwm/hyprlang/ec6938c66253429192274d612912649a0cfe4d28?narHash=sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM%2BJj94%3D' (2024-06-08)
• Added input 'hyprland/hyprlang/hyprutils':
    follows 'hyprland/hyprutils'
• Added input 'hyprland/hyprutils':
    'github:hyprwm/hyprutils/8e10e0626fb26a14b859b3811b6ed7932400c86e?narHash=sha256-8KvVqtApNt4FWTdn1TqVvw00rpqyG9UuUPA2ilPVD1U%3D' (2024-06-13)
• Added input 'hyprland/hyprutils/nixpkgs':
    follows 'hyprland/nixpkgs'
• Added input 'hyprland/hyprutils/systems':
    follows 'hyprland/systems'
• Added input 'hyprland/hyprwayland-scanner':
    'github:hyprwm/hyprwayland-scanner/1419520d5f7f38d35e05504da5c1b38212a38525?narHash=sha256-nqDYXATNkyGXVmNMkT19fT4sjtSPBDS1LLOxa3Fueo4%3D' (2024-06-11)
• Added input 'hyprland/hyprwayland-scanner/nixpkgs':
    follows 'hyprland/nixpkgs'
• Added input 'hyprland/hyprwayland-scanner/systems':
    follows 'hyprland/systems'
• Removed input 'hyprland/wlroots'
• Updated input 'hyprland/xdph':
    'github:hyprwm/xdg-desktop-portal-hyprland/2d2fb547178ec025da643db57d40a971507b82fe?narHash=sha256-jYqJM5khksLIbqSxCLUUcqEgI%2BO2LdlSlcMEBs39CAU%3D' (2024-03-01)
  → 'github:hyprwm/xdg-desktop-portal-hyprland/24be4a26f0706e456fca1b61b8c79f7486a9e86d?narHash=sha256-KsX7sAwkEFpXiwyjt0HGTnnrUU58wW1jlzj5IA/LRz8%3D' (2024-06-13)
• Updated input 'hyprland/xdph/hyprland-protocols':
    follows 'hyprland/hyprland-protocols'
  → 'github:hyprwm/hyprland-protocols/0c2ce70625cb30aef199cb388f99e19a61a6ce03?narHash=sha256-zOEwiWoXk3j3%2BEoF3ySUJmberFewWlagvewDRuWYAso%3D' (2023-08-11)
• Added input 'hyprland/xdph/hyprland-protocols/nixpkgs':
    follows 'hyprland/xdph/nixpkgs'
• Added input 'hyprland/xdph/hyprland-protocols/systems':
    follows 'hyprland/xdph/systems'
• Updated input 'hyprland-contrib':
    'github:hyprwm/contrib/536f00c5895015da1e7aa85bbee9aa6dcd149e69?narHash=sha256-BxWizZAc845ks9BjEXosRjfBv/NMr1WwoORBQuixfII%3D' (2024-03-21)
  → 'github:hyprwm/contrib/29a8374f4b9206d5c4af84aceb7fb5dff441ea60?narHash=sha256-fuWpgh8KasByIJWE%2BxVd37Al0LV5YAn6s871T50qVY0%3D' (2024-06-15)
• Updated input 'jovian-nixos':
    'github:Jovian-Experiments/Jovian-NixOS/1171169117f63f1de9ef2ea36efd8dcf377c6d5a?narHash=sha256-dRdFjStMA7GeuD/V4vzKblzuHwxMPgzEboRleVdZlUM%3D' (2024-03-23)
  → 'github:Jovian-Experiments/Jovian-NixOS/f02a01aab60c68b7898043c2e7f5bc97c93fb07b?narHash=sha256-vOsklVeiGCvf9LBOz0sjHMNvohgUw8/Oe/8MpdFnF%2BY%3D' (2024-06-15)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/7559df1e4af972d5f1de87975b5ef6a8d7559db2?narHash=sha256-19KQXya5VERUXOdeEJJN%2BzOqtvuE6MV3qTk9Gr4J9Uo%3D' (2024-03-24)
  → 'github:NixOS/nixos-hardware/cde8f7e11f036160b0fd6a9e07dc4c8e4061cf06?narHash=sha256-1obyIuQPR/Kq1j5/i/5EuAfQrDwjYnjCDG8iLtXmBhQ%3D' (2024-06-16)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/44d0940ea560dee511026a53f0e2e2cde489b4d4?narHash=sha256-YN/Ciidm%2BA0fmJPWlHBGvVkcarYWSC%2Bs3NTPk/P%2Bq3c%3D' (2024-03-23)
  → 'github:NixOS/nixpkgs/e9ee548d90ff586a6471b4ae80ae9cfcbceb3420?narHash=sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY%3D' (2024-06-13)
• Updated input 'nixpkgs-wayland':
    'github:nix-community/nixpkgs-wayland/59f7ad2c27737a7ea7ad16a48c95631f159ef822?narHash=sha256-zaxF0fvo/FH1yVBsNbtOD%2Bb%2Bigp3g4IA8%2BcOdx44KzA%3D' (2024-03-24)
  → 'github:nix-community/nixpkgs-wayland/937cdd5ba09099b20d665cba048959f505fd0880?narHash=sha256-Hh5FRnI0WgDmSgs0Xky2VKtSDibcWOOEA1T79/tIer0%3D' (2024-06-16)
• Updated input 'nixpkgs-wayland/flake-compat':
    'github:nix-community/flake-compat/8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c?narHash=sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw%3D' (2023-06-29)
  → 'github:nix-community/flake-compat/38fd3954cf65ce6faf3d0d45cd26059e059f07ea?narHash=sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE%3D' (2024-06-02)
• Updated input 'nixpkgs-wayland/lib-aggregate':
    'github:nix-community/lib-aggregate/120535dff702c551ec76a125a181d90131407264?narHash=sha256-s6z371miAZonduv53LQzjthvNCs4R%2BoTbv9cRu%2BiyL8%3D' (2024-03-24)
  → 'github:nix-community/lib-aggregate/17a1c1bfca963a2776969866aaa07744d7ac9135?narHash=sha256-pVGgM3MOOpMMqprkrMkuWwhC1dsw6Xt7aRGaBkMQqG0%3D' (2024-06-16)
• Updated input 'nixpkgs-wayland/lib-aggregate/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/b2a1eeef8c185f6bd27432b053ff09d773244cbc?narHash=sha256-knrTvpl81yGFHIpm1SsLDApe0thFkw1cl3ISAMPmP/0%3D' (2024-03-24)
  → 'github:nix-community/nixpkgs.lib/6fba0c5a27b984914794ffdab8d7bb5c29ab11b6?narHash=sha256-2oGRKxl3qEyRH2DJRiVtLeJICcybXMkqjWQYODINL9M%3D' (2024-06-16)
• Updated input 'nixpkgs-wayland/nix-eval-jobs':
    'github:nix-community/nix-eval-jobs/6b03a93296faf174b97546fd573c8b379f523a8d?narHash=sha256-TLj334vRwFtSym3m%2BNnKcNCnKKPNoTC/TDZL40vmOso%3D' (2024-01-14)
  → 'github:nix-community/nix-eval-jobs/b6169e08e76e10b673d1b54f944cddb1e7cbea97?narHash=sha256-e3/cvm7bAn0RsTBcPfHwuYOi2lwoO4jpTn4nmMSvHfU%3D' (2024-06-06)
• Updated input 'nixpkgs-wayland/nix-eval-jobs/flake-parts':
    'github:hercules-ci/flake-parts/34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5?narHash=sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS%2BSRRWZ2TMda7E%3D' (2023-12-01)
  → 'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d?narHash=sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm%2BGpZNw%3D' (2024-04-01)
• Updated input 'nixpkgs-wayland/nix-eval-jobs/nix-github-actions':
    'github:nix-community/nix-github-actions/93e39cc1a087d65bcf7a132e75a650c44dd2b734?narHash=sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo%3D' (2023-11-28)
  → 'github:nix-community/nix-github-actions/5163432afc817cf8bd1f031418d1869e4c9d5547?narHash=sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y%3D' (2023-12-29)
• Updated input 'nixpkgs-wayland/nix-eval-jobs/nixpkgs':
    'github:NixOS/nixpkgs/d6863cbcbbb80e71cecfc03356db1cda38919523?narHash=sha256-SQmng1EnBFLzS7WSRyPM9HgmZP2kLJcPAz%2BUg/nug6o%3D' (2023-12-21)
  → 'github:NixOS/nixpkgs/ad7efee13e0d216bf29992311536fce1d3eefbef?narHash=sha256-OUt8xQFmBU96Hmm4T9tOWTu4oCswCzoVl%2BpxSq/kiFc%3D' (2024-05-06)
• Updated input 'nixpkgs-wayland/nix-eval-jobs/treefmt-nix':
    'github:numtide/treefmt-nix/2961375283668d867e64129c22af532de8e77734?narHash=sha256-RnFBbLbpqtn4AoJGXKevQMCGhra4h6G2MPcuTSZZQ%2Bg%3D' (2023-12-19)
  → 'github:numtide/treefmt-nix/49dc4a92b02b8e68798abd99184f228243b6e3ac?narHash=sha256-N3QDhoaX%2BpaWXHbEXZapqd1r95mdshxToGowtjtYkGI%3D' (2024-04-01)
• Updated input 'nixpkgs-wayland/nixpkgs':
    'github:nixos/nixpkgs/44d0940ea560dee511026a53f0e2e2cde489b4d4?narHash=sha256-YN/Ciidm%2BA0fmJPWlHBGvVkcarYWSC%2Bs3NTPk/P%2Bq3c%3D' (2024-03-23)
  → 'github:nixos/nixpkgs/e9ee548d90ff586a6471b4ae80ae9cfcbceb3420?narHash=sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY%3D' (2024-06-13)
• Updated input 'pre-commit-hooks-nix':
    'github:cachix/pre-commit-hooks.nix/e611897ddfdde3ed3eaac4758635d7177ff78673?narHash=sha256-6hOpUiuxuwpXXc/xfJsBUJeqqgGI%2BJMJuLo45aG3cKc%3D' (2024-03-20)
  → 'github:cachix/pre-commit-hooks.nix/cc4d466cb1254af050ff7bdf47f6d404a7c646d1?narHash=sha256-7XfBuLULizXjXfBYy/VV%2BSpYMHreNRHk9nKMsm1bgb4%3D' (2024-06-06)
• Removed input 'pre-commit-hooks-nix/flake-utils'
• Removed input 'pre-commit-hooks-nix/flake-utils/systems'
• Updated input 'qmk-udev-rules':
    'github:qmk/qmk_firmware/4afbade6d122183920a888c8e6e1de4581e657fa?narHash=sha256-8tn8zPkGHDojHX1pd53x8ad5iqvpt1T3jzEbBONXujo%3D' (2024-03-22)
  → 'github:qmk/qmk_firmware/4864d5afca09cbd4b0bfc7e7cef505ad602b0c9c?narHash=sha256-ppwZCR0UKPqTC7LN2JhHKRixTRzHUyZ6iAdo4cTdp14%3D' (2024-06-17)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/405987a66cce9a4a82f321f11b205982a7127c88?narHash=sha256-N%2BPp3/8H%2Brd7cO71VNV/ovV/Kwt%2BXNeUHNhsmyTabdM%3D' (2024-03-24)
  → 'github:Mic92/sops-nix/797ce4c1f45a85df6dd3d9abdc53f2691bea9251?narHash=sha256-Pm9I/BMQHbsucdWf6y9G3xBZh3TMlThGo4KBbeoeczg%3D' (2024-06-16)
• Updated input 'sops-nix/nixpkgs-stable':
    'github:NixOS/nixpkgs/ac6bdf6181666ebb4f90dd20f31e2fa66ede6b68?narHash=sha256-eEu5y4J145BYDw9o/YEmeJyqh8blgnZwuz9k234zuWc%3D' (2024-03-23)
  → 'github:NixOS/nixpkgs/c884223af91820615a6146af1ae1fea25c107005?narHash=sha256-v43N1gZLcGkhg3PdcrKUNIZ1L0FBzB2JqhIYEyKAHEs%3D' (2024-06-15)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/7ee5aaac63c30d3c97a8c56efe89f3b2aa9ae564?narHash=sha256-nehQK/XTFxfa6rYKtbi8M1w%2BIU1v5twYhiyA4dg1vpg%3D' (2024-03-18)
  → 'github:numtide/treefmt-nix/68eb1dc333ce82d0ab0c0357363ea17c31ea1f81?narHash=sha256-ULzoKzEaBOiLRtjeY3YoGFJMwWSKRYOic6VNw2UyTls%3D' (2024-06-16)
2024-06-17 11:46:21 +02:00

198 lines
6.5 KiB
Nix

{
description = "Malte Tammena's system configuration";
inputs = {
flake-parts.url = "github:hercules-ci/flake-parts";
devshell.url = "github:numtide/devshell";
treefmt-nix.url = "github:numtide/treefmt-nix";
pre-commit-hooks-nix.url = "github:cachix/pre-commit-hooks.nix";
nixpkgs.url = "nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware";
custom-udev-rules.url = "github:MalteT/custom-udev-rules";
nix-wallpaper = {
url = "github:lunik1/nix-wallpaper";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs-wayland = {
url = "github:nix-community/nixpkgs-wayland";
};
jovian-nixos = {
url = "github:Jovian-Experiments/Jovian-NixOS";
inputs.nixpkgs.follows = "nixpkgs";
};
mensa = {
url = "github:MalteT/mensa/main";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
fend = {
url = "github:MalteT/fend/flake";
inputs.nixpkgs.follows = "nixpkgs";
};
hydra = {
url = "github:NixOS/hydra";
};
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland-contrib = {
url = "github:hyprwm/contrib";
inputs.nixpkgs.follows = "nixpkgs";
};
qmk-udev-rules = {
url = "github:qmk/qmk_firmware";
flake = false;
};
};
nixConfig = {
# Only usefull if you're part of my VPN
extra-substituters = ["http://cache.home"];
};
outputs = inputs @ {flake-parts, ...}: let
# Overlays useful to most of my systems
overlaysSharedByAll = [
inputs.hyprland-contrib.overlays.default
(_: super: {
# Add my mensa tool
inherit (inputs.mensa.packages.x86_64-linux) mensa;
# TODO: Replace with upstream
inherit (inputs.fend.packages.x86_64-linux) fend;
hydra = inputs.hydra.packages.x86_64-linux.default;
# TODO: Remove once hydra fixes these removed aliases
inherit (super.perlPackages) buildPerlPackage;
netcat-openbsd = super.libressl.nc;
nix-wallpaper = inputs.nix-wallpaper.packages.x86_64-linux.default;
})
(import ./overlays/qmk-udev-rules.nix)
];
# Modules useful to most of my systems
modulesSharedByAllSystems = [
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModules.home-manager
./modules/base-system.nix
];
# The list of all hosts known to me
listOfHosts = let
hostDir = builtins.readDir ./hosts;
in
builtins.attrNames hostDir;
in
flake-parts.lib.mkFlake {inherit inputs;} {
# Flake-parts modules to use
imports = [
inputs.devshell.flakeModule
inputs.treefmt-nix.flakeModule
inputs.pre-commit-hooks-nix.flakeModule
];
# Available systems, only x86 for now
systems = ["x86_64-linux"];
perSystem = {
pkgs,
self',
config,
...
}: {
# Configure treefmt
treefmt.projectRootFile = "flake.nix";
treefmt.programs = {
alejandra.enable = true;
shellcheck.enable = true;
shfmt.enable = true;
};
# Configure pre-commit checks
pre-commit.settings.hooks.deadnix.enable = true;
pre-commit.settings.hooks.treefmt.enable = true;
pre-commit.settings.hooks.shellcheck.enable = true;
pre-commit.settings.hooks.markdownlint.enable = true;
# Load all packages from ./pkgs
packages = let
pkgFiles = builtins.attrNames (builtins.readDir ./pkgs);
toPackage = file: {
name = builtins.replaceStrings [".nix"] [""] file;
value = pkgs.callPackage ./pkgs/${file} {inherit inputs;};
};
in
builtins.listToAttrs (builtins.map toPackage pkgFiles);
# Create a useable devshell for me
devShells.default = pkgs.mkShell {
name = "dev";
shellHook = ''
${config.pre-commit.installationScript}
echo 1>&2 "Welcome to the development shell!"
'';
packages = [
pkgs.nil
pkgs.pre-commit
pkgs.ssh-to-age
self'.packages.rebuild
self'.packages.personal-cache
self'.packages.all-hosts
self'.packages.option
self'.packages.test-config
];
};
};
# Useful modules and all those from ./modules
flake.nixosModules =
{
homeManagerConfig = _: {
home-manager.verbose = true;
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
};
}
// (let
removeSuffix = builtins.replaceStrings [".nix"] [""];
moduleFiles = builtins.attrNames (builtins.readDir ./modules);
listOfModules = builtins.map removeSuffix moduleFiles;
toModule = name: {
inherit name;
value = builtins.readFile ./modules/${name};
};
in
builtins.listToAttrs (builtins.map toModule listOfModules));
# All my system's configurations
flake.nixosConfigurations = let
genSystem = name: {
inherit name;
value = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = modulesSharedByAllSystems ++ [{nixpkgs.overlays = overlaysSharedByAll;} ./hosts/${name}/default.nix];
};
};
in
builtins.listToAttrs (builtins.map genSystem listOfHosts);
# Additional library functions
flake.lib = (builtins.import ./lib) {inherit (inputs.nixpkgs) lib;};
# Iso for USB
flake.packages.x86_64-linux.iso = inputs.self.nixosConfigurations.radix-balthica.config.system.build.isoImage;
# VM for testing
flake.packages.x86_64-linux.vm = inputs.self.nixosConfigurations.radix-balthica.config.system.build.vm;
# Copy most things to hydraJobs so hydra evaluates and builds them
flake.hydraJobs = {
inherit (inputs.self) packages devShells;
nixosConfigurations.x86_64-linux = builtins.listToAttrs (builtins.map (name: {
inherit name;
value = inputs.self.nixosConfigurations.${name}.config.system.build.toplevel;
})
listOfHosts);
};
};
}