Compare commits

..

3 commits

73 changed files with 688 additions and 354 deletions

View file

@ -1,12 +1,29 @@
{
"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"
],
@ -146,7 +163,7 @@
},
"disko": {
"inputs": {
"nixpkgs": "nixpkgs"
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1702569759,
@ -216,7 +233,59 @@
"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",
@ -237,7 +306,7 @@
"type": "github"
}
},
"flake-parts_2": {
"flake-parts_4": {
"inputs": {
"nixpkgs-lib": [
"nixos-anywhere",
@ -258,42 +327,6 @@
"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"
@ -334,6 +367,42 @@
"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=",
@ -352,11 +421,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
@ -387,6 +456,24 @@
"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=",
@ -423,6 +510,27 @@
"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": [
@ -446,7 +554,7 @@
"hyprland": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs_3",
"systems": "systems_2",
"wlroots": "wlroots",
"xdph": "xdph"
@ -494,9 +602,9 @@
"inputs": {
"crane": "crane_2",
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts",
"flake-parts": "flake-parts_3",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_4",
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay_2"
},
@ -517,10 +625,10 @@
"nixos-anywhere": {
"inputs": {
"disko": "disko_2",
"flake-parts": "flake-parts_2",
"flake-parts": "flake-parts_4",
"nixos-images": "nixos-images",
"nixos-stable": "nixos-stable",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"treefmt-nix": "treefmt-nix"
},
"locked": {
@ -595,16 +703,16 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1702272962,
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
"lastModified": 1702312524,
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
@ -682,6 +790,42 @@
}
},
"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,
@ -715,7 +859,55 @@
"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=",
@ -731,7 +923,7 @@
"type": "github"
}
},
"nixpkgs_11": {
"nixpkgs_13": {
"locked": {
"lastModified": 1698318101,
"narHash": "sha256-gUihHt3yPD7bVqg+k/UVHgngyaJ3DMEBchbymBMvK1E=",
@ -747,7 +939,39 @@
"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=",
@ -763,7 +987,7 @@
"type": "github"
}
},
"nixpkgs_3": {
"nixpkgs_4": {
"locked": {
"lastModified": 1699354722,
"narHash": "sha256-abmqUReg4PsyQSwv4d0zjcWpMHrd3IFJiTb2tZpfF04=",
@ -779,7 +1003,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_5": {
"locked": {
"lastModified": 1702310776,
"narHash": "sha256-T2KJpsNjAytMsP6+xrhXfAb2KTG6Yt2D4hTTugpsJFo=",
@ -795,22 +1019,6 @@
"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,
@ -829,16 +1037,16 @@
},
"nixpkgs_7": {
"locked": {
"lastModified": 1702312524,
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
"lastModified": 1689261696,
"narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
"rev": "df1eee2aa65052a18121ed4971081576b25d6b5c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
@ -875,6 +1083,28 @@
"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": [
@ -908,8 +1138,8 @@
},
"projet-audionumerique": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": "nixpkgs_6"
"flake-parts": "flake-parts_5",
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1702487657,
@ -927,8 +1157,8 @@
},
"projet-intelligence-artificielle-multimedia": {
"inputs": {
"flake-parts": "flake-parts_4",
"nixpkgs": "nixpkgs_7"
"flake-parts": "flake-parts_6",
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1702567767,
@ -946,8 +1176,8 @@
},
"projet-oral-anglais": {
"inputs": {
"flake-parts": "flake-parts_5",
"nixpkgs": "nixpkgs_8"
"flake-parts": "flake-parts_7",
"nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1702566510,
@ -965,8 +1195,8 @@
},
"projet-oral-japonais": {
"inputs": {
"flake-parts": "flake-parts_6",
"nixpkgs": "nixpkgs_9"
"flake-parts": "flake-parts_8",
"nixpkgs": "nixpkgs_11"
},
"locked": {
"lastModified": 1702567061,
@ -984,8 +1214,8 @@
},
"resume": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_10",
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_12",
"typst": "typst"
},
"locked": {
@ -1004,20 +1234,23 @@
},
"root": {
"inputs": {
"TP-calcul-parallele": "TP-calcul-parallele",
"agenix": "agenix",
"disko": "disko",
"flake-utils": "flake-utils",
"flake-parts": "flake-parts_2",
"home-manager": "home-manager",
"hyprland": "hyprland",
"lanzaboote": "lanzaboote",
"nixos-anywhere": "nixos-anywhere",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_6",
"pre-commit-hooks": "pre-commit-hooks",
"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"
"resume": "resume",
"treefmt-nix": "treefmt-nix_2"
}
},
"rust-overlay": {
@ -1145,6 +1378,21 @@
"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": [
@ -1166,12 +1414,30 @@
"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_7",
"nixpkgs": "nixpkgs_11",
"systems": "systems_5"
"flake-parts": "flake-parts_9",
"nixpkgs": "nixpkgs_13",
"systems": "systems_6"
},
"locked": {
"lastModified": 1700840283,

View file

@ -1,7 +1,6 @@
{
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 ?)
@ -21,57 +20,96 @@
agenix = {
url = "github:yaxitech/ragenix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
flake-utils.url = "github:numtide/flake-utils";
flake-parts.url = "github:hercules-ci/flake-parts";
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";
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";
};
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, flake-utils, lanzaboote, agenix, home-manager
, nixos-hardware, disko, ... }@inputs:
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;
};
};
(flake-utils.lib.eachDefaultSystem (system:
let pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.default = pkgs.mkShell {
packages = [
pkgs.nixfmt # formatting
formatter # defined above
pkgs.git # version control
pkgs.update-nix-fetchgit # auto update fetchs
agenix.packages.${system}.ragenix # secrets
pkgs.sbctl # secure boot
];
};
})) // {
};
flake.nixosConfigurations = {
# neodymium laptop
nixosConfigurations.neodymium = nixpkgs.lib.nixosSystem {
neodymium = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = inputs;
modules = [
@ -87,7 +125,7 @@
};
# hydrogen vps
nixosConfigurations.hydrogen = nixpkgs.lib.nixosSystem rec {
hydrogen = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
inherit inputs;
@ -102,4 +140,5 @@
];
};
};
};
}

View file

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

View file

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

View file

@ -1,5 +1,4 @@
{ ... }: {
{...}: {
services.atuin = {
enable = true;
openRegistration = false;
@ -11,9 +10,8 @@
"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 +1,3 @@
{ ... }: { services.changedetection-io.enable = true; }
{...}: {
services.changedetection-io.enable = true;
}

View file

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

View file

@ -1,10 +1,14 @@
{ 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,5 +11,8 @@
# clientMaxBodySize = "0";
};
imports = [ ./laurent ./n7 ];
imports = [
./laurent
./n7
];
}

View file

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

View file

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

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
let
{pkgs, ...}: let
pages = pkgs.fetchgit {
url = "https://git.fainsin.bzh/Laurent/personal-website";
branchName = "pages";
@ -17,8 +16,7 @@ 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,11 +1,7 @@
{ 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";
{
inputs,
system,
...
}: {
alias = inputs.TP-calcul-parallele.packages.${system}.report + "/";
}

View file

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

View file

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

View file

@ -1,55 +1,33 @@
{ 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 pkgs;
"/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 {inherit inputs system;};
"/TP-reinforcement-learning/" = import ./TP-reinforcement-learning.nix pkgs;
"/TP-traitement-audio-visuel/" = import ./TP-traitement-audio-visuel.nix pkgs;
};
};
};

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +1,6 @@
{ 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,4 +1,9 @@
{ lib, pkgs, nixpkgs, ... }: {
{
lib,
pkgs,
nixpkgs,
...
}: {
# optimizations
nix.settings.auto-optimise-store = true;
@ -10,14 +15,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,3 +1,8 @@
{ 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,7 +10,10 @@
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,5 +1,4 @@
{ pkgs, ... }:
let
{pkgs, ...}: let
catppuccin-alacritty = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "alacritty";
@ -10,7 +9,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 (oldAttrs: {
(bemoji.overrideAttrs (_: {
src = pkgs.fetchFromGitHub {
owner = "marty-oehme";
repo = "bemoji";

View file

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

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
let
{pkgs, ...}: let
catppuccin-bat = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "bat";
@ -16,7 +15,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,5 +1,4 @@
{ pkgs, ... }:
let
{pkgs, ...}: let
catppuccin-btop = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "btop";
@ -7,7 +6,6 @@ let
sha256 = "sha256-jodJl4f2T9ViNqsY9fk8IV62CrpC5hy7WK3aRpu70Cs=";
};
in {
xdg.configFile."btop/themes".source = "${catppuccin-btop}/themes";
programs.btop = {
@ -21,6 +19,5 @@ 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,8 +1,7 @@
{ ... }: {
{...}: {
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,8 +6,7 @@
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,7 +23,8 @@
bindkey '^H' backward-kill-word
bindkey '5~' kill-word
'';
plugins = [{
plugins = [
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = pkgs.fetchFromGitHub {
@ -32,6 +33,7 @@
rev = "227d284ab2dc2f5153826974e0094a1990b1b5b9";
sha256 = "11mkq58ssafvkq8sq27v0dl19mi2myi392nhxgi1q2q9q0gazcaa";
};
}];
}
];
};
}

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: {
{pkgs, ...}: {
programs.vscode = {
enable = true;
package = pkgs.vscode;
@ -29,8 +29,7 @@
"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";
@ -40,14 +39,12 @@
"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,5 +1,4 @@
{ pkgs, ... }:
let
{pkgs, ...}: let
catppuccin-mako = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "mako";
@ -7,8 +6,12 @@ let
sha256 = "097x9jrkzvml6ngnhxwkzzl1l2awwv73yli1mhmpw83c0n8xck4x";
};
in {
# TODO: split some stuff here
imports = [ ./hyprland ./eww ];
imports = [
./hyprland
./eww
];
services.mako = {
enable = true;
@ -104,5 +107,4 @@ in {
bs-hl-color = "F38BA8";
};
};
}

View file

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

View file

@ -1,8 +1,9 @@
{ 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
@ -11,6 +12,7 @@
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 +1,6 @@
{ ... }: { imports = [ ./borgbackup ./greetd ]; }
{...}: {
imports = [
./borgbackup
./greetd
];
}

View file

@ -1,11 +1,10 @@
{ 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,6 +1,10 @@
{ 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
@ -9,12 +13,12 @@
# use latest kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
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 ];
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];
}

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,5 +30,7 @@
programs.light.enable = true;
# paritions and filesystems
imports = [ ./partitions.nix ];
imports = [
./partitions.nix
];
}

View file

@ -1,21 +1,22 @@
{ 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,9 +1,15 @@
{ lib, pkgs, nixpkgs, ... }: {
{
lib,
pkgs,
nixpkgs,
...
}: {
# restrict nix command to sudoers
nix.settings.allowed-users = [ "@wheel" ];
nix.settings.allowed-users = ["root" "@wheel"];
nix.settings.trusted-users = ["root" "@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;
@ -18,16 +24,6 @@
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;
@ -43,7 +39,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,4 +1,8 @@
{ pkgs, hyprland, ... }: {
{
pkgs,
hyprland,
...
}: {
# disable user creation/deletion
users.mutableUsers = false;
@ -6,7 +10,7 @@
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = { inherit hyprland; };
extraSpecialArgs = {inherit hyprland;};
};
# configure users
@ -15,7 +19,7 @@
users.laurent = {
isNormalUser = true;
initialPassword = "laurent";
extraGroups = [ "wheel" "video" "docker" ];
extraGroups = ["wheel" "video" "docker"];
shell = pkgs.zsh;
};
};

View file

@ -1,9 +1,7 @@
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];
}