Compare commits
1 Commits
19d322f406
...
niri
| Author | SHA1 | Date | |
|---|---|---|---|
|
1d205d39c3
|
340
flake.lock
generated
340
flake.lock
generated
@@ -71,11 +71,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767024902,
|
"lastModified": 1765900596,
|
||||||
"narHash": "sha256-sMdk6QkMDhIOnvULXKUM8WW8iyi551SWw2i6KQHbrrU=",
|
"narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "b8a0c5ba5a9fbd2c660be7dd98bdde0ff3798556",
|
"rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -185,6 +185,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"devshell_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-topology",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728330715,
|
||||||
|
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"disko": {
|
"disko": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -240,15 +261,15 @@
|
|||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767039857,
|
"lastModified": 1761588595,
|
||||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||||
"owner": "NixOS",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -272,15 +293,15 @@
|
|||||||
"flake-compat_4": {
|
"flake-compat_4": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767039857,
|
"lastModified": 1761588595,
|
||||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||||
"owner": "NixOS",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -310,24 +331,6 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
|
||||||
"lastModified": 1767609335,
|
|
||||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_3": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1765835352,
|
"lastModified": 1765835352,
|
||||||
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
|
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
|
||||||
@@ -342,7 +345,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_4": {
|
"flake-parts_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
@@ -367,6 +370,24 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726560853,
|
||||||
|
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_5"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
@@ -496,11 +517,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767910483,
|
"lastModified": 1766553861,
|
||||||
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
|
"narHash": "sha256-ZbnG01yA3O8Yr1vUm3+NQ2qk9iRhS5bloAnuXHHy7+c=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
|
"rev": "0999ed8f965bbbd991437ad9c5ed3434cecbc30e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -510,27 +531,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"impermanence",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1747978958,
|
|
||||||
"narHash": "sha256-pQQnbxWpY3IiZqgelXHIe/OAE/Yv4NSQq7fch7M6nXQ=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "7419250703fd5eb50e99bdfb07a86671939103ea",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hyprcursor": {
|
"hyprcursor": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprlang": [
|
"hyprlang": [
|
||||||
@@ -576,11 +576,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766946335,
|
"lastModified": 1763733840,
|
||||||
"narHash": "sha256-MRD+Jr2bY11MzNDfenENhiK6pvN+nHygxdHoHbZ1HtE=",
|
"narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "4af02a3925b454deb1c36603843da528b67ded6c",
|
"rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -606,11 +606,11 @@
|
|||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768000181,
|
"lastModified": 1766761711,
|
||||||
"narHash": "sha256-/E66+tcVBnvJcOFL/CjnjBfKew6A2e+28EZrcRHioBw=",
|
"narHash": "sha256-m9VZ9cxYUl9Q9+ROSKmYpVeyIAvz1faqNqBKZ4WamWI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "81e7498ec27156ee97aabba6fe4993412d98d1ab",
|
"rev": "33df518f97b930316742736ecb07dc322da4c5d3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -652,11 +652,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767023960,
|
"lastModified": 1765643131,
|
||||||
"narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=",
|
"narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-guiutils",
|
"repo": "hyprland-guiutils",
|
||||||
"rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660",
|
"rev": "e50ae912813bdfa8372d62daf454f48d6df02297",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -682,11 +682,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767723101,
|
"lastModified": 1766258034,
|
||||||
"narHash": "sha256-jObY8O7OI+91hoE137APsDxm0235/Yx+HhFIip187zM=",
|
"narHash": "sha256-0EoL8X+sYexDBusF9XyY2WoGKRqnARA+vfh/3uAi/j0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-plugins",
|
"repo": "hyprland-plugins",
|
||||||
"rev": "fef398ed5e4faf59bc43b915e46a75cfe8b16697",
|
"rev": "3e29d68d5a830c542643a52d4be726661eaa85e7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -813,11 +813,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766253372,
|
"lastModified": 1766160771,
|
||||||
"narHash": "sha256-1+p4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA=",
|
"narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9",
|
"rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -867,11 +867,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767473322,
|
"lastModified": 1766253200,
|
||||||
"narHash": "sha256-RGOeG+wQHeJ6BKcsSB8r0ZU77g9mDvoQzoTKj2dFHwA=",
|
"narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwire",
|
"repo": "hyprwire",
|
||||||
"rev": "d5e7d6b49fe780353c1cf9a1cf39fa8970bd9d11",
|
"rev": "1079777525b30a947c8d657fac158e00ae85de9d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -881,16 +881,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"impermanence": {
|
"impermanence": {
|
||||||
"inputs": {
|
|
||||||
"home-manager": "home-manager_2",
|
|
||||||
"nixpkgs": "nixpkgs_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767822991,
|
"lastModified": 1737831083,
|
||||||
"narHash": "sha256-iyrn9AcPZCoyxX4OT8eMkBsjG7SRUQXXS/V1JzxS7rA=",
|
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "impermanence",
|
"repo": "impermanence",
|
||||||
"rev": "82e5bc4508cab9e8d5a136626276eb5bbce5e9c5",
|
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -955,11 +951,11 @@
|
|||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768053065,
|
"lastModified": 1766765523,
|
||||||
"narHash": "sha256-+RmYWQUHSSSF+/bVR2U/K7y6Z97fH4vvVW73IDouTFg=",
|
"narHash": "sha256-DCk3GKdKZNjpvNuDy9ZVfVwCy3tlm96/UZnYkJO7N44=",
|
||||||
"owner": "sodiboo",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "95cbdad2ebce328c7b3fca09d9129e02d318b075",
|
"rev": "a3e638c75d07de759421e6f34bd69c3f9a0a3567",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -988,11 +984,11 @@
|
|||||||
"niri-unstable": {
|
"niri-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768048242,
|
"lastModified": 1766751930,
|
||||||
"narHash": "sha256-4thwWvKFEAFNtolJNN3i9wQ78jMI5VmejiLtjv3vNdc=",
|
"narHash": "sha256-83/YSW6c58i/iwGzAFApuMy6MCgoIaROeCcoIGh+ViU=",
|
||||||
"owner": "YaLTeR",
|
"owner": "YaLTeR",
|
||||||
"repo": "niri",
|
"repo": "niri",
|
||||||
"rev": "a6baef7b68fcb60dfc57a9fc04e983cfd8a028ac",
|
"rev": "b5640d5293ad8dca06cb447692ea7cbb21680eb1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1003,17 +999,21 @@
|
|||||||
},
|
},
|
||||||
"nix-topology": {
|
"nix-topology": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"devshell": "devshell_3",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pre-commit-hooks": [
|
||||||
|
"pre-commit-hooks"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767999039,
|
"lastModified": 1765969653,
|
||||||
"narHash": "sha256-VfU/4wlBPcyAfqftIyw5Yk9GPYVwMowRZcvnPBn+Owk=",
|
"narHash": "sha256-qVpQxyvdByeDfb+d+jhbyNna2Ie+w85iHpt4Qu0rv/E=",
|
||||||
"owner": "oddlama",
|
"owner": "oddlama",
|
||||||
"repo": "nix-topology",
|
"repo": "nix-topology",
|
||||||
"rev": "924a60a75e17b8c405c5cf0c721449f6441b9967",
|
"rev": "0ed73e5a1b65eb8ed388d070ebe8dedb9182f466",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1024,11 +1024,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767185284,
|
"lastModified": 1766568855,
|
||||||
"narHash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=",
|
"narHash": "sha256-UXVtN77D7pzKmzOotFTStgZBqpOcf8cO95FcupWp4Zo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "40b1a28dce561bea34858287fbb23052c3ee63fe",
|
"rev": "c5db9569ac9cc70929c268ac461f4003e3e5ca80",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1063,11 +1063,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767379071,
|
"lastModified": 1766070988,
|
||||||
"narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
|
"narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fb7944c166a3b630f177938e478f0378e64ce108",
|
"rev": "c6245e83d836d0433170a16eb185cefe0572f8b8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1092,28 +1092,13 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1765674936,
|
|
||||||
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767799921,
|
"lastModified": 1766736597,
|
||||||
"narHash": "sha256-r4GVX+FToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE=",
|
"narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d351d0653aeb7877273920cd3e823994e7579b0b",
|
"rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1125,11 +1110,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767892417,
|
"lastModified": 1766651565,
|
||||||
"narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=",
|
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
|
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1140,27 +1125,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748026106,
|
"lastModified": 1766736597,
|
||||||
"narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
|
"narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=",
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1767799921,
|
|
||||||
"narHash": "sha256-r4GVX+FToWVE2My8VVZH4V0pTIpnu2ZE8/Z4uxGEMBE=",
|
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d351d0653aeb7877273920cd3e823994e7579b0b",
|
"rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1171,19 +1140,19 @@
|
|||||||
},
|
},
|
||||||
"nixvim": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_4",
|
"flake-parts": "flake-parts_3",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nuschtosSearch": "nuschtosSearch",
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
"systems": "systems_5"
|
"systems": "systems_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767448089,
|
"lastModified": 1766725080,
|
||||||
"narHash": "sha256-U1fHsZBnFrUil731NHD9Sg5HoiG+eSHau8OFuClhwW0=",
|
"narHash": "sha256-JG0KvKmVyAQZ4PxKVDy7FGGUirt1lLhWwGwy9ExLCoI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "983751b66f255bbea1adc185364e9e7b73f82358",
|
"rev": "2d3184cd3dd31f6eb57eb4ddfe2387ebd141f1e5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1193,29 +1162,9 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"noctalia": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1768055992,
|
|
||||||
"narHash": "sha256-vbhRHMcRrKzJ8cppwCQL1Hjk0wqDorDTAG894paemiM=",
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-shell",
|
|
||||||
"rev": "10bd2aa303be259fe39c7f95433bb4a12657ad72",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-shell",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nuschtosSearch": {
|
"nuschtosSearch": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils_2",
|
||||||
"ixx": "ixx",
|
"ixx": "ixx",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
@@ -1246,11 +1195,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767281941,
|
"lastModified": 1765911976,
|
||||||
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
|
"narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
|
"rev": "b68b780b69702a090c8bb1b973bab13756cc7a27",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1268,11 +1217,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767281941,
|
"lastModified": 1765911976,
|
||||||
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
|
"narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
|
"rev": "b68b780b69702a090c8bb1b973bab13756cc7a27",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1300,15 +1249,13 @@
|
|||||||
"nix-topology": "nix-topology",
|
"nix-topology": "nix-topology",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixos-mailserver": "nixos-mailserver",
|
"nixos-mailserver": "nixos-mailserver",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
"noctalia": "noctalia",
|
|
||||||
"pre-commit-hooks": "pre-commit-hooks_2",
|
"pre-commit-hooks": "pre-commit-hooks_2",
|
||||||
"secrets": "secrets",
|
"secrets": "secrets",
|
||||||
"thunderbird-gnome-theme": "thunderbird-gnome-theme",
|
"thunderbird-gnome-theme": "thunderbird-gnome-theme",
|
||||||
"treefmt-nix": "treefmt-nix_2",
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
"zen-browser": "zen-browser"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"secrets": {
|
"secrets": {
|
||||||
@@ -1402,6 +1349,21 @@
|
|||||||
"type": "github"
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
"thunderbird-gnome-theme": {
|
"thunderbird-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -1446,11 +1408,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768031762,
|
"lastModified": 1766000401,
|
||||||
"narHash": "sha256-b2gJDJfi+TbA7Hu2sKip+1mWqya0GJaWrrXQjpbOVTU=",
|
"narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "0c445aa21b01fd1d4bb58927f7b268568af87b20",
|
"rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1538,11 +1500,11 @@
|
|||||||
"xwayland-satellite-unstable": {
|
"xwayland-satellite-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767932953,
|
"lastModified": 1766429945,
|
||||||
"narHash": "sha256-V8+DrPOp940J6icERAaGuDQTKyEyZzFuRw363XwDKXg=",
|
"narHash": "sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd+XoTkzqF7E=",
|
||||||
"owner": "Supreeeme",
|
"owner": "Supreeeme",
|
||||||
"repo": "xwayland-satellite",
|
"repo": "xwayland-satellite",
|
||||||
"rev": "bc47ef59501556fc2584155ddef76493752dd727",
|
"rev": "0dde7ca1d3a8e8c5082533d76084e2aa02bef70e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1550,26 +1512,6 @@
|
|||||||
"repo": "xwayland-satellite",
|
"repo": "xwayland-satellite",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"zen-browser": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1767618227,
|
|
||||||
"narHash": "sha256-9+XVF47E9NCVs249SSsDtr7YdG/23/lCJmWAjQvOfqI=",
|
|
||||||
"owner": "youwen5",
|
|
||||||
"repo": "zen-browser-flake",
|
|
||||||
"rev": "1586e49b3908b058e221f11d843eb46392dba17b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "youwen5",
|
|
||||||
"repo": "zen-browser-flake",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
19
flake.nix
19
flake.nix
@@ -60,13 +60,13 @@
|
|||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||||
|
|
||||||
niri = {
|
niri = {
|
||||||
url = "github:sodiboo/niri-flake";
|
url = "github:sodiboo/niri-flake";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
|
||||||
|
|
||||||
nixos-mailserver = {
|
nixos-mailserver = {
|
||||||
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.11";
|
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -86,11 +86,7 @@
|
|||||||
nix-topology = {
|
nix-topology = {
|
||||||
url = "github:oddlama/nix-topology";
|
url = "github:oddlama/nix-topology";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
inputs.pre-commit-hooks.follows = "pre-commit-hooks";
|
||||||
|
|
||||||
noctalia = {
|
|
||||||
url = "github:noctalia-dev/noctalia-shell";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pre-commit-hooks = {
|
pre-commit-hooks = {
|
||||||
@@ -112,11 +108,6 @@
|
|||||||
url = "github:numtide/treefmt-nix";
|
url = "github:numtide/treefmt-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
zen-browser = {
|
|
||||||
url = "github:youwen5/zen-browser-flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
@@ -150,7 +141,7 @@
|
|||||||
perSystem =
|
perSystem =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
formatter = pkgs.nixfmt;
|
formatter = pkgs.nixfmt-rfc-style;
|
||||||
|
|
||||||
legacyPackages = pkgs.lib.packagesFromDirectoryRecursive {
|
legacyPackages = pkgs.lib.packagesFromDirectoryRecursive {
|
||||||
callPackage = pkgs.callPackage;
|
callPackage = pkgs.callPackage;
|
||||||
@@ -182,7 +173,7 @@
|
|||||||
no-lambda-arg = true;
|
no-lambda-arg = true;
|
||||||
};
|
};
|
||||||
mdformat.enable = true;
|
mdformat.enable = true;
|
||||||
nixfmt.enable = true;
|
nixfmt-rfc-style.enable = true;
|
||||||
shellcheck.enable = true;
|
shellcheck.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -68,9 +68,8 @@ in
|
|||||||
"amdgpu.sched_hw_submission=4"
|
"amdgpu.sched_hw_submission=4"
|
||||||
"audit=0"
|
"audit=0"
|
||||||
];
|
];
|
||||||
kernelPackages = pkgs.linuxPackages_6_18;
|
kernelPackages = pkgs.linuxPackages_6_17;
|
||||||
supportedFilesystems = [ "ntfs" ];
|
supportedFilesystems = [ "ntfs" ];
|
||||||
zfs.package = pkgs.zfs_2_4;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
config = {
|
config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
};
|
};
|
||||||
system = final.stdenv.hostPlatform.system;
|
system = final.system;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(import ../overlays/default.nix)
|
(import ../overlays/default.nix)
|
||||||
@@ -80,10 +80,9 @@
|
|||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
package = pkgs.nixVersions.stable;
|
package = pkgs.nixVersions.stable;
|
||||||
settings.extra-experimental-features = [
|
extraOptions = ''
|
||||||
"flakes"
|
experimental-features = nix-command flakes
|
||||||
"nix-command"
|
'';
|
||||||
];
|
|
||||||
buildMachines = [
|
buildMachines = [
|
||||||
{
|
{
|
||||||
hostName = "10.0.1.235";
|
hostName = "10.0.1.235";
|
||||||
|
|||||||
101
hosts/hypnos/0001-Add-apple_set_os-EFI-boot-service.patch
Normal file
101
hosts/hypnos/0001-Add-apple_set_os-EFI-boot-service.patch
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
From d310ddee0fb8e7a5a8b89668c6cb8f9dc863ce94 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jordan Holt <jordan@vimium.com>
|
||||||
|
Date: Sun, 28 Apr 2024 15:59:52 +0100
|
||||||
|
Subject: [PATCH] Add apple_set_os EFI boot service
|
||||||
|
|
||||||
|
---
|
||||||
|
drivers/firmware/efi/libstub/x86-stub.c | 59 +++++++++++++++++++++++++
|
||||||
|
include/linux/efi.h | 1 +
|
||||||
|
2 files changed, 60 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/firmware/efi/libstub/x86-stub.c b/drivers/firmware/efi/libstub/x86-stub.c
|
||||||
|
index d5a8182cf..be722c43a 100644
|
||||||
|
--- a/drivers/firmware/efi/libstub/x86-stub.c
|
||||||
|
+++ b/drivers/firmware/efi/libstub/x86-stub.c
|
||||||
|
@@ -449,6 +449,63 @@ static void setup_graphics(struct boot_params *boot_params)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+typedef struct {
|
||||||
|
+ u64 version;
|
||||||
|
+ void (*set_os_version) (const char *os_version);
|
||||||
|
+ void (*set_os_vendor) (const char *os_vendor);
|
||||||
|
+} apple_set_os_interface_t;
|
||||||
|
+
|
||||||
|
+static efi_status_t apple_set_os()
|
||||||
|
+{
|
||||||
|
+ apple_set_os_interface_t *set_os;
|
||||||
|
+ efi_guid_t set_os_guid = APPLE_SET_OS_PROTOCOL_GUID;
|
||||||
|
+ efi_status_t status;
|
||||||
|
+ void **handles;
|
||||||
|
+ unsigned long i, nr_handles, size = 0;
|
||||||
|
+
|
||||||
|
+ status = efi_bs_call(locate_handle, EFI_LOCATE_BY_PROTOCOL,
|
||||||
|
+ &set_os_guid, NULL, &size, handles);
|
||||||
|
+
|
||||||
|
+ if (status == EFI_BUFFER_TOO_SMALL) {
|
||||||
|
+ status = efi_bs_call(allocate_pool, EFI_LOADER_DATA,
|
||||||
|
+ size, &handles);
|
||||||
|
+
|
||||||
|
+ if (status != EFI_SUCCESS)
|
||||||
|
+ return status;
|
||||||
|
+
|
||||||
|
+ status = efi_bs_call(locate_handle, EFI_LOCATE_BY_PROTOCOL,
|
||||||
|
+ &set_os_guid, NULL, &size, handles);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (status != EFI_SUCCESS)
|
||||||
|
+ goto free_handle;
|
||||||
|
+
|
||||||
|
+ nr_handles = size / sizeof(void *);
|
||||||
|
+ for (i = 0; i < nr_handles; i++) {
|
||||||
|
+ void *h = handles[i];
|
||||||
|
+
|
||||||
|
+ status = efi_bs_call(handle_protocol, h,
|
||||||
|
+ &set_os_guid, &set_os);
|
||||||
|
+
|
||||||
|
+ if (status != EFI_SUCCESS || !set_os)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ if (set_os->version > 0) {
|
||||||
|
+ efi_bs_call((unsigned long)set_os->set_os_version,
|
||||||
|
+ "Mac OS X 10.9");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (set_os->version >= 2) {
|
||||||
|
+ efi_bs_call((unsigned long)set_os->set_os_vendor,
|
||||||
|
+ "Apple Inc.");
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+free_handle:
|
||||||
|
+ efi_bs_call(free_pool, uga_handle);
|
||||||
|
+
|
||||||
|
+ return status;
|
||||||
|
+}
|
||||||
|
|
||||||
|
static void __noreturn efi_exit(efi_handle_t handle, efi_status_t status)
|
||||||
|
{
|
||||||
|
@@ -951,6 +1008,8 @@ void __noreturn efi_stub_entry(efi_handle_t handle,
|
||||||
|
|
||||||
|
setup_unaccepted_memory();
|
||||||
|
|
||||||
|
+ apple_set_os();
|
||||||
|
+
|
||||||
|
status = exit_boot(boot_params, handle);
|
||||||
|
if (status != EFI_SUCCESS) {
|
||||||
|
efi_err("exit_boot() failed!\n");
|
||||||
|
diff --git a/include/linux/efi.h b/include/linux/efi.h
|
||||||
|
index d59b0947f..81158014f 100644
|
||||||
|
--- a/include/linux/efi.h
|
||||||
|
+++ b/include/linux/efi.h
|
||||||
|
@@ -385,6 +385,7 @@ void efi_native_runtime_setup(void);
|
||||||
|
#define EFI_MEMORY_ATTRIBUTES_TABLE_GUID EFI_GUID(0xdcfa911d, 0x26eb, 0x469f, 0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20)
|
||||||
|
#define EFI_CONSOLE_OUT_DEVICE_GUID EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
|
||||||
|
#define APPLE_PROPERTIES_PROTOCOL_GUID EFI_GUID(0x91bd12fe, 0xf6c3, 0x44fb, 0xa5, 0xb7, 0x51, 0x22, 0xab, 0x30, 0x3a, 0xe0)
|
||||||
|
+#define APPLE_SET_OS_PROTOCOL_GUID EFI_GUID(0xc5c5da95, 0x7d5c, 0x45e6, 0xb2, 0xf1, 0x3f, 0xd5, 0x2b, 0xb1, 0x00, 0x77)
|
||||||
|
#define EFI_TCG2_PROTOCOL_GUID EFI_GUID(0x607f766c, 0x7455, 0x42be, 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f)
|
||||||
|
#define EFI_TCG2_FINAL_EVENTS_TABLE_GUID EFI_GUID(0x1e2ed096, 0x30e2, 0x4254, 0xbd, 0x89, 0x86, 0x3b, 0xbe, 0xf8, 0x23, 0x25)
|
||||||
|
#define EFI_LOAD_FILE_PROTOCOL_GUID EFI_GUID(0x56ec3091, 0x954c, 0x11d2, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
|
||||||
|
--
|
||||||
|
2.42.0
|
||||||
@@ -24,24 +24,16 @@ Apple SSD SM0512F | `/dev/sda1` (EFI, 256 MiB, NixOS Boot) <br> `/dev/sda2` (ZFS
|
|||||||
rpool/
|
rpool/
|
||||||
├── local
|
├── local
|
||||||
│ ├── nix
|
│ ├── nix
|
||||||
|
│ └── tmp
|
||||||
|
├── system
|
||||||
│ ├── root
|
│ ├── root
|
||||||
│ └── state
|
│ └── var
|
||||||
└── safe
|
└── user
|
||||||
└── persist
|
└── home
|
||||||
```
|
```
|
||||||
|
|
||||||
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets.
|
See [Graham Christensen's article](https://grahamc.com/blog/nixos-on-zfs/#datasets) for the motivation behind these datasets.
|
||||||
|
|
||||||
#### Impermanence
|
|
||||||
|
|
||||||
This machine uses [impermanence](https://github.com/nix-community/impermanence) and is rolled back to a clean state on each reboot.
|
|
||||||
|
|
||||||
Mountpoint | Persists across reboots? | Backed up?
|
|
||||||
--- | --- | ---
|
|
||||||
`/` | No | Yes
|
|
||||||
`/state` | Yes | No
|
|
||||||
`/persist` | Yes | Yes
|
|
||||||
|
|
||||||
### Networks
|
### Networks
|
||||||
|
|
||||||
- DHCP on `10.0.1.0/24` subnet.
|
- DHCP on `10.0.1.0/24` subnet.
|
||||||
|
|||||||
@@ -4,113 +4,50 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
inherit (lib)
|
|
||||||
mkForce
|
|
||||||
;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.disko.nixosModules.disko
|
inputs.disko.nixosModules.disko
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./disko-config.nix
|
./disko-config.nix
|
||||||
../desktop.nix
|
../desktop.nix
|
||||||
../../modules/nixos/deterministic-ids.nix
|
|
||||||
../../users/jordan
|
../../users/jordan
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
hostPlatform = "x86_64-linux";
|
hostPlatform = "x86_64-linux";
|
||||||
config = {
|
config = {
|
||||||
permittedInsecurePackages = [ "broadcom-sta-6.30.223.271-59-6.12.63" ];
|
nvidia.acceptLicense = true;
|
||||||
|
permittedInsecurePackages = [ "broadcom-sta-6.30.223.271-57-6.12.41" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
age.rekey.hostPubkey = ./ssh_host_ed25519_key.pub;
|
||||||
|
|
||||||
boot = {
|
boot.loader = {
|
||||||
loader = {
|
systemd-boot.enable = true;
|
||||||
systemd-boot.enable = true;
|
efi.canTouchEfiVariables = true;
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
initrd.systemd = {
|
|
||||||
enable = true;
|
|
||||||
extraBin.cryptsetup = "${pkgs.cryptsetup}/bin/cryptsetup";
|
|
||||||
services."zfs-import-rpool".after = [ "cryptsetup.target" ];
|
|
||||||
};
|
|
||||||
tmp.useTmpfs = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
console.earlySetup = true;
|
networking.hostId = "cf791898";
|
||||||
|
|
||||||
systemd.network.enable = true;
|
# nvidia 470 driver doesn't work with Wayland
|
||||||
systemd.network.wait-online.enable = false;
|
services = {
|
||||||
|
xserver = {
|
||||||
networking = {
|
displayManager.gdm.wayland = lib.mkForce false;
|
||||||
hostId = "cf791898";
|
videoDrivers = [ "nvidia" ];
|
||||||
useNetworkd = true;
|
};
|
||||||
dhcpcd.enable = false;
|
displayManager = {
|
||||||
firewall = {
|
defaultSession = "gnome-xorg";
|
||||||
enable = true;
|
|
||||||
allowedTCPPorts = [
|
|
||||||
22 # SSH
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
services.resolved = {
|
|
||||||
enable = true;
|
|
||||||
dnssec = "false";
|
|
||||||
fallbackDns = [
|
|
||||||
"9.9.9.9"
|
|
||||||
"2620:fe::fe"
|
|
||||||
"1.1.1.1"
|
|
||||||
"2606:4700:4700::1111"
|
|
||||||
];
|
|
||||||
llmnr = "false";
|
|
||||||
extraConfig = ''
|
|
||||||
MulticastDNS=false
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Workaround for label rendering bug in GTK4 with nvidia 470 driver
|
# Workaround for label rendering bug in GTK4 with nvidia 470 driver
|
||||||
environment.sessionVariables.GSK_RENDERER = "gl";
|
environment.sessionVariables.GSK_RENDERER = "gl";
|
||||||
|
|
||||||
environment.persistence."/persist".enable = mkForce true;
|
environment.systemPackages = [
|
||||||
environment.persistence."/state".enable = mkForce true;
|
pkgs.moonlight-qt
|
||||||
|
];
|
||||||
modules = {
|
|
||||||
system.desktop.gnome.enable = mkForce false;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.openssh.settings.PermitRootLogin = mkForce "prohibit-password";
|
|
||||||
|
|
||||||
users = {
|
|
||||||
users = {
|
|
||||||
root = {
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILVHTjsyMIV4THNw6yz0OxAxGnC+41gX72UrPqTzR+OS jordan@vimium.com"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.deterministicIds =
|
|
||||||
let
|
|
||||||
uidGid = id: {
|
|
||||||
uid = id;
|
|
||||||
gid = id;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
systemd-oom = uidGid 999;
|
|
||||||
systemd-coredump = uidGid 998;
|
|
||||||
sshd = uidGid 997;
|
|
||||||
nscd = uidGid 996;
|
|
||||||
polkituser = uidGid 995;
|
|
||||||
rtkit = uidGid 994;
|
|
||||||
lpadmin = uidGid 993;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "22.11";
|
system.stateVersion = "22.11";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,32 +8,20 @@
|
|||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
efi = {
|
ESP = {
|
||||||
size = "256M";
|
size = "256M";
|
||||||
type = "ef00";
|
type = "EF00";
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "filesystem";
|
||||||
format = "vfat";
|
format = "vfat";
|
||||||
mountpoint = "/boot";
|
mountpoint = "/boot";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
swap = {
|
zfs = {
|
||||||
size = "8G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
randomEncryption = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
rpool = {
|
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "zfs";
|
||||||
name = "rpool_ata-APPLE_SSD_SM0512F_S1K5NYBF736152";
|
pool = "rpool";
|
||||||
settings.allowDiscards = true;
|
|
||||||
content = {
|
|
||||||
type = "zfs";
|
|
||||||
pool = "rpool";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -47,59 +35,87 @@
|
|||||||
ashift = "12";
|
ashift = "12";
|
||||||
};
|
};
|
||||||
rootFsOptions = {
|
rootFsOptions = {
|
||||||
compression = "zstd";
|
|
||||||
acltype = "posix";
|
|
||||||
atime = "off";
|
|
||||||
xattr = "sa";
|
|
||||||
dnodesize = "auto";
|
|
||||||
mountpoint = "none";
|
|
||||||
canmount = "off";
|
canmount = "off";
|
||||||
devices = "off";
|
mountpoint = "none";
|
||||||
exec = "off";
|
dnodesize = "auto";
|
||||||
setuid = "off";
|
xattr = "sa";
|
||||||
};
|
};
|
||||||
|
postCreateHook = "zfs snapshot rpool@blank";
|
||||||
datasets = {
|
datasets = {
|
||||||
"local" = {
|
local = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
};
|
|
||||||
"local/root" = {
|
|
||||||
type = "zfs_fs";
|
|
||||||
mountpoint = "/";
|
|
||||||
options = {
|
options = {
|
||||||
canmount = "noauto";
|
mountpoint = "none";
|
||||||
mountpoint = "/";
|
|
||||||
exec = "on";
|
|
||||||
setuid = "on";
|
|
||||||
};
|
};
|
||||||
postCreateHook = "zfs snapshot rpool/local/root@blank";
|
|
||||||
};
|
};
|
||||||
"local/nix" = {
|
"local/nix" = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
mountpoint = "/nix";
|
mountpoint = "/nix";
|
||||||
options = {
|
options = {
|
||||||
canmount = "noauto";
|
atime = "off";
|
||||||
mountpoint = "/nix";
|
mountpoint = "legacy";
|
||||||
exec = "on";
|
|
||||||
setuid = "on";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"local/state" = {
|
"local/tmp" = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
mountpoint = "/state";
|
mountpoint = "/tmp";
|
||||||
options = {
|
options = {
|
||||||
canmount = "noauto";
|
setuid = "off";
|
||||||
mountpoint = "/state";
|
devices = "off";
|
||||||
|
mountpoint = "legacy";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"safe" = {
|
system = {
|
||||||
type = "zfs_fs";
|
type = "zfs_fs";
|
||||||
};
|
mountpoint = "/";
|
||||||
"safe/persist" = {
|
|
||||||
type = "zfs_fs";
|
|
||||||
mountpoint = "/persist";
|
|
||||||
options = {
|
options = {
|
||||||
canmount = "noauto";
|
mountpoint = "legacy";
|
||||||
mountpoint = "/persist";
|
};
|
||||||
|
};
|
||||||
|
"system/var" = {
|
||||||
|
type = "zfs_fs";
|
||||||
|
mountpoint = "/var";
|
||||||
|
options = {
|
||||||
|
mountpoint = "legacy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"system/var/tmp" = {
|
||||||
|
type = "zfs_fs";
|
||||||
|
mountpoint = "/var/tmp";
|
||||||
|
options = {
|
||||||
|
devices = "off";
|
||||||
|
mountpoint = "legacy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"system/var/log" = {
|
||||||
|
type = "zfs_fs";
|
||||||
|
mountpoint = "/var/log";
|
||||||
|
options = {
|
||||||
|
compression = "on";
|
||||||
|
acltype = "posix";
|
||||||
|
mountpoint = "legacy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
user = {
|
||||||
|
type = "zfs_fs";
|
||||||
|
options = {
|
||||||
|
mountpoint = "none";
|
||||||
|
encryption = "aes-256-gcm";
|
||||||
|
keyformat = "passphrase";
|
||||||
|
keylocation = "file:///tmp/secret.key";
|
||||||
|
};
|
||||||
|
# use this to read the key during boot
|
||||||
|
postCreateHook = ''
|
||||||
|
zfs set keylocation="prompt" "rpool/$name";
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
"user/home" = {
|
||||||
|
type = "zfs_fs";
|
||||||
|
mountpoint = "/home";
|
||||||
|
options = {
|
||||||
|
setuid = "off";
|
||||||
|
devices = "off";
|
||||||
|
mountpoint = "legacy";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
];
|
];
|
||||||
extraModulePackages = [
|
extraModulePackages = [
|
||||||
config.boot.kernelPackages.broadcom_sta
|
config.boot.kernelPackages.broadcom_sta
|
||||||
|
config.boot.kernelPackages.nvidiaPackages.legacy_470
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -39,6 +40,11 @@
|
|||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
nvidia = {
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
|
||||||
|
modesetting.enable = true;
|
||||||
|
powerManagement.enable = true;
|
||||||
|
};
|
||||||
graphics = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
|
|||||||
@@ -83,12 +83,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# We actually use the home-manager module to add the actual portal config,
|
|
||||||
# but need this so relevant implementations are found
|
|
||||||
environment.pathsToLink = [
|
|
||||||
"/share/xdg-desktop-portal"
|
|
||||||
];
|
|
||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
hardware.presonus-studio.enable = true;
|
hardware.presonus-studio.enable = true;
|
||||||
services = {
|
services = {
|
||||||
@@ -108,7 +102,7 @@
|
|||||||
};
|
};
|
||||||
system.desktop = {
|
system.desktop = {
|
||||||
gnome.enable = lib.mkForce false;
|
gnome.enable = lib.mkForce false;
|
||||||
hyprland.enable = lib.mkForce false;
|
hyprland.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,100 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib)
|
|
||||||
concatLists
|
|
||||||
flip
|
|
||||||
mapAttrsToList
|
|
||||||
mkDefault
|
|
||||||
mkIf
|
|
||||||
mkOption
|
|
||||||
types
|
|
||||||
;
|
|
||||||
|
|
||||||
cfg = config.users.deterministicIds;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
users.deterministicIds = mkOption {
|
|
||||||
default = { };
|
|
||||||
description = ''
|
|
||||||
Maps a user or group name to its expected uid/gid values. If a user/group is
|
|
||||||
used on the system without specifying a uid/gid, this module will assign the
|
|
||||||
corresponding ids defined here, or show an error if the definition is missing.
|
|
||||||
'';
|
|
||||||
type = types.attrsOf (
|
|
||||||
types.submodule {
|
|
||||||
options = {
|
|
||||||
uid = mkOption {
|
|
||||||
type = types.nullOr types.int;
|
|
||||||
default = null;
|
|
||||||
description = "The uid to assign if it is missing in `users.users.<name>`.";
|
|
||||||
};
|
|
||||||
gid = mkOption {
|
|
||||||
type = types.nullOr types.int;
|
|
||||||
default = null;
|
|
||||||
description = "The gid to assign if it is missing in `users.groups.<name>`.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users = mkOption {
|
|
||||||
type = types.attrsOf (
|
|
||||||
types.submodule (
|
|
||||||
{ name, ... }:
|
|
||||||
{
|
|
||||||
config.uid =
|
|
||||||
let
|
|
||||||
deterministicUid = cfg.${name}.uid or null;
|
|
||||||
in
|
|
||||||
mkIf (deterministicUid != null) (mkDefault deterministicUid);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups = mkOption {
|
|
||||||
type = types.attrsOf (
|
|
||||||
types.submodule (
|
|
||||||
{ name, ... }:
|
|
||||||
{
|
|
||||||
config.gid =
|
|
||||||
let
|
|
||||||
deterministicGid = cfg.${name}.gid or null;
|
|
||||||
in
|
|
||||||
mkIf (deterministicGid != null) (mkDefault deterministicGid);
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
assertions =
|
|
||||||
concatLists (
|
|
||||||
flip mapAttrsToList config.users.users (
|
|
||||||
name: user: [
|
|
||||||
{
|
|
||||||
assertion = user.uid != null;
|
|
||||||
message = "non-deterministic uid detected for '${name}', please assign one via `users.deterministicIds`";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
assertion = !user.autoSubUidGidRange;
|
|
||||||
message = "non-deterministic subUids/subGids detected for: ${name}";
|
|
||||||
}
|
|
||||||
]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
++ flip mapAttrsToList config.users.groups (
|
|
||||||
name: group: {
|
|
||||||
assertion = group.gid != null;
|
|
||||||
message = "non-deterministic gid detected for '${name}', please assign one via `users.deterministicIds`";
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,14 +1,21 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (lib)
|
inherit (lib)
|
||||||
|
attrNames
|
||||||
|
flip
|
||||||
|
isAttrs
|
||||||
|
mapAttrs
|
||||||
mkIf
|
mkIf
|
||||||
|
mkMerge
|
||||||
|
mkOption
|
||||||
optionals
|
optionals
|
||||||
|
types
|
||||||
;
|
;
|
||||||
zfsPkg = config.boot.zfs.package;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
boot.zfs.forceImportRoot = false;
|
boot.zfs.forceImportRoot = false;
|
||||||
@@ -24,7 +31,7 @@ in
|
|||||||
unitConfig.DefaultDependencies = "no";
|
unitConfig.DefaultDependencies = "no";
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
ExecStart = "${zfsPkg}/bin/zfs rollback -r rpool/local/root@blank";
|
ExecStart = "${pkgs.zfs}/bin/zfs rollback -r rpool/local/root@blank";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -81,4 +88,60 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
users.mutableUsers = !config.environment.persistence."/persist".enable;
|
users.mutableUsers = !config.environment.persistence."/persist".enable;
|
||||||
|
|
||||||
|
# For each user that has a home-manager config, merge the locally defined
|
||||||
|
# persistence options that we defined above.
|
||||||
|
imports =
|
||||||
|
let
|
||||||
|
mkUserFiles = map (
|
||||||
|
x: { parentDirectory.mode = "700"; } // (if isAttrs x then x else { file = x; })
|
||||||
|
);
|
||||||
|
mkUserDirs = map (x: { mode = "700"; } // (if isAttrs x then x else { directory = x; }));
|
||||||
|
in
|
||||||
|
[
|
||||||
|
{
|
||||||
|
environment.persistence = mkMerge (
|
||||||
|
flip map (attrNames config.home-manager.users) (
|
||||||
|
user:
|
||||||
|
let
|
||||||
|
hmUserCfg = config.home-manager.users.${user};
|
||||||
|
in
|
||||||
|
flip mapAttrs hmUserCfg.home.persistence (
|
||||||
|
_: sourceCfg: {
|
||||||
|
users.${user} = {
|
||||||
|
files = mkUserFiles sourceCfg.files;
|
||||||
|
directories = mkUserDirs sourceCfg.directories;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
{
|
||||||
|
options.home.persistence = mkOption {
|
||||||
|
description = "Additional persistence config for the given source path";
|
||||||
|
default = { };
|
||||||
|
type = types.attrsOf (
|
||||||
|
types.submodule {
|
||||||
|
options = {
|
||||||
|
files = mkOption {
|
||||||
|
description = "Additional files to persist via NixOS impermanence.";
|
||||||
|
type = types.listOf (types.either types.attrs types.str);
|
||||||
|
default = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
directories = mkOption {
|
||||||
|
description = "Additional directories to persist via NixOS impermanence.";
|
||||||
|
type = types.listOf (types.either types.attrs types.str);
|
||||||
|
default = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
@@ -8,7 +9,6 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.modules.podman;
|
cfg = config.modules.podman;
|
||||||
zfsPkg = config.boot.zfs.package;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.podman = {
|
options.modules.podman = {
|
||||||
@@ -29,7 +29,7 @@ in
|
|||||||
dates = "weekly";
|
dates = "weekly";
|
||||||
flags = [ "--all" ];
|
flags = [ "--all" ];
|
||||||
};
|
};
|
||||||
extraPackages = [ zfsPkg ];
|
extraPackages = [ pkgs.zfs ];
|
||||||
};
|
};
|
||||||
|
|
||||||
containers.storage.settings.storage = {
|
containers.storage.settings.storage = {
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1,7 +0,0 @@
|
|||||||
age-encryption.org/v1
|
|
||||||
-> ssh-ed25519 5PDipg VUUf0H5YtcvVIQGHWSRUjCCWJFC8uyifg9jb3dcKQEM
|
|
||||||
2u40LYxerTKD200Mkp/UhMFDwRQy/u74lpFa7JG783g
|
|
||||||
-> vSi-grease xC k Y9 7n3c
|
|
||||||
WC+dOm6hxAlN9zTouhlfHvZCHfJaGnqOMa5jSIw
|
|
||||||
--- 0ywtnNEFe21IGFUvzuzK0dO65YKZCymavaqHOmKB9iQ
|
|
||||||
Lš\_%£™ø%2{ÀˆSªžè eMî‡c¹8ˆÝHzÂ`zžà×<C3A0>LTJ1öðm6JE¡pñd`žÍÁMfÙâ5Äî½ü×ðKAØ<Vb‹ù_¿‘ÉǬhæÖí¶o# “‚Ôa€ªóí¸ñ7j„„q>ùW.¤ C«ŸðÏ:Ü¿K•¸«©q]_U•–#‘/M=×-PÓ¦
|
|
||||||
Binary file not shown.
@@ -160,7 +160,7 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
default_session = {
|
default_session = {
|
||||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --sessions ${desktops}/share/xsessions:${desktops}/share/wayland-sessions";
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --sessions ${desktops}/share/xsessions:${desktops}/share/wayland-sessions";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,9 +17,6 @@
|
|||||||
email = "jordan@vimium.com";
|
email = "jordan@vimium.com";
|
||||||
name = "Jordan Holt";
|
name = "Jordan Holt";
|
||||||
};
|
};
|
||||||
rebase.autosquash = true;
|
|
||||||
push.default = "current";
|
|
||||||
pull.rebase = true;
|
|
||||||
};
|
};
|
||||||
ignores = [
|
ignores = [
|
||||||
".Trash-*"
|
".Trash-*"
|
||||||
@@ -40,5 +37,10 @@
|
|||||||
key = "B8CFFF61F1CCF520";
|
key = "B8CFFF61F1CCF520";
|
||||||
signByDefault = true;
|
signByDefault = true;
|
||||||
};
|
};
|
||||||
|
extraConfig = {
|
||||||
|
rebase.autosquash = true;
|
||||||
|
push.default = "current";
|
||||||
|
pull.rebase = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
xsession = {
|
|
||||||
enable = true;
|
|
||||||
windowManager.awesome.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
config,
|
||||||
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
@@ -15,62 +15,38 @@ in
|
|||||||
inputs.niri.homeModules.niri
|
inputs.niri.homeModules.niri
|
||||||
];
|
];
|
||||||
|
|
||||||
services.gnome-keyring.enable = true;
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xdgOpenUsePortal = true;
|
xdgOpenUsePortal = true;
|
||||||
config.niri = {
|
config.niri = {
|
||||||
default = [
|
default = [
|
||||||
"gtk"
|
|
||||||
"gnome"
|
"gnome"
|
||||||
|
"gtk"
|
||||||
];
|
];
|
||||||
"org.freedesktop.impl.portal.Access" = [ "gtk" ];
|
"org.freedesktop.impl.portal.Access" = "gtk";
|
||||||
"org.freedesktop.impl.portal.Notification" = [ "gtk" ];
|
"org.freedesktop.impl.portal.Notification" = "gtk";
|
||||||
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ];
|
"org.freedesktop.impl.portal.Secret" = "gnome-keyring";
|
||||||
"org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
|
"org.freedesktop.impl.portal.FileChooser" = "gtk";
|
||||||
"org.freedesktop.impl.portal.ScreenCast" = [ "xdg-desktop-portal-gnome" ];
|
"org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ];
|
||||||
"org.freedesktop.impl.portal.Screenshot" = [ "xdg-desktop-portal-gnome" ];
|
"org.freedesktop.impl.portal.Screenshot" = [ "gnome" ];
|
||||||
};
|
};
|
||||||
extraPortals = [
|
extraPortals = with pkgs; [
|
||||||
pkgs.gnome-keyring
|
xdg-desktop-portal-gtk
|
||||||
pkgs.xdg-desktop-portal-gtk
|
xdg-desktop-portal-gnome
|
||||||
pkgs.xdg-desktop-portal-gnome
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.zsh.initContent = lib.mkOrder 9999 ''
|
|
||||||
if [[ -t 0 && "$(tty || true)" == /dev/tty1 && -z "$DISPLAY" && -z "$WAYLAND_DISPLAY" ]]; then
|
|
||||||
echo "Login shell detected. Starting wayland..."
|
|
||||||
niri-session
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.niri = {
|
programs.niri = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.niri-unstable;
|
package = pkgs.niri-unstable;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
xwayland-satellite.path = getExe pkgs.xwayland-satellite-stable;
|
xwayland-satellite.path = getExe pkgs.xwayland-satellite-stable;
|
||||||
|
|
||||||
environment = {
|
|
||||||
"QT_QPA_PLATFORM" = "wayland";
|
|
||||||
"XDG_SESSION_TYPE" = "wayland";
|
|
||||||
"NIXOS_OZONE_WL" = "1";
|
|
||||||
"MOZ_ENABLE_WAYLAND" = "1";
|
|
||||||
"MOZ_WEBRENDER" = "1";
|
|
||||||
"_JAVA_AWT_WM_NONREPARENTING" = "1";
|
|
||||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION" = "1";
|
|
||||||
"GDK_BACKEND" = "wayland";
|
|
||||||
"GBM_BACKEND" = "nvidia-drm";
|
|
||||||
"GSK_RENDERER" = "vulkan";
|
|
||||||
"LIBVA_DRIVER_NAME" = "nvidia";
|
|
||||||
};
|
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
keyboard = {
|
keyboard = {
|
||||||
xkb = {
|
xkb = {
|
||||||
layout = "us";
|
layout = "us";
|
||||||
options = "ctrl:nocaps";
|
variant = "intl";
|
||||||
};
|
};
|
||||||
|
|
||||||
repeat-delay = 235;
|
repeat-delay = 235;
|
||||||
@@ -96,7 +72,6 @@ in
|
|||||||
|
|
||||||
gestures.hot-corners.enable = false;
|
gestures.hot-corners.enable = false;
|
||||||
debug.honor-xdg-activation-with-invalid-serial = true;
|
debug.honor-xdg-activation-with-invalid-serial = true;
|
||||||
|
|
||||||
binds = with config.lib.niri.actions; {
|
binds = with config.lib.niri.actions; {
|
||||||
"Mod+T".action = spawn "kitty";
|
"Mod+T".action = spawn "kitty";
|
||||||
"Mod+b".action = spawn "firefox";
|
"Mod+b".action = spawn "firefox";
|
||||||
@@ -118,7 +93,6 @@ in
|
|||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
};
|
};
|
||||||
"Mod+Q".action = close-window;
|
"Mod+Q".action = close-window;
|
||||||
"Mod+Space".action = spawn "noctalia-shell" "ipc" "call" "launcher" "toggle";
|
|
||||||
|
|
||||||
"Mod+n".action = focus-column-left;
|
"Mod+n".action = focus-column-left;
|
||||||
"Mod+left".action = focus-column-left;
|
"Mod+left".action = focus-column-left;
|
||||||
@@ -197,18 +171,19 @@ in
|
|||||||
|
|
||||||
"Mod+y".action = toggle-column-tabbed-display;
|
"Mod+y".action = toggle-column-tabbed-display;
|
||||||
|
|
||||||
"Print".action.screenshot = { };
|
#"Print".action = screenshot;
|
||||||
"Ctrl+Print".action.screenshot-screen = {
|
#"Ctrl+Print".action = screenshot-screen {};
|
||||||
show-pointer = false;
|
#"Alt+Print".action = screenshot-window;
|
||||||
};
|
|
||||||
"Alt+Print".action.screenshot-window = { };
|
|
||||||
|
|
||||||
"Mod+Escape" = {
|
"Mod+Escape" = {
|
||||||
action = toggle-keyboard-shortcuts-inhibit;
|
action = toggle-keyboard-shortcuts-inhibit;
|
||||||
allow-inhibiting = false;
|
allow-inhibiting = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# The quit action will show a confirmation dialog to avoid accidental exits.
|
||||||
"Mod+Ctrl+Escape".action = quit;
|
"Mod+Ctrl+Escape".action = quit;
|
||||||
|
# Powers off the monitors. To turn them back on, do any input like
|
||||||
|
# moving the mouse or pressing any other key.
|
||||||
"Mod+Shift+P".action = power-off-monitors;
|
"Mod+Shift+P".action = power-off-monitors;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -250,6 +225,7 @@ in
|
|||||||
inactive.color = "#505050";
|
inactive.color = "#505050";
|
||||||
};
|
};
|
||||||
shadow = {
|
shadow = {
|
||||||
|
# on
|
||||||
softness = 30;
|
softness = 30;
|
||||||
spread = 5;
|
spread = 5;
|
||||||
offset = {
|
offset = {
|
||||||
@@ -258,8 +234,10 @@ in
|
|||||||
};
|
};
|
||||||
draw-behind-window = true;
|
draw-behind-window = true;
|
||||||
color = "#00000070";
|
color = "#00000070";
|
||||||
|
# inactive-color "#00000054"
|
||||||
};
|
};
|
||||||
tab-indicator = {
|
tab-indicator = {
|
||||||
|
# off
|
||||||
hide-when-single-tab = true;
|
hide-when-single-tab = true;
|
||||||
place-within-column = true;
|
place-within-column = true;
|
||||||
gap = 5;
|
gap = 5;
|
||||||
@@ -274,52 +252,10 @@ in
|
|||||||
inactive.color = "gray";
|
inactive.color = "gray";
|
||||||
};
|
};
|
||||||
insert-hint = {
|
insert-hint = {
|
||||||
|
# off
|
||||||
display.color = "#ffc87f80";
|
display.color = "#ffc87f80";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
|
||||||
pkgs.dconf
|
|
||||||
];
|
|
||||||
|
|
||||||
home.pointerCursor = {
|
|
||||||
enable = true;
|
|
||||||
gtk.enable = true;
|
|
||||||
name = "macOS";
|
|
||||||
package = pkgs.apple-cursor;
|
|
||||||
size = 28;
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
iconTheme = {
|
|
||||||
name = "MoreWaita";
|
|
||||||
package = pkgs.unstable.morewaita-icon-theme;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.fontconfig = {
|
|
||||||
enable = true;
|
|
||||||
defaultFonts = {
|
|
||||||
sansSerif = [
|
|
||||||
"Adwaita Sans"
|
|
||||||
];
|
|
||||||
emoji = [
|
|
||||||
"Apple Color Emoji"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.kitty = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
background = "#000000";
|
|
||||||
background_opacity = 0.8;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gpg-agent.pinentry.package = pkgs.pinentry-gnome3;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,172 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.noctalia.homeModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.niri.settings = {
|
|
||||||
overview.workspace-shadow.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.noctalia-shell = {
|
|
||||||
enable = true;
|
|
||||||
systemd.enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
audio = {
|
|
||||||
cavaFrameRate = 60;
|
|
||||||
volumeOverdrive = true;
|
|
||||||
};
|
|
||||||
bar = {
|
|
||||||
density = "compact";
|
|
||||||
marginHorizontal = 0.2;
|
|
||||||
marginVertical = 0.1;
|
|
||||||
position = "bottom";
|
|
||||||
showCapsule = false;
|
|
||||||
showOutline = false;
|
|
||||||
transparent = false;
|
|
||||||
outerCorners = false;
|
|
||||||
widgets = {
|
|
||||||
center = [
|
|
||||||
{
|
|
||||||
id = "Tray";
|
|
||||||
blacklist = [ ];
|
|
||||||
colorizeIcons = false;
|
|
||||||
drawerEnabled = false;
|
|
||||||
hidePassive = false;
|
|
||||||
pinned = [ ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Workspace";
|
|
||||||
characterCount = 10;
|
|
||||||
colorizeIcons = false;
|
|
||||||
enableScrollWheel = false;
|
|
||||||
followFocusedScreen = false;
|
|
||||||
hideUnoccupied = false;
|
|
||||||
labelMode = "name";
|
|
||||||
showApplications = false;
|
|
||||||
showLabelsOnlyWhenOccupied = false;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
left = [
|
|
||||||
{
|
|
||||||
id = "ControlCenter";
|
|
||||||
colorizeDistroLogo = false;
|
|
||||||
colorizeSystemIcon = "none";
|
|
||||||
customIconPath = "";
|
|
||||||
enableColorization = false;
|
|
||||||
icon = "noctalia";
|
|
||||||
useDistroLogo = true;
|
|
||||||
}
|
|
||||||
{ id = "WallpaperSelector"; }
|
|
||||||
{
|
|
||||||
id = "Spacer";
|
|
||||||
width = 20;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "SystemMonitor";
|
|
||||||
diskPath = "/persist";
|
|
||||||
showCpuTemp = true;
|
|
||||||
showCpuUsage = true;
|
|
||||||
showDiskUsage = true;
|
|
||||||
showGpuTemp = true;
|
|
||||||
showMemoryAsPercent = true;
|
|
||||||
showMemoryUsage = true;
|
|
||||||
showNetworkStats = true;
|
|
||||||
usePrimaryColor = false;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "AudioVisualizer";
|
|
||||||
colorName = "primary";
|
|
||||||
hideWhenIdle = false;
|
|
||||||
width = 200;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
right = [
|
|
||||||
{
|
|
||||||
id = "MediaMini";
|
|
||||||
hideMode = "hidden";
|
|
||||||
hideWhenIdle = false;
|
|
||||||
maxWidth = 145;
|
|
||||||
scrollingMode = "hover";
|
|
||||||
showAlbumArt = false;
|
|
||||||
showArtistFirst = true;
|
|
||||||
showProgressRing = true;
|
|
||||||
showVisualizer = false;
|
|
||||||
useFixedWidth = false;
|
|
||||||
visualizerType = "linear";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Spacer";
|
|
||||||
width = 20;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Microphone";
|
|
||||||
displayMode = "alwaysShow";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Volume";
|
|
||||||
displayMode = "alwaysShow";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Brightness";
|
|
||||||
displayMode = "alwaysShow";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Spacer";
|
|
||||||
width = 20;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Battery";
|
|
||||||
displayMode = "alwaysShow";
|
|
||||||
showNoctaliaPerformance = false;
|
|
||||||
showPowerProfiles = false;
|
|
||||||
warningThreshold = 20;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "NotificationHistory";
|
|
||||||
hideWhenZero = true;
|
|
||||||
showUnreadBadge = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Clock";
|
|
||||||
customFont = "";
|
|
||||||
formatHorizontal = "ddd dd.MM. HH:mm:ss";
|
|
||||||
formatVertical = "HH mm - dd MM";
|
|
||||||
useCustomFont = false;
|
|
||||||
usePrimaryColor = false;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
colorSchemes = {
|
|
||||||
predefinedScheme = "Ayu";
|
|
||||||
};
|
|
||||||
general = {
|
|
||||||
animationSpeed = 1.5;
|
|
||||||
radiusRatio = 0.4;
|
|
||||||
shadowDirection = "center";
|
|
||||||
shadowOffsetX = 0;
|
|
||||||
shadowOffsetY = 0;
|
|
||||||
showSessionButtonsOnLockScreen = false;
|
|
||||||
};
|
|
||||||
location = {
|
|
||||||
firstDayOfWeek = 0;
|
|
||||||
name = "Manchester, UK";
|
|
||||||
};
|
|
||||||
systemMonitor = {
|
|
||||||
enableNvidiaGpu = true;
|
|
||||||
};
|
|
||||||
ui = {
|
|
||||||
fontDefault = "Adwaita Sans";
|
|
||||||
fontFixed = "Adwaita Mono";
|
|
||||||
panelBackgroundOpacity = 1;
|
|
||||||
};
|
|
||||||
notifications.enabled = true;
|
|
||||||
dock.enabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
@@ -20,7 +19,7 @@ in
|
|||||||
strategy = [ "completion" ];
|
strategy = [ "completion" ];
|
||||||
};
|
};
|
||||||
defaultKeymap = "viins";
|
defaultKeymap = "viins";
|
||||||
dotDir = "${config.xdg.configHome}/zsh";
|
dotDir = ".config/zsh";
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
enableVteIntegration = true;
|
enableVteIntegration = true;
|
||||||
|
|
||||||
|
|||||||
@@ -5,24 +5,6 @@
|
|||||||
{
|
{
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableDefaultConfig = false;
|
|
||||||
matchBlocks."*" = {
|
|
||||||
forwardAgent = false;
|
|
||||||
addKeysToAgent = "yes";
|
|
||||||
compression = false;
|
|
||||||
serverAliveInterval = 0;
|
|
||||||
serverAliveCountMax = 3;
|
|
||||||
hashKnownHosts = false;
|
|
||||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
|
||||||
controlMaster = "no";
|
|
||||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
|
||||||
controlPersist = "no";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.ssh-agent = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.persistence."/state".files = [
|
home.persistence."/state".files = [
|
||||||
|
|||||||
@@ -15,21 +15,11 @@ in
|
|||||||
{
|
{
|
||||||
age.secrets."passwords/users/jordan".file = "${inputs.secrets}/passwords/users/jordan.age";
|
age.secrets."passwords/users/jordan".file = "${inputs.secrets}/passwords/users/jordan.age";
|
||||||
|
|
||||||
age.secrets = {
|
age.secrets.open-webui-api-key = {
|
||||||
open-webui-api-key = {
|
rekeyFile = ./secrets/open-webui-api-key.age;
|
||||||
rekeyFile = ./secrets/open-webui-api-key.age;
|
owner = "jordan";
|
||||||
owner = "jordan";
|
|
||||||
};
|
|
||||||
nix-access-tokens = {
|
|
||||||
rekeyFile = ./secrets/nix-access-tokens.age;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Increase rate limit with read-only token
|
|
||||||
nix.extraOptions = ''
|
|
||||||
!include ${config.age.secrets.nix-access-tokens.path}
|
|
||||||
'';
|
|
||||||
|
|
||||||
users.users.${name} = {
|
users.users.${name} = {
|
||||||
description = "Jordan Holt";
|
description = "Jordan Holt";
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
@@ -47,9 +37,7 @@ in
|
|||||||
];
|
];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
uid = 1000;
|
uid = 1000;
|
||||||
createHome = true;
|
};
|
||||||
}
|
|
||||||
// lib.optionalAttrs (!config.users.mutableUsers) { autoSubUidGidRange = false; };
|
|
||||||
|
|
||||||
home-manager.users.${name} = {
|
home-manager.users.${name} = {
|
||||||
imports = [
|
imports = [
|
||||||
@@ -61,14 +49,12 @@ in
|
|||||||
./common/ssh.nix
|
./common/ssh.nix
|
||||||
{
|
{
|
||||||
home.persistence."/state" = {
|
home.persistence."/state" = {
|
||||||
enable = false;
|
|
||||||
directories = [
|
directories = [
|
||||||
"Downloads"
|
"Downloads"
|
||||||
".local/state/wireplumber"
|
".local/state/wireplumber"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
home.persistence."/persist" = {
|
home.persistence."/persist" = {
|
||||||
enable = false;
|
|
||||||
directories = [
|
directories = [
|
||||||
"Desktop"
|
"Desktop"
|
||||||
"Documents"
|
"Documents"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./common/optional/graphical/firefox.nix
|
./common/optional/graphical/firefox.nix
|
||||||
./common/optional/graphical/fonts.nix
|
./common/optional/graphical/fonts.nix
|
||||||
./common/optional/graphical/hyprland
|
./common/optional/graphical/niri.nix
|
||||||
./common/optional/graphical/mimeapps.nix
|
./common/optional/graphical/mimeapps.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./common/optional/graphical/awesome.nix
|
|
||||||
./common/optional/graphical/firefox.nix
|
./common/optional/graphical/firefox.nix
|
||||||
./common/optional/graphical/fonts.nix
|
./common/optional/graphical/fonts.nix
|
||||||
|
./common/optional/graphical/gnome.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
@@ -8,35 +7,28 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./common/optional/graphical/firefox.nix
|
./common/optional/graphical/firefox.nix
|
||||||
./common/optional/graphical/fonts.nix
|
./common/optional/graphical/fonts.nix
|
||||||
|
./common/optional/graphical/hyprland
|
||||||
./common/optional/graphical/libreoffice.nix
|
./common/optional/graphical/libreoffice.nix
|
||||||
./common/optional/graphical/mimeapps.nix
|
./common/optional/graphical/mimeapps.nix
|
||||||
./common/optional/graphical/niri.nix
|
|
||||||
./common/optional/graphical/noctalia.nix
|
|
||||||
./common/optional/graphical/thunderbird.nix
|
./common/optional/graphical/thunderbird.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.nh.enable = true;
|
programs.nh.enable = true;
|
||||||
|
|
||||||
home.packages =
|
home.packages = with pkgs; [
|
||||||
with pkgs;
|
# ardour
|
||||||
[
|
audacity
|
||||||
# ardour
|
blender
|
||||||
audacity
|
gimp
|
||||||
blender
|
handbrake
|
||||||
gimp
|
inkscape
|
||||||
handbrake
|
# jellyfin-media-player
|
||||||
inkscape
|
krita
|
||||||
# jellyfin-media-player
|
unstable.lutris
|
||||||
krita
|
mkvtoolnix
|
||||||
unstable.lutris
|
# obs-studio
|
||||||
mkvtoolnix
|
pcsx2
|
||||||
mpv
|
qbittorrent
|
||||||
# obs-studio
|
xemu
|
||||||
pcsx2
|
];
|
||||||
qbittorrent
|
|
||||||
xemu
|
|
||||||
]
|
|
||||||
++ [
|
|
||||||
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user