Compare commits

..

No commits in common. "ec5b640f4d26a3562f9ae0fba22442dbff7f7d66" and "130e6c5e28d7908e5e2380ab1e042b4750915f5b" have entirely different histories.

73 changed files with 354 additions and 688 deletions

View file

@ -1,29 +1,12 @@
{
"nodes": {
"TP-calcul-parallele": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1702648833,
"narHash": "sha256-gTEE0OrbXHtqjlvSa8d99lzTKfxK/H7VNY3dF38xXPM=",
"ref": "refs/heads/master",
"rev": "352ce6df4e77f5fe7de6b804e14422cda2f6fcff",
"revCount": 3,
"type": "git",
"url": "https://git.fainsin.bzh/ENSEEIHT/TP-calcul-parallele"
},
"original": {
"type": "git",
"url": "https://git.fainsin.bzh/ENSEEIHT/TP-calcul-parallele"
}
},
"agenix": {
"inputs": {
"agenix": "agenix_2",
"crane": "crane",
"flake-utils": "flake-utils",
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
],
@ -163,7 +146,7 @@
},
"disko": {
"inputs": {
"nixpkgs": "nixpkgs_2"
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1702569759,
@ -233,59 +216,7 @@
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1701473968,
"narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1701473968,
"narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"lanzaboote",
@ -306,7 +237,7 @@
"type": "github"
}
},
"flake-parts_4": {
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixos-anywhere",
@ -327,6 +258,42 @@
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1701473968,
"narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_4": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1701473968,
"narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_5": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_3"
@ -367,42 +334,6 @@
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_5"
},
"locked": {
"lastModified": 1701473968,
"narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_8": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_6"
},
"locked": {
"lastModified": 1701473968,
"narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_9": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_7"
},
"locked": {
"lastModified": 1696343447,
"narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=",
@ -421,11 +352,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
@ -456,24 +387,6 @@
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1685518550,
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"inputs": {
"systems": "systems_5"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
@ -510,27 +423,6 @@
"type": "github"
}
},
"gitignore_2": {
"inputs": {
"nixpkgs": [
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1660459072,
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -554,7 +446,7 @@
"hyprland": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_2",
"systems": "systems_2",
"wlroots": "wlroots",
"xdph": "xdph"
@ -602,9 +494,9 @@
"inputs": {
"crane": "crane_2",
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts_3",
"flake-parts": "flake-parts",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_3",
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay_2"
},
@ -625,10 +517,10 @@
"nixos-anywhere": {
"inputs": {
"disko": "disko_2",
"flake-parts": "flake-parts_4",
"flake-parts": "flake-parts_2",
"nixos-images": "nixos-images",
"nixos-stable": "nixos-stable",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_4",
"treefmt-nix": "treefmt-nix"
},
"locked": {
@ -703,16 +595,16 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1702312524,
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
"lastModified": 1702272962,
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
@ -790,42 +682,6 @@
}
},
"nixpkgs-lib_5": {
"locked": {
"dir": "lib",
"lastModified": 1701253981,
"narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib_6": {
"locked": {
"dir": "lib",
"lastModified": 1701253981,
"narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib_7": {
"locked": {
"dir": "lib",
"lastModified": 1696019113,
@ -859,55 +715,7 @@
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1685801374,
"narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c37ca420157f4abc31e26f436c1145f8951ff373",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1702312524,
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1702312524,
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_12": {
"locked": {
"lastModified": 1700612854,
"narHash": "sha256-yrQ8osMD+vDLGFX7pcwsY/Qr5PUd6OmDMYJZzZi0+zc=",
@ -923,7 +731,7 @@
"type": "github"
}
},
"nixpkgs_13": {
"nixpkgs_11": {
"locked": {
"lastModified": 1698318101,
"narHash": "sha256-gUihHt3yPD7bVqg+k/UVHgngyaJ3DMEBchbymBMvK1E=",
@ -939,39 +747,7 @@
"type": "github"
}
},
"nixpkgs_14": {
"locked": {
"lastModified": 1695644571,
"narHash": "sha256-asS9dCCdlt1lPq0DLwkVBbVoEKuEuz+Zi3DG7pR/RxA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6500b4580c2a1f3d0f980d32d285739d8e156d92",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1702272962,
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1702312524,
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
@ -987,7 +763,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_3": {
"locked": {
"lastModified": 1699354722,
"narHash": "sha256-abmqUReg4PsyQSwv4d0zjcWpMHrd3IFJiTb2tZpfF04=",
@ -1003,7 +779,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_4": {
"locked": {
"lastModified": 1702310776,
"narHash": "sha256-T2KJpsNjAytMsP6+xrhXfAb2KTG6Yt2D4hTTugpsJFo=",
@ -1019,6 +795,22 @@
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1702312524,
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1702312524,
@ -1037,16 +829,16 @@
},
"nixpkgs_7": {
"locked": {
"lastModified": 1689261696,
"narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=",
"lastModified": 1702312524,
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "df1eee2aa65052a18121ed4971081576b25d6b5c",
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
@ -1083,28 +875,6 @@
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_3",
"gitignore": "gitignore_2",
"nixpkgs": "nixpkgs_7",
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1702456155,
"narHash": "sha256-I2XhXGAecdGlqi6hPWYT83AQtMgL+aa3ulA85RAEgOk=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "007a45d064c1c32d04e1b8a0de5ef00984c419bc",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"pre-commit-hooks-nix": {
"inputs": {
"flake-compat": [
@ -1138,8 +908,8 @@
},
"projet-audionumerique": {
"inputs": {
"flake-parts": "flake-parts_5",
"nixpkgs": "nixpkgs_8"
"flake-parts": "flake-parts_3",
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1702487657,
@ -1157,8 +927,8 @@
},
"projet-intelligence-artificielle-multimedia": {
"inputs": {
"flake-parts": "flake-parts_6",
"nixpkgs": "nixpkgs_9"
"flake-parts": "flake-parts_4",
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1702567767,
@ -1176,8 +946,8 @@
},
"projet-oral-anglais": {
"inputs": {
"flake-parts": "flake-parts_7",
"nixpkgs": "nixpkgs_10"
"flake-parts": "flake-parts_5",
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1702566510,
@ -1195,8 +965,8 @@
},
"projet-oral-japonais": {
"inputs": {
"flake-parts": "flake-parts_8",
"nixpkgs": "nixpkgs_11"
"flake-parts": "flake-parts_6",
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1702567061,
@ -1214,8 +984,8 @@
},
"resume": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_12",
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_10",
"typst": "typst"
},
"locked": {
@ -1234,23 +1004,20 @@
},
"root": {
"inputs": {
"TP-calcul-parallele": "TP-calcul-parallele",
"agenix": "agenix",
"disko": "disko",
"flake-parts": "flake-parts_2",
"flake-utils": "flake-utils",
"home-manager": "home-manager",
"hyprland": "hyprland",
"lanzaboote": "lanzaboote",
"nixos-anywhere": "nixos-anywhere",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_6",
"pre-commit-hooks": "pre-commit-hooks",
"nixpkgs": "nixpkgs_5",
"projet-audionumerique": "projet-audionumerique",
"projet-intelligence-artificielle-multimedia": "projet-intelligence-artificielle-multimedia",
"projet-oral-anglais": "projet-oral-anglais",
"projet-oral-japonais": "projet-oral-japonais",
"resume": "resume",
"treefmt-nix": "treefmt-nix_2"
"resume": "resume"
}
},
"rust-overlay": {
@ -1378,21 +1145,6 @@
"type": "github"
}
},
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
@ -1414,30 +1166,12 @@
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": "nixpkgs_14"
},
"locked": {
"lastModified": 1702461037,
"narHash": "sha256-ssyGxfGHRuuLHuMex+vV6RMOt7nAo07nwufg9L5GkLg=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "d06b70e5163a903f19009c3f97770014787a080f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"typst": {
"inputs": {
"crane": "crane_3",
"flake-parts": "flake-parts_9",
"nixpkgs": "nixpkgs_13",
"systems": "systems_6"
"flake-parts": "flake-parts_7",
"nixpkgs": "nixpkgs_11",
"systems": "systems_5"
},
"locked": {
"lastModified": 1700840283,

View file

@ -1,6 +1,7 @@
{
description = "Laureηt's infrastructure";
# TODO: setup flake-parts à la place de flake-utils
# TODO: setup le formatter comme sioodmy
# TODO: rekey les secrets + changer la key de hydrogen
# TODO: luks encrypt hydrogen (dropbear ?)
@ -20,96 +21,57 @@
agenix = {
url = "github:yaxitech/ragenix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
flake-parts.url = "github:hercules-ci/flake-parts";
flake-utils.url = "github:numtide/flake-utils";
lanzaboote.url = "github:nix-community/lanzaboote";
hyprland.url = "github:hyprwm/Hyprland";
nixos-hardware.url = "github:nixos/nixos-hardware";
disko.url = "github:nix-community/disko";
nixos-anywhere.url = "github:nix-community/nixos-anywhere";
# atuin.url = "github:atuinsh/atuin";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
treefmt-nix.url = "github:numtide/treefmt-nix";
resume.url = "git+https://git.fainsin.bzh/Laurent/resume";
projet-intelligence-artificielle-multimedia.url = "git+https://git.fainsin.bzh/ENSEEIHT/projet-intelligence-artificielle-multimedia";
projet-audionumerique.url = "git+https://git.fainsin.bzh/ENSEEIHT/projet-audionumerique";
projet-oral-japonais.url = "git+https://git.fainsin.bzh/ENSEEIHT/projet-oral-japonais";
projet-oral-anglais.url = "git+https://git.fainsin.bzh/ENSEEIHT/projet-oral-anglais";
TP-calcul-parallele.url = "git+https://git.fainsin.bzh/ENSEEIHT/TP-calcul-parallele";
projet-intelligence-artificielle-multimedia.url =
"git+https://git.fainsin.bzh/ENSEEIHT/projet-intelligence-artificielle-multimedia";
projet-audionumerique.url =
"git+https://git.fainsin.bzh/ENSEEIHT/projet-audionumerique";
projet-oral-japonais.url =
"git+https://git.fainsin.bzh/ENSEEIHT/projet-oral-japonais";
projet-oral-anglais.url =
"git+https://git.fainsin.bzh/ENSEEIHT/projet-oral-anglais";
};
nixConfig = {
extra-substituters = [
#
"https://nix-community.cachix.org"
"https://pre-commit-hooks.cachix.org"
"https://hyprland.cachix.org"
];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"pre-commit-hooks.cachix.org-1:Pkk3Panw5AW24TOv6kz3PvLhlH8puAsJTBbOPmBo7Rc="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
];
};
outputs = {
nixpkgs,
agenix,
flake-parts,
lanzaboote,
home-manager,
nixos-hardware,
disko,
pre-commit-hooks,
treefmt-nix,
...
} @ inputs:
flake-parts.lib.mkFlake {inherit inputs;} {
systems = ["x86_64-linux" "aarch64-linux"];
imports = [
flake-parts.flakeModules.easyOverlay
pre-commit-hooks.flakeModule
treefmt-nix.flakeModule
];
perSystem = {
pkgs,
system,
...
}: rec {
formatter = pkgs.alejandra;
treefmt = {
projectRootFile = "flake.nix";
programs = {
alejandra.enable = true;
deadnix.enable = true;
};
};
pre-commit = {
settings.excludes = ["flake.lock"];
settings.hooks = {
alejandra.enable = true;
deadnix.enable = true;
};
};
outputs = { nixpkgs, flake-utils, lanzaboote, agenix, home-manager
, nixos-hardware, disko, ... }@inputs:
(flake-utils.lib.eachDefaultSystem (system:
let pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.default = pkgs.mkShell {
packages = [
formatter # defined above
pkgs.nixfmt # formatting
pkgs.git # version control
pkgs.update-nix-fetchgit # auto update fetchs
agenix.packages.${system}.ragenix # secrets
pkgs.sbctl # secure boot
];
};
};
})) // {
flake.nixosConfigurations = {
# neodymium laptop
neodymium = nixpkgs.lib.nixosSystem {
nixosConfigurations.neodymium = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = inputs;
modules = [
@ -125,7 +87,7 @@
};
# hydrogen vps
hydrogen = nixpkgs.lib.nixosSystem rec {
nixosConfigurations.hydrogen = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
inherit inputs;
@ -140,5 +102,4 @@
];
};
};
};
}

View file

@ -1,6 +1 @@
{...}: {
imports = [
./services
./system
];
}
{ ... }: { imports = [ ./services ./system ]; }

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
security.acme = {
acceptTerms = true;
defaults.email = "acme@fainsin.bzh";

View file

@ -1,4 +1,5 @@
{...}: {
{ ... }: {
services.atuin = {
enable = true;
openRegistration = false;
@ -10,8 +11,9 @@
"atuin.fainsin.bzh" = {
forceSSL = true;
enableACME = true;
locations."/".proxyPass = "http://127.0.0.1:8888";
locations."/" = { proxyPass = "http://127.0.0.1:8888"; };
};
};
};
}

View file

@ -1,3 +1 @@
{...}: {
services.changedetection-io.enable = true;
}
{ ... }: { services.changedetection-io.enable = true; }

View file

@ -1,9 +1 @@
{...}: {
imports = [
./acme
./atuin
./changedetection
./gitea
./nginx
];
}
{ ... }: { imports = [ ./acme ./atuin ./changedetection ./gitea ./nginx ]; }

View file

@ -1,14 +1,10 @@
{
config,
pkgs,
...
}: {
{ config, pkgs, ... }: {
age.secrets.gitea = {
file = ../../../../secrets/gitea.age;
owner = "gitea";
group = "gitea";
};
age.identityPaths = ["/root/.ssh/id_ed25519"];
age.identityPaths = [ "/root/.ssh/id_ed25519" ];
services.gitea = {
enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
services.nginx = {
enable = true;
@ -11,8 +11,5 @@
# clientMaxBodySize = "0";
};
imports = [
./laurent
./n7
];
imports = [ ./laurent ./n7 ];
}

View file

@ -1,6 +1 @@
{...}: {
imports = [
./resume.nix
./website.nix
];
}
{ ... }: { imports = [ ./resume.nix ./website.nix ]; }

View file

@ -1,8 +1,4 @@
{
inputs,
system,
...
}: {
{ inputs, system, ... }: {
services.nginx.virtualHosts = {
"resume.laurent.fainsin.bzh" = {
enableACME = true;

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
pages = pkgs.fetchgit {
url = "https://git.fainsin.bzh/Laurent/personal-website";
branchName = "pages";
@ -16,7 +17,8 @@ in {
"fainsin.bzh" = {
enableACME = true;
forceSSL = true;
locations."/".return = ''301 "$scheme://laurent.fainsin.bzh$request_uri"'';
locations."/".return =
''301 "$scheme://laurent.fainsin.bzh$request_uri"'';
};
default = {
default = true;

View file

@ -1,7 +1,11 @@
{
inputs,
system,
...
}: {
alias = inputs.TP-calcul-parallele.packages.${system}.report + "/";
{ pkgs, ... }:
let
pages = pkgs.fetchgit {
url = "https://git.fainsin.bzh/ENSEEIHT/TP-calcul-parallele";
rev = "7222bd269d5f2fb3873cd8cacb83bf5123b1f91a"; # pages
sha256 = "1anj0xixcql068wijqb344ay1cf8xl7x6mfmbvvcrqv21ni61xx3";
};
in {
alias = "${pages}/";
index = "report.html";
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
pages = pkgs.fetchgit {
url = "https://git.fainsin.bzh/ENSEEIHT/TP-reinforcement-learning";
rev = "cfd97e864894af07ba768d8fc9382ddfcc09400f"; # pages

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
pages = pkgs.fetchFromGitea {
domain = "git.fainsin.bzh";
owner = "ENSEEIHT";

View file

@ -1,33 +1,55 @@
{
inputs,
system,
pkgs,
...
}: {
{ inputs, system, pkgs, ... }: {
services.nginx.virtualHosts = {
"n7.laurent.fainsin.bzh" = {
enableACME = true;
forceSSL = true;
locations =
{
locations = {
"/".return = "301 $scheme://git.fainsin.bzh/ENSEEIHT";
}
// {
"/projet-audionumerique/" = import ./projet-audionumerique.nix {inherit inputs system;};
"/projet-systemes-algorithmes-repartis/" = import ./projet-systemes-algorithmes-repartis.nix pkgs;
"/projet-intelligence-artificielle-multimedia/" = import ./projet-intelligence-artificielle-multimedia.nix {inherit inputs system;};
"/projet-probleme-inverse-3D/" = import ./projet-probleme-inverse-3D.nix pkgs;
"/projet-modelisation-geometrique/" = import ./projet-modelisation-geometrique.nix pkgs;
"/projet-long/" = import ./projet-long.nix pkgs;
"/projet-oral-japonais/" = import ./projet-oral-japonais.nix {inherit inputs system;};
"/projet-oral-anglais/" = import ./projet-oral-anglais.nix {inherit inputs system;};
"/projet-fin-etude/" = import ./projet-fin-etude.nix pkgs;
}
// {
"/TP-calcul-parallele/" = import ./TP-calcul-parallele.nix {inherit inputs system;};
"/TP-reinforcement-learning/" = import ./TP-reinforcement-learning.nix pkgs;
"/TP-traitement-audio-visuel/" = import ./TP-traitement-audio-visuel.nix pkgs;
} // {
"/projet-audionumerique/" = # #
import ./projet-audionumerique.nix { inherit inputs system; };
"/projet-systemes-algorithmes-repartis/" = # #
import ./projet-systemes-algorithmes-repartis.nix pkgs;
"/projet-intelligence-artificielle-multimedia/" = # #
import ./projet-intelligence-artificielle-multimedia.nix {
inherit inputs system;
};
"/projet-probleme-inverse-3D/" = # #
import ./projet-probleme-inverse-3D.nix pkgs;
"/projet-modelisation-geometrique/" = # #
import ./projet-modelisation-geometrique.nix pkgs;
"/projet-long/" = # #
import ./projet-long.nix pkgs;
"/projet-oral-japonais/" = # #
import ./projet-oral-japonais.nix { inherit inputs system; };
"/projet-oral-anglais/" = # #
import ./projet-oral-anglais.nix { inherit inputs system; };
"/projet-fin-etude/" = # #
import ./projet-fin-etude.nix pkgs;
} // {
"/TP-calcul-parallele/" = # #
import ./TP-calcul-parallele.nix pkgs;
"/TP-reinforcement-learning/" = # #
import ./TP-reinforcement-learning.nix pkgs;
"/TP-traitement-audio-visuel/" = # #
import ./TP-traitement-audio-visuel.nix pkgs;
};
};
};

View file

@ -1,7 +1,3 @@
{
inputs,
system,
...
}: {
{ inputs, system, ... }: {
alias = inputs.projet-audionumerique.packages.${system}.slides + "/";
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
pages = pkgs.fetchgit {
url = "https://git.fainsin.bzh/ENSEEIHT/projet-fin-etude-rapport";
rev = "32fe5c7ec6d67241951fdaf001e3da1c41b29dcf"; # pages

View file

@ -1,8 +1,4 @@
{
inputs,
system,
...
}: {
{ inputs, system, ... }: {
alias =
inputs.projet-intelligence-artificielle-multimedia.packages.${system}.slides
+ "/";

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
pages = pkgs.fetchgit {
url = "https://git.fainsin.bzh/ENSEEIHT/projet-long";
rev = "8290710fa7461c486dc727966c8eaa2234ae2e7d"; # pages

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
pages = pkgs.fetchgit {
url = "https://git.fainsin.bzh/ENSEEIHT/projet-modelisation-geometrique";
rev = "bf68bccd640e68b92749b0580c82f8ab65e923a8"; # pages

View file

@ -1,7 +1,3 @@
{
inputs,
system,
...
}: {
{ inputs, system, ... }: {
alias = inputs.projet-oral-anglais.packages.${system}.slides + "/";
}

View file

@ -1,7 +1,3 @@
{
inputs,
system,
...
}: {
{ inputs, system, ... }: {
alias = inputs.projet-oral-japonais.packages.${system}.slides + "/";
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
pages = pkgs.fetchgit {
url = "https://git.fainsin.bzh/ENSEEIHT/projet-probleme-inverse-3D";
rev = "9c75aadaf1b779e4f88fd42de163dedd8d5e918a"; # pages

View file

@ -1,6 +1,8 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
pages = pkgs.fetchgit {
url = "https://git.fainsin.bzh/ENSEEIHT/projet-systemes-algorithmes-repartis";
url =
"https://git.fainsin.bzh/ENSEEIHT/projet-systemes-algorithmes-repartis";
rev = "1826a53d95b19400b8dd252cd05b20012e3c3dac"; # pages
sha256 = "0n81hpcj7lj5i7jhl8af869vy6fp6bhyrk4fdl6y2rpjgp64zmq2";
};

View file

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
# clean /tmp at each boot
boot.tmp.cleanOnBoot = true;

View file

@ -1,4 +1,4 @@
{modulesPath, ...}: {
{ modulesPath, ... }: {
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
boot.loader.grub = {
efiSupport = true;
efiInstallAsRemovable = true;

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
networking = {
# the name of the machine
hostName = "hydrogen";
@ -7,7 +7,7 @@
domain = "fainsin.bzh";
# domain name servers, use clouflare family
nameservers = ["1.1.1.2" "1.0.0.2"];
nameservers = [ "1.1.1.2" "1.0.0.2" ];
# TODO: bouger ça à côté des applications
firewall = {

View file

@ -1,9 +1,4 @@
{
lib,
pkgs,
nixpkgs,
...
}: {
{ lib, pkgs, nixpkgs, ... }: {
# optimizations
nix.settings.auto-optimise-store = true;
@ -15,14 +10,14 @@
};
# experimental features
nix.settings.experimental-features = ["nix-command" "flakes"];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# pin nixpkgs registry
nix.registry.nixpkgs.flake = nixpkgs;
# print diff between two generations
system.activationScripts.nvd-report-changes = ''
PATH=$PATH:${lib.makeBinPath [pkgs.nvd pkgs.nix]}
PATH=$PATH:${lib.makeBinPath [ pkgs.nvd pkgs.nix ]}
nvd diff $(ls -dv /nix/var/nix/profiles/system-*-link | tail -2)
'';
}

View file

@ -1,8 +1,3 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
btop
borgbackup
gitMinimal
sysz
];
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [ btop borgbackup gitMinimal sysz ];
}

View file

@ -1,6 +1,6 @@
{...}: {
{ ... }: {
services.openssh = {
enable = true;
ports = [624];
ports = [ 624 ];
};
}

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
users.mutableUsers = false;
users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINTvwXCT99s1EwOCeGQ28jyCAH/RBoLZza9k5I7wWdEu"

View file

@ -1,5 +1,5 @@
{pkgs, ...}: {
imports = [./system ./services];
{ pkgs, ... }: {
imports = [ ./system ./services ];
# shorter timeout for systemd services
systemd.extraConfig = ''
@ -10,10 +10,7 @@
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-wlr
];
extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr ];
};
programs.zsh.enable = true;

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
catppuccin-alacritty = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "alacritty";
@ -9,7 +10,7 @@ in {
programs.alacritty = {
enable = true;
settings = {
import = ["${catppuccin-alacritty}/catppuccin-mocha.yml"];
import = [ "${catppuccin-alacritty}/catppuccin-mocha.yml" ];
window.opacity = 0.85;
font = {
normal.family = "FiraCode Nerd Font Mono";

View file

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.chromium = {
enable = true;
package = pkgs.ungoogled-chromium;

View file

@ -1,4 +1,4 @@
{hyprland, ...}: {
{ hyprland, ... }: {
config.home.stateVersion = "23.05";
imports = [
hyprland.homeManagerModules.default

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
programs.librewolf = {
enable = true;
settings = {

View file

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
gtk = {
enable = true;
@ -19,8 +19,8 @@
theme = {
name = "Catppuccin-Mocha-Compact-Blue-Dark";
package = pkgs.catppuccin-gtk.override {
tweaks = ["rimless" "normal"];
accents = ["blue"];
tweaks = [ "rimless" "normal" ];
accents = [ "blue" ];
variant = "mocha";
size = "compact";
};

View file

@ -1,8 +1,8 @@
{pkgs, ...}: {
{ pkgs, ... }: {
services.mpris-proxy.enable = true; # media keys
home.packages = with pkgs; [
(bemoji.overrideAttrs (_: {
(bemoji.overrideAttrs (oldAttrs: {
src = pkgs.fetchFromGitHub {
owner = "marty-oehme";
repo = "bemoji";

View file

@ -1,9 +1,7 @@
{...}: {
{ ... }: {
programs.atuin = {
enable = true;
enableZshIntegration = true;
settings = {
sync_address = "https://atuin.fainsin.bzh";
};
settings = { sync_address = "https://atuin.fainsin.bzh"; };
};
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
catppuccin-bat = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "bat";
@ -15,7 +16,7 @@ in {
};
};
config.theme = "catppuccin";
extraPackages = with pkgs.bat-extras; [batman];
extraPackages = with pkgs.bat-extras; [ batman ];
};
programs.zsh.shellAliases = {
cat = "bat";

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
catppuccin-btop = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "btop";
@ -6,6 +7,7 @@
sha256 = "sha256-jodJl4f2T9ViNqsY9fk8IV62CrpC5hy7WK3aRpu70Cs=";
};
in {
xdg.configFile."btop/themes".source = "${catppuccin-btop}/themes";
programs.btop = {
@ -19,5 +21,6 @@ in {
};
};
programs.zsh.shellAliases = {htop = "btop";};
programs.zsh.shellAliases = { htop = "btop"; };
}

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
imports = [
./atuin.nix
./bat.nix

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
programs.direnv = {
enable = true;
enableZshIntegration = true;

View file

@ -1,7 +1,8 @@
{...}: {
{ ... }: {
programs.eza.enable = true;
programs.zsh.shellAliases = {
l = "eza -lahg --icons --git --time-style=long-iso --group-directories-first --color=always";
l =
"eza -lahg --icons --git --time-style=long-iso --group-directories-first --color=always";
ll = "l --grid";
};
}

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
programs.git = {
enable = true;
lfs.enable = true;
@ -6,7 +6,8 @@
userEmail = "laurent@fainsin.bzh";
signing = {
signByDefault = true;
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINTvwXCT99s1EwOCeGQ28jyCAH/RBoLZza9k5I7wWdEu laurent@neodymium";
key =
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINTvwXCT99s1EwOCeGQ28jyCAH/RBoLZza9k5I7wWdEu laurent@neodymium";
};
};
}

View file

@ -1,4 +1,4 @@
{lib, ...}: {
{ lib, ... }: {
programs.starship = {
enable = true;
enableZshIntegration = true;

View file

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.zsh = {
enable = true;
enableAutosuggestions = true;
@ -23,8 +23,7 @@
bindkey '^H' backward-kill-word
bindkey '5~' kill-word
'';
plugins = [
{
plugins = [{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = pkgs.fetchFromGitHub {
@ -33,7 +32,6 @@
rev = "227d284ab2dc2f5153826974e0094a1990b1b5b9";
sha256 = "11mkq58ssafvkq8sq27v0dl19mi2myi392nhxgi1q2q9q0gazcaa";
};
}
];
}];
};
}

View file

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.vscode = {
enable = true;
package = pkgs.vscode;
@ -29,7 +29,8 @@
"git.confirmSync" = false;
"git.enableSmartCommit" = true;
"gitmoji.showEmojiCode" = true;
"terminal.integrated.fontFamily" = "'FiraCode Nerd Font Mono', 'Noto Color Emoji'";
"terminal.integrated.fontFamily" =
"'FiraCode Nerd Font Mono', 'Noto Color Emoji'";
"window.menuBarVisibility" = "toggle";
"window.zoomLevel" = -0.25;
"workbench.colorTheme" = "Catppuccin Mocha";
@ -39,12 +40,14 @@
"telemetry.telemetryLevel" = "off";
"editor.inlineSuggest.enabled" = true;
"liveshare.presence" = true;
"github.copilot.enable" = {"markdown" = true;};
"github.copilot.enable" = { "markdown" = true; };
"nix.enableLanguageServer" = true;
"nix.serverPath" = "nil";
"nix.serverSettings"."nil"."formatting"."command" = [ "nixfmt" ];
"julia.enableTelemetry" = false;
"julia.symbolCacheDownload" = true;
"terminal.integrated.commandsToSkipShell" = ["language-julia.interrupt"];
"terminal.integrated.commandsToSkipShell" =
[ "language-julia.interrupt" ];
};
};
}

View file

@ -1,4 +1,5 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
catppuccin-mako = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "mako";
@ -6,12 +7,8 @@
sha256 = "097x9jrkzvml6ngnhxwkzzl1l2awwv73yli1mhmpw83c0n8xck4x";
};
in {
# TODO: split some stuff here
imports = [
./hyprland
./eww
];
imports = [ ./hyprland ./eww ];
services.mako = {
enable = true;
@ -107,4 +104,5 @@ in {
bs-hl-color = "F38BA8";
};
};
}

View file

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
programs.eww = {
enable = true;
package = pkgs.eww-wayland;

View file

@ -1,9 +1,8 @@
{pkgs, ...}: {
{ pkgs, ... }: {
wayland.windowManager.hyprland = {
enable = true;
extraConfig =
''
extraConfig = ''
exec-once=env XDG_CACHE_HOME=/tmp eww open bar
exec-once=${pkgs.swaybg}/bin/swaybg -i ~/Pictures/wallpapers/kai-oberhauser-unsplash.jpg
exec-once=mako
@ -12,7 +11,6 @@
exec-once=webcord
exec-once=wl-paste --watch cliphist store
exec-once=gnome-keyring-daemon --start --components=secrets
''
+ builtins.readFile ./hyprland.conf;
'' + builtins.readFile ./hyprland.conf;
};
}

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
xdg.mimeApps = {
enable = true;

View file

@ -1,4 +1,4 @@
{config, ...}: {
{ config, ... }: {
services.borgbackup.jobs.home = {
paths = "/home/laurent/";
repo = "/mnt/home_backup";
@ -30,7 +30,7 @@
passCommand = "cat ${config.age.secrets.borgbackup.path}";
};
compression = "auto,zstd";
startAt = [];
startAt = [ ];
};
services.borgbackup.jobs.keepass = {
paths = "/home/laurent/Documents/db_mdp.kdbx";

View file

@ -1,6 +1 @@
{...}: {
imports = [
./borgbackup
./greetd
];
}
{ ... }: { imports = [ ./borgbackup ./greetd ]; }

View file

@ -1,10 +1,11 @@
{pkgs, ...}: {
{ pkgs, ... }: {
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland"; # TODO: use nix pkgs
command =
"${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland"; # TODO: use nix pkgs
user = "greeter";
};
};

View file

@ -1,7 +1,7 @@
{pkgs, ...}: {
{ pkgs, ... }: {
# udev rules
services.udev.packages = [pkgs.android-udev-rules];
services.udev.packages = [ pkgs.android-udev-rules ];
# adb users
users.users.laurent.extraGroups = ["adbusers"];
users.users.laurent.extraGroups = [ "adbusers" ];
}

View file

@ -1,8 +1,8 @@
{...}: {
{ ... }: {
age.secrets.borgbackup = {
file = "/home/laurent/infrastructure/secrets/borgbackup.age";
owner = "laurent";
group = "users";
};
age.identityPaths = ["/home/laurent/.ssh/id_ed25519"];
age.identityPaths = [ "/home/laurent/.ssh/id_ed25519" ];
}

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
services.pipewire = {
enable = true;
alsa.enable = true;

View file

@ -1,10 +1,6 @@
{
pkgs,
config,
...
}: {
{ pkgs, config, ... }: {
# support for mounting windaube partitions
boot.supportedFilesystems = ["ntfs"];
boot.supportedFilesystems = [ "ntfs" ];
boot.loader.efi.canTouchEfiVariables = true;
# clean /tmp at each boot
@ -13,12 +9,12 @@
# use latest kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
imports = [
./lanzaboot.nix
];
imports = [ ./lanzaboot.nix ];
boot.initrd.availableKernelModules =
[ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" "v4l2loopback" ];
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd" "v4l2loopback"];
boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
}

View file

@ -1,4 +1,4 @@
{lib, ...}: {
{ lib, ... }: {
# This should already be here from switching to bootspec earlier.
# It's not required anymore, but also doesn't do any harm.
boot.bootspec.enable = true;

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
virtualisation.podman = {
enable = true;

View file

@ -1,4 +1,4 @@
{pkgs, ...}: {
{ pkgs, ... }: {
fonts.packages = with pkgs; [
# https://notofonts.github.io/
noto-fonts # standard characters
@ -11,6 +11,6 @@
fira-code-symbols # unicode ligature glyphs
# https://github.com/ryanoasis/nerd-fonts
(nerdfonts.override {fonts = ["FiraCode"];})
(nerdfonts.override { fonts = [ "FiraCode" ]; })
];
}

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
# hardware
hardware = {
enableRedistributableFirmware = true;
@ -30,7 +30,5 @@
programs.light.enable = true;
# paritions and filesystems
imports = [
./partitions.nix
];
imports = [ ./partitions.nix ];
}

View file

@ -1,22 +1,21 @@
{ config, lib, ... }:
{
config,
lib,
...
}: {
fileSystems."/" = {
device = "/dev/disk/by-uuid/b0ea5f1f-104f-4026-840a-4d46f3e827d1";
fsType = "btrfs";
options = ["subvol=nixos"];
options = [ "subvol=nixos" ];
};
boot.initrd.luks.devices."nixenc".device = "/dev/disk/by-uuid/93d0b0d8-b586-48cf-acc2-025fba1eaadb";
boot.initrd.luks.devices."nixenc".device =
"/dev/disk/by-uuid/93d0b0d8-b586-48cf-acc2-025fba1eaadb";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/6D10-BBAF";
fsType = "vfat";
};
swapDevices = [];
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode =

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
# FRANCE 🇫🇷 🥖 🥐
time.timeZone = "Europe/Paris";

View file

@ -1,9 +1,9 @@
{lib, ...}: {
{ lib, ... }: {
# the name of the machine
networking.hostName = "neodymium";
# domain name servers, use clouflare family
networking.nameservers = ["1.1.1.2" "1.0.0.2"];
networking.nameservers = [ "1.1.1.2" "1.0.0.2" ];
# use networkManager, see nmcli
networking.networkmanager.enable = true;
@ -12,8 +12,8 @@
networking.firewall = {
enable = true;
allowedTCPPorts = [];
allowedUDPPorts = [];
allowedTCPPorts = [ ];
allowedUDPPorts = [ ];
};
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -1,15 +1,9 @@
{
lib,
pkgs,
nixpkgs,
...
}: {
{ lib, pkgs, nixpkgs, ... }: {
# restrict nix command to sudoers
nix.settings.allowed-users = ["root" "@wheel"];
nix.settings.trusted-users = ["root" "@wheel"];
nix.settings.allowed-users = [ "@wheel" ];
# experimental features
nix.settings.experimental-features = ["nix-command" "flakes"];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# limit number of cores when building
nix.settings.max-jobs = 6;
@ -24,6 +18,16 @@
options = "--delete-older-than 30d";
};
# binary caches
nix.settings = {
substituters =
[ "https://hyprland.cachix.org" "https://nix-community.cachix.org" ];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
# pin nixpkgs registry
nix.registry.nixpkgs.flake = nixpkgs;
@ -39,7 +43,7 @@
# print diff between two generations
system.activationScripts.nvd-report-changes = ''
PATH=$PATH:${lib.makeBinPath [pkgs.nvd pkgs.nix]}
PATH=$PATH:${lib.makeBinPath [ pkgs.nvd pkgs.nix ]}
nvd diff $(ls -dv /nix/var/nix/profiles/system-*-link | tail -2)
'';
}

View file

@ -1,4 +1,4 @@
{...}: {
{ ... }: {
# enable polkit
security.polkit.enable = true;
@ -13,5 +13,5 @@
services.gnome.gnome-keyring.enable = true;
# allow swaylock to use pam
security.pam.services.swaylock = {};
security.pam.services.swaylock = { };
}

View file

@ -1,8 +1,4 @@
{
pkgs,
hyprland,
...
}: {
{ pkgs, hyprland, ... }: {
# disable user creation/deletion
users.mutableUsers = false;
@ -10,7 +6,7 @@
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {inherit hyprland;};
extraSpecialArgs = { inherit hyprland; };
};
# configure users
@ -19,7 +15,7 @@
users.laurent = {
isNormalUser = true;
initialPassword = "laurent";
extraGroups = ["wheel" "video" "docker"];
extraGroups = [ "wheel" "video" "docker" ];
shell = pkgs.zsh;
};
};

View file

@ -1,7 +1,9 @@
let
neodymium = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINTvwXCT99s1EwOCeGQ28jyCAH/RBoLZza9k5I7wWdEu laurent@neodymium";
hydrogen = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAxh42mMYqftTU7WtfktZbkdMI07VuH7mhUv3m2Ca3fV root@hydrogen";
neodymium =
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINTvwXCT99s1EwOCeGQ28jyCAH/RBoLZza9k5I7wWdEu laurent@neodymium";
hydrogen =
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAxh42mMYqftTU7WtfktZbkdMI07VuH7mhUv3m2Ca3fV root@hydrogen";
in {
"borgbackup.age".publicKeys = [neodymium];
"gitea.age".publicKeys = [neodymium hydrogen];
"borgbackup.age".publicKeys = [ neodymium ];
"gitea.age".publicKeys = [ neodymium hydrogen ];
}