nix machine / user configurations

drop fup

-114
CHANGELOG.md
···
-
# Changelog
-
-
## [v0.10.0](https://github.com/divnix/devos/tree/v0.10.0) (2021-05-24)
-
-
**Implemented enhancements:**
-
-
- Providing an interface to nixpkgs.config [\#237](https://github.com/divnix/devos/issues/237)
-
- Making the user available in profiles [\#230](https://github.com/divnix/devos/issues/230)
-
- copy evaluation store paths to iso [\#195](https://github.com/divnix/devos/issues/195)
-
- Extract custom system builds from devosSystem out of lib [\#170](https://github.com/divnix/devos/issues/170)
-
- Allow setting of channel host-wide [\#117](https://github.com/divnix/devos/issues/117)
-
- alacritty: CSIu support [\#51](https://github.com/divnix/devos/issues/51)
-
-
**Fixed bugs:**
-
-
- Cachix timeouts + how to disable nrdxp cachix \(if needed\) [\#294](https://github.com/divnix/devos/issues/294)
-
- default.nix flake-compat is broken [\#285](https://github.com/divnix/devos/issues/285)
-
- All suites return "attribute missing" [\#282](https://github.com/divnix/devos/issues/282)
-
- nix is built two times [\#203](https://github.com/divnix/devos/issues/203)
-
- fix lib docs [\#166](https://github.com/divnix/devos/issues/166)
-
-
**Closed issues:**
-
-
- eliminate userFlakeNixOS [\#257](https://github.com/divnix/devos/issues/257)
-
- devos-as-library [\#214](https://github.com/divnix/devos/issues/214)
-
-
**Merged pull requests:**
-
-
- Update evalArgs to match the new planned API [\#239](https://github.com/divnix/devos/pull/239)
-
-
## [v0.9.0](https://github.com/divnix/devos/tree/v0.9.0) (2021-04-19)
-
-
**Implemented enhancements:**
-
-
- pin inputs into iso live registry [\#190](https://github.com/divnix/devos/issues/190)
-
- Pass 'self' to lib [\#169](https://github.com/divnix/devos/issues/169)
-
- doc: quickstart "ISO. What next?" [\#167](https://github.com/divnix/devos/issues/167)
-
- Integrate Android AOSP putting mobile under control [\#149](https://github.com/divnix/devos/issues/149)
-
- Inoculate host identity on first use [\#132](https://github.com/divnix/devos/issues/132)
-
- kubenix support [\#130](https://github.com/divnix/devos/issues/130)
-
- Improve Home Manager support: profiles/suites, modules, extern, flake outputs [\#119](https://github.com/divnix/devos/issues/119)
-
- Local CA \(between hosts\) [\#104](https://github.com/divnix/devos/issues/104)
-
- Q5: git annex for machine state [\#68](https://github.com/divnix/devos/issues/68)
-
- name space ./pkgs overlays [\#60](https://github.com/divnix/devos/issues/60)
-
- remap global keys easily [\#57](https://github.com/divnix/devos/issues/57)
-
- make pass state part of this repo's structure [\#56](https://github.com/divnix/devos/issues/56)
-
- Incorporate ./shells [\#38](https://github.com/divnix/devos/issues/38)
-
- Encrypt with \(r\)age [\#37](https://github.com/divnix/devos/issues/37)
-
-
**Fixed bugs:**
-
-
- `pathsToImportedAttrs` does not accept directories [\#221](https://github.com/divnix/devos/issues/221)
-
- Cachix caches aren't added to the configuration [\#208](https://github.com/divnix/devos/issues/208)
-
- Issues with current changelog workflow [\#205](https://github.com/divnix/devos/issues/205)
-
- iso: systemd service startup [\#194](https://github.com/divnix/devos/issues/194)
-
- Help adding easy-hls-nix to devos [\#174](https://github.com/divnix/devos/issues/174)
-
- `flk update` fails because of obsolete flag [\#159](https://github.com/divnix/devos/issues/159)
-
- Expected that not all packages are exported? [\#151](https://github.com/divnix/devos/issues/151)
-
- Segmentation fault when generating iso [\#150](https://github.com/divnix/devos/issues/150)
-
-
**Documentation:**
-
-
- doc: split iso [\#193](https://github.com/divnix/devos/issues/193)
-
- lib: can depend on pkgs \(a la nixpkgs\#pkgs/pkgs-lib\) [\#147](https://github.com/divnix/devos/pull/147)
-
-
**Closed issues:**
-
-
- FRRouting router implementation [\#154](https://github.com/divnix/devos/issues/154)
-
- ARM aarch64 Support [\#72](https://github.com/divnix/devos/issues/72)
-
-
## [v0.8.0](https://github.com/divnix/devos/tree/v0.8.0) (2021-03-02)
-
-
**Implemented enhancements:**
-
-
- semi automatic update for /pkgs [\#118](https://github.com/divnix/devos/issues/118)
-
- Home-manager external modules from flakes [\#106](https://github.com/divnix/devos/issues/106)
-
-
**Fixed bugs:**
-
-
- My emacsGcc overlay is not working [\#146](https://github.com/divnix/devos/issues/146)
-
- local flake registry freezes branches [\#142](https://github.com/divnix/devos/issues/142)
-
- nixos-option no longer works after collect garbage [\#138](https://github.com/divnix/devos/issues/138)
-
- Profiles imports are brittle, causing failure if imported twice [\#136](https://github.com/divnix/devos/issues/136)
-
-
## [0.7.0](https://github.com/divnix/devos/tree/0.7.0) (2021-02-20)
-
-
**Implemented enhancements:**
-
-
- add zoxide [\#53](https://github.com/divnix/devos/issues/53)
-
- Multiarch support? [\#17](https://github.com/divnix/devos/issues/17)
-
- initial multiArch support [\#18](https://github.com/divnix/devos/pull/18)
-
-
**Fixed bugs:**
-
-
- Missing shebang from flk.sh [\#131](https://github.com/divnix/devos/issues/131)
-
- Rename Meta Issue [\#128](https://github.com/divnix/devos/issues/128)
-
- specialisations break the `system` argument [\#46](https://github.com/divnix/devos/issues/46)
-
- Revert "Add extraArgs to lib.nixosSystem call to add system args." [\#47](https://github.com/divnix/devos/pull/47)
-
-
**Documentation:**
-
-
- update home-manager urls [\#62](https://github.com/divnix/devos/pull/62)
-
-
**Closed issues:**
-
-
- add github action for cachix build ci [\#59](https://github.com/divnix/devos/issues/59)
-
-
## [12052020](https://github.com/divnix/devos/tree/12052020) (2020-12-06)
-
-
## [07092020](https://github.com/divnix/devos/tree/07092020) (2020-07-09)
-
-
-
-
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
+21 -395
flake.lock
···
{
"nodes": {
-
"alejandra": {
-
"inputs": {
-
"flakeCompat": "flakeCompat",
-
"nixpkgs": [
-
"nixos"
-
]
-
},
-
"locked": {
-
"lastModified": 1649191071,
-
"narHash": "sha256-35hEJuMvRswOPKb9lbB9ZuHVe0eJN6WJc4T8Frn0hYQ=",
-
"owner": "kamadorueda",
-
"repo": "alejandra",
-
"rev": "3d3f24127a8e2b28998a81c444f8b4b4f11da6c6",
-
"type": "github"
-
},
-
"original": {
-
"owner": "kamadorueda",
-
"repo": "alejandra",
-
"type": "github"
-
}
-
},
-
"cachix": {
-
"locked": {
-
"lastModified": 1642244250,
-
"narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=",
-
"owner": "nixos",
-
"repo": "nixpkgs",
-
"rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nixos",
-
"ref": "nixos-21.05",
-
"repo": "nixpkgs",
-
"type": "github"
-
}
-
},
-
"crane": {
-
"flake": false,
-
"locked": {
-
"lastModified": 1644785799,
-
"narHash": "sha256-VpAJO1L0XeBvtCuNGK4IDKp6ENHIpTrlaZT7yfBCvwo=",
-
"owner": "ipetkov",
-
"repo": "crane",
-
"rev": "fc7a94f841347c88f2cb44217b2a3faa93e2a0b2",
-
"type": "github"
-
},
-
"original": {
-
"owner": "ipetkov",
-
"repo": "crane",
-
"type": "github"
-
}
-
},
-
"devshell": {
-
"inputs": {
-
"flake-utils": "flake-utils_2",
-
"nixpkgs": [
-
"nixCargoIntegration",
-
"nixpkgs"
-
]
-
},
-
"locked": {
-
"lastModified": 1647857022,
-
"narHash": "sha256-Aw70NWLOIwKhT60MHDGjgWis3DP3faCzr6ap9CSayek=",
-
"owner": "numtide",
-
"repo": "devshell",
-
"rev": "0a5ff74dacb9ea22614f64e61aeb3ca0bf0e7311",
-
"type": "github"
-
},
-
"original": {
-
"owner": "numtide",
-
"repo": "devshell",
-
"type": "github"
-
}
-
},
-
"dream2nix": {
-
"inputs": {
-
"alejandra": [
-
"nixCargoIntegration",
-
"nixpkgs"
-
],
-
"crane": "crane",
-
"flake-utils-pre-commit": [
-
"nixCargoIntegration",
-
"nixpkgs"
-
],
-
"gomod2nix": [
-
"nixCargoIntegration",
-
"nixpkgs"
-
],
-
"mach-nix": [
-
"nixCargoIntegration",
-
"nixpkgs"
-
],
-
"nixpkgs": [
-
"nixCargoIntegration",
-
"nixpkgs"
-
],
-
"node2nix": [
-
"nixCargoIntegration",
-
"nixpkgs"
-
],
-
"poetry2nix": [
-
"nixCargoIntegration",
-
"nixpkgs"
-
],
-
"pre-commit-hooks": [
-
"nixCargoIntegration",
-
"nixpkgs"
-
]
-
},
-
"locked": {
-
"lastModified": 1649088506,
-
"narHash": "sha256-rIpLWnomSDYlaZfQiXs4Ui3EqmiY6d9qEkIY/vzZg6s=",
-
"owner": "nix-community",
-
"repo": "dream2nix",
-
"rev": "84135ea205bcc04648fcc7776261e1dcb6e78ceb",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nix-community",
-
"repo": "dream2nix",
-
"type": "github"
-
}
-
},
-
"flake-compat": {
-
"flake": false,
-
"locked": {
-
"lastModified": 1641205782,
-
"narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=",
-
"owner": "edolstra",
-
"repo": "flake-compat",
-
"rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7",
-
"type": "github"
-
},
-
"original": {
-
"owner": "edolstra",
-
"repo": "flake-compat",
-
"type": "github"
-
}
-
},
-
"flake-utils": {
-
"locked": {
-
"lastModified": 1644229661,
-
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
-
"type": "github"
-
},
-
"original": {
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"type": "github"
-
}
-
},
-
"flake-utils_2": {
-
"locked": {
-
"lastModified": 1642700792,
-
"narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
-
"type": "github"
-
},
-
"original": {
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"type": "github"
-
}
-
},
-
"flake-utils_3": {
-
"locked": {
-
"lastModified": 1637014545,
-
"narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=",
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4",
-
"type": "github"
-
},
-
"original": {
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"type": "github"
-
}
-
},
-
"flakeCompat": {
-
"flake": false,
-
"locked": {
-
"lastModified": 1648199409,
-
"narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=",
-
"owner": "edolstra",
-
"repo": "flake-compat",
-
"rev": "64a525ee38886ab9028e6f61790de0832aa3ef03",
-
"type": "github"
-
},
-
"original": {
-
"owner": "edolstra",
-
"repo": "flake-compat",
-
"type": "github"
-
}
-
},
-
"fup": {
-
"inputs": {
-
"flake-utils": "flake-utils"
-
},
-
"locked": {
-
"lastModified": 1647259887,
-
"narHash": "sha256-yEkMbEHVO9qydluQ3uHGWX1PkfZhgDKxnd1rhZYZ72w=",
-
"owner": "gytis-ivaskevicius",
-
"repo": "flake-utils-plus",
-
"rev": "06dba5f3b4fa2cc0bfc98ce9cd6f9a4d8db11d46",
-
"type": "github"
-
},
-
"original": {
-
"owner": "gytis-ivaskevicius",
-
"repo": "flake-utils-plus",
-
"type": "github"
-
}
-
},
-
"helix": {
-
"inputs": {
-
"nixCargoIntegration": [
-
"nixCargoIntegration"
-
],
-
"nixpkgs": [
-
"nixos"
-
],
-
"rust-overlay": [
-
"rust-overlay"
-
]
-
},
-
"locked": {
-
"lastModified": 1649456512,
-
"narHash": "sha256-evrtUI3NkwEhQGJmRPnDqvoYex3SnH9NAxgCLJw2v3s=",
-
"owner": "helix-editor",
-
"repo": "helix",
-
"rev": "7779dbfcb847e9aa20e01ae0f8354c3c0de38fe3",
-
"type": "github"
-
},
-
"original": {
-
"owner": "helix-editor",
-
"repo": "helix",
-
"type": "github"
-
}
-
},
"home": {
"inputs": {
"nixpkgs": [
···
"type": "github"
}
},
-
"naersk": {
-
"inputs": {
-
"nixpkgs": [
-
"nixos"
-
]
-
},
-
"locked": {
-
"lastModified": 1649096192,
-
"narHash": "sha256-7O8e+eZEYeU+ET98u/zW5epuoN/xYx9G+CIh4DjZVzY=",
-
"owner": "nmattia",
-
"repo": "naersk",
-
"rev": "d626f73332a8f587b613b0afe7293dd0777be07d",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nmattia",
-
"repo": "naersk",
-
"type": "github"
-
}
-
},
-
"nixCargoIntegration": {
-
"inputs": {
-
"devshell": "devshell",
-
"dream2nix": "dream2nix",
-
"nixpkgs": [
-
"nixos"
-
],
-
"rustOverlay": [
-
"rust-overlay"
-
]
-
},
+
"latest": {
"locked": {
-
"lastModified": 1649398335,
-
"narHash": "sha256-SjE4w4kcg3NphapPwBMiIdZDLvVqEf9+IfIskQMd4OY=",
-
"owner": "yusdacra",
-
"repo": "nix-cargo-integration",
-
"rev": "791bf70e720869431479bd4f2133e466b13fe088",
+
"lastModified": 1649225869,
+
"narHash": "sha256-u1zLtPmQzhT9mNXyM8Ey9pk7orDrIKdwooeGDEXm5xM=",
+
"owner": "nixos",
+
"repo": "nixpkgs",
+
"rev": "b6966d911da89e5a7301aaef8b4f0a44c77e103c",
"type": "github"
},
"original": {
-
"owner": "yusdacra",
-
"repo": "nix-cargo-integration",
+
"owner": "nixos",
+
"ref": "nixos-unstable",
+
"repo": "nixpkgs",
"type": "github"
}
},
"nixos": {
"locked": {
-
"lastModified": 1649225869,
-
"narHash": "sha256-u1zLtPmQzhT9mNXyM8Ey9pk7orDrIKdwooeGDEXm5xM=",
+
"lastModified": 1649504202,
+
"narHash": "sha256-k7BZoTGeNqz+jy0v0kKl3jSa+6Q4Dx1FPpZFF9+u9nA=",
"owner": "nixos",
"repo": "nixpkgs",
-
"rev": "b6966d911da89e5a7301aaef8b4f0a44c77e103c",
+
"rev": "27b0c3988745d1b18607744badaf2add79c8bcea",
"type": "github"
},
"original": {
"owner": "nixos",
-
"ref": "nixos-unstable",
+
"ref": "release-21.11",
"repo": "nixpkgs",
"type": "github"
}
},
-
"nixosHardware": {
+
"nixos-hardware": {
"locked": {
-
"lastModified": 1649401245,
-
"narHash": "sha256-mce0dpugKD9qgFgzloE2yoYJRD6Bvsy2QDzODpXMsss=",
+
"lastModified": 1649488242,
+
"narHash": "sha256-GFahTvlMnqotZ8i1AO3J8OtVFrJe4QHcEPxpFH+DIEw=",
"owner": "nixos",
"repo": "nixos-hardware",
-
"rev": "ddeb6a0aa430914674d6f0bc1646cf11e799a5bb",
+
"rev": "850308db3ef0bcc7454155063b5fec28b4ffbc8c",
"type": "github"
},
"original": {
···
"type": "github"
}
},
-
"nixosPersistence": {
+
"nixos-persistence": {
"locked": {
"lastModified": 1646131459,
"narHash": "sha256-GPmgxvUFvQ1GmsGfWHy9+rcxWrczeDhS9XnAIPHi9XQ=",
···
"type": "github"
}
},
-
"nixpkgs": {
-
"locked": {
-
"lastModified": 1645433236,
-
"narHash": "sha256-4va4MvJ076XyPp5h8sm5eMQvCrJ6yZAbBmyw95dGyw4=",
-
"owner": "nixos",
-
"repo": "nixpkgs",
-
"rev": "7f9b6e2babf232412682c09e57ed666d8f84ac2d",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nixos",
-
"ref": "nixos-unstable",
-
"repo": "nixpkgs",
-
"type": "github"
-
}
-
},
-
"nixpkgsWayland": {
-
"inputs": {
-
"cachix": "cachix",
-
"flake-compat": "flake-compat",
-
"nixpkgs": "nixpkgs"
-
},
-
"locked": {
-
"narHash": "sha256-xwi46ruR5z4THe967gzW74dQhPmlS5FWSiWuo9aYquY=",
-
"path": "/nix/store/23by5yfsvzynznfjk2kjwn1gpb231fl9-source",
-
"type": "path"
-
},
-
"original": {
-
"id": "nixpkgsWayland",
-
"type": "indirect"
-
}
-
},
-
"rnixLsp": {
-
"inputs": {
-
"naersk": [
-
"naersk"
-
],
-
"nixpkgs": [
-
"nixos"
-
],
-
"utils": "utils"
-
},
-
"locked": {
-
"lastModified": 1647240246,
-
"narHash": "sha256-/MLdBWfFUN1C1eNVBYfaVAIcDiZKXpWEbzBC2pqVXj0=",
-
"owner": "nix-community",
-
"repo": "rnix-lsp",
-
"rev": "4d1024ccfe1bc569811769d1ef52a2fc6c1d482d",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nix-community",
-
"repo": "rnix-lsp",
-
"type": "github"
-
}
-
},
"root": {
"inputs": {
-
"alejandra": "alejandra",
-
"fup": "fup",
-
"helix": "helix",
"home": "home",
-
"naersk": "naersk",
-
"nixCargoIntegration": "nixCargoIntegration",
+
"latest": "latest",
"nixos": "nixos",
-
"nixosHardware": "nixosHardware",
-
"nixosPersistence": "nixosPersistence",
-
"nixpkgsWayland": "nixpkgsWayland",
-
"rnixLsp": "rnixLsp",
-
"rust-overlay": "rust-overlay"
-
}
-
},
-
"rust-overlay": {
-
"inputs": {
-
"flake-utils": "flake-utils_3",
-
"nixpkgs": [
-
"nixos"
-
]
-
},
-
"locked": {
-
"lastModified": 1649447403,
-
"narHash": "sha256-JZMYKsCxpLpPKLVjDUVmKs/bVnbcaPa8crf2uKh0lKY=",
-
"owner": "oxalica",
-
"repo": "rust-overlay",
-
"rev": "44801306a2aa0e9aaa47588d615ce6df4acf18c6",
-
"type": "github"
-
},
-
"original": {
-
"owner": "oxalica",
-
"repo": "rust-overlay",
-
"type": "github"
-
}
-
},
-
"utils": {
-
"locked": {
-
"lastModified": 1638122382,
-
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
-
"type": "github"
-
},
-
"original": {
-
"owner": "numtide",
-
"repo": "flake-utils",
-
"type": "github"
+
"nixos-hardware": "nixos-hardware",
+
"nixos-persistence": "nixos-persistence"
}
}
},
+20 -115
flake.nix
···
{
-
description = "A highly structured configuration database.";
+
description = "config!!!";
+
inputs = {
-
nixos.url = "github:nixos/nixpkgs/nixos-unstable";
-
-
fup.url = "github:gytis-ivaskevicius/flake-utils-plus";
+
nixos.url = "github:nixos/nixpkgs/release-21.11";
+
latest.url = "github:nixos/nixpkgs/nixos-unstable";
home.url = "github:nix-community/home-manager/release-21.11";
home.inputs.nixpkgs.follows = "nixos";
-
rust-overlay = {
-
url = "github:oxalica/rust-overlay";
-
inputs.nixpkgs.follows = "nixos";
-
};
-
naersk.url = "github:nmattia/naersk";
-
naersk.inputs.nixpkgs.follows = "nixos";
-
nixCargoIntegration.url = "github:yusdacra/nix-cargo-integration";
-
nixCargoIntegration.inputs.nixpkgs.follows = "nixos";
-
nixCargoIntegration.inputs.rustOverlay.follows = "rust-overlay";
-
-
nixosHardware.url = "github:nixos/nixos-hardware";
-
nixosPersistence.url = "github:nix-community/impermanence";
-
-
rnixLsp = {
-
url = "github:nix-community/rnix-lsp";
-
inputs.naersk.follows = "naersk";
-
inputs.nixpkgs.follows = "nixos";
-
};
-
alejandra = {
-
url = "github:kamadorueda/alejandra";
-
inputs.nixpkgs.follows = "nixos";
-
};
-
helix = {
-
url = "github:helix-editor/helix";
-
inputs.nixpkgs.follows = "nixos";
-
inputs.rust-overlay.follows = "rust-overlay";
-
inputs.nixCargoIntegration.follows = "nixCargoIntegration";
-
};
+
nixos-hardware.url = "github:nixos/nixos-hardware";
+
nixos-persistence.url = "github:nix-community/impermanence";
};
-
outputs = {
-
self,
-
fup,
-
home,
-
nixosHardware,
-
nixosPersistence,
-
nixpkgsWayland,
-
rnixLsp,
-
alejandra,
-
helix,
-
nixos,
-
...
-
} @ inputs:
-
fup.lib.mkFlake
-
{
-
inherit self inputs;
-
supportedSystems = ["x86_64-linux"];
-
channelsConfig.allowUnfree = true;
-
nix.generateRegistryFromInputs = true;
-
nix.generateNixPathFromInputs = true;
-
nix.linkInputs = true;
-
-
sharedOverlays = [
-
(_: prev: {
-
lib = prev.lib.extend (_: _: builtins);
-
})
-
(_: prev: {
-
lib = prev.lib.extend (_: l: {
-
pkgBin = id:
-
if l.isString id
-
then "${prev.${id}}/bin/${id}"
-
else "${prev.${id.name}}/bin/${id.bin}";
-
});
-
})
-
];
-
-
channels.nixos = {
-
overlays = [
-
./overlays/chromium-wayland.nix
-
./overlays/phantom.nix
-
(
-
_: prev: {
-
helix = helix.packages.${prev.system}.helix;
-
rnix-lsp = rnixLsp.packages.${prev.system}.rnix-lsp;
-
alejandra = alejandra.defaultPackage.${prev.system};
-
}
-
)
-
];
-
};
-
-
hostDefaults = {
-
channelName = "nixos";
-
modules = [
-
home.nixosModules.home-manager
-
./profiles
-
./modules
-
./locale
-
./secrets
-
];
-
};
-
-
hosts.lungmen = {
-
modules = with nixosHardware.nixosModules; [
-
nixos.nixosModules.notDetected
-
nixosPersistence.nixosModules.impermanence
-
common-pc-ssd
-
common-pc
-
common-gpu-amd
-
common-cpu-amd
-
./profiles/network/networkmanager
-
./users/root
-
./users/patriot
-
./hosts/lungmen
-
];
-
};
-
-
outputsBuilder = channels:
-
with channels.nixos; {
-
devShell = mkShell {
-
name = "prts";
-
buildInputs = [git git-crypt];
-
};
+
outputs = inputs: let
+
lib = (import ./lib inputs.nixos.lib).extend (_: lib: rec {
+
makePkgs = system:
+
import ./pkgs-set {
+
inherit system lib;
+
stable = inputs.nixos;
+
unstable = inputs.latest;
};
-
};
+
genPkgs = f: lib.genSystems (system: f (makePkgs system));
+
});
+
in rec {
+
nixosConfigurations = import ./hosts {inherit lib inputs;};
+
devShells = import ./shells {inherit lib inputs;};
+
devShell = lib.mapAttrs (_: value: value.default) devShells;
+
};
}
+22
hosts/default.nix
···
+
{
+
inputs,
+
lib,
+
}: let
+
baseModules = [
+
../modules
+
../secrets
+
../locale
+
inputs.home.nixosModule
+
];
+
+
mkSystem = name: system: let
+
pkgs = lib.makePkgs system;
+
in
+
lib.nixosSystem {
+
inherit system;
+
modules = baseModules ++ [(import (./. + "/${name}/default.nix"))];
+
specialArgs = {inherit inputs lib pkgs;};
+
};
+
in {
+
lungmen = mkSystem "lungmen" "x86_64-linux";
+
}
+42 -43
hosts/lungmen/default.nix
···
config,
lib,
pkgs,
-
modulesPath,
+
inputs,
...
}: let
btrfsPartPath = "/dev/disk/by-label/NIXOS";
···
sudo umount /mnt
'';
in {
+
imports = with inputs;
+
with nixos-hardware.nixosModules; [
+
nixos.nixosModules.notDetected
+
nixos-persistence.nixosModule
+
common-pc-ssd
+
common-pc
+
common-gpu-amd
+
common-cpu-amd
+
../../modules/network/dns
+
../../users/root
+
../../users/patriot
+
];
+
boot = {
+
tmpOnTmpfs = true;
loader = {
efi.canTouchEfiVariables = true;
systemd-boot.enable = true;
+
systemd-boot.configurationLimit = 10;
};
kernelPackages = pkgs.linuxPackages_latest;
supportedFilesystems = ["btrfs"];
···
'';
kernel.sysctl = {"fs.inotify.max_user_watches" = 524288;};
};
-
security.pam.loginLimits = [
-
{
-
domain = "*";
-
type = "soft";
-
item = "nofile";
-
value = "524288";
-
}
-
{
-
domain = "*";
-
type = "hard";
-
item = "nofile";
-
value = "524288";
-
}
-
];
+
fileSystems."/" = {
device = btrfsPartPath;
fsType = "btrfs";
···
device = "/dev/disk/by-uuid/5784-BBB1";
fsType = "vfat";
};
+
swapDevices = [];
zramSwap = {
enable = true;
algorithm = "zstd";
};
-
nix.settings.max-jobs = lib.mkDefault 4;
+
+
nix.maxJobs = lib.mkDefault 4;
security = {
+
pam.loginLimits = [
+
{
+
domain = "*";
+
type = "soft";
+
item = "nofile";
+
value = "524288";
+
}
+
{
+
domain = "*";
+
type = "hard";
+
item = "nofile";
+
value = "524288";
+
}
+
];
allowSimultaneousMultithreading = false;
# Deleting root subvolume makes sudo show lecture every boot
sudo.extraConfig = ''
···
'';
rtkit.enable = true;
};
+
sound.enable = false;
services.pipewire = {
enable = true;
···
support32Bit = true;
};
};
+
fonts = {
enableDefaultFonts = true;
fontconfig.enable = true;
fonts = [pkgs.dejavu_fonts];
};
+
environment = {
systemPackages = [btrfsDiff];
pathsToLink = ["/share/zsh"];
···
"${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.driversi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json";
};
};
+
networking.interfaces.enp6s0.useDHCP = true;
services = {
-
code-server = {
-
enable = false;
-
auth = "none";
-
user = "patriot";
-
group = "users";
-
};
+
earlyoom.enable = true;
ipfs = {
enable = false;
enableGC = true;
autoMount = true;
};
flatpak.enable = false;
-
xserver = {videoDrivers = ["amdgpu"];};
-
postgresql = {
-
enable = false;
-
enableTCPIP = true;
-
authentication =
-
lib.mkOverride
-
10
-
''
-
local all all trust
-
host all all 0.0.0.0/0 md5
-
'';
-
settings = {listen_addresses = "*";};
-
initialScript =
-
pkgs.writeText
-
"backend-initScript"
-
''
-
CREATE ROLE patriot WITH LOGIN PASSWORD 'patriot' CREATEDB;
-
CREATE DATABASE harmony;
-
GRANT ALL PRIVILEGES ON DATABASE harmony TO patriot;
-
'';
-
};
+
xserver.videoDrivers = ["amdgpu"];
};
+
virtualisation = {
podman.enable = true;
libvirtd.enable = false;
};
+
system.stateVersion = "20.09";
}
+10
lib/default.nix
···
+
lib:
+
(lib.extend (_: _: builtins)).extend (_: lib: rec {
+
defaultSystems = import ./systems.nix;
+
genSystems = lib.genAttrs defaultSystems;
+
+
pkgBin = pkgs: id:
+
if lib.isString id
+
then "${pkgs.${id}}/bin/${id}"
+
else "${pkgs.${id.name}}/bin/${id.bin}";
+
})
+1
lib/systems.nix
···
+
["x86_64-linux"]
+23
modules/base/nix.nix
···
+
{
+
pkgs,
+
lib,
+
inputs,
+
...
+
}: {
+
nix = {
+
registry = builtins.mapAttrs (_: v: {flake = v;}) (lib.filterAttrs (_: v: v ? outputs) inputs);
+
package = pkgs.nixUnstable;
+
gc.automatic = true;
+
optimise.automatic = true;
+
extraOptions = ''
+
min-free = 536870912
+
keep-outputs = true
+
keep-derivations = true
+
fallback = true
+
'';
+
useSandbox = true;
+
allowedUsers = ["@wheel"];
+
trustedUsers = ["root" "@wheel"];
+
autoOptimiseStore = true;
+
};
+
}
+3 -1
modules/default.nix
···
{
imports = [
-
./hm-system-defaults.nix
+
./base
+
./develop
+
./cachix
];
}
+1
modules/hm-system-defaults.nix modules/base/hm-system-defaults.nix
···
{config, ...}: {
+
home-manager.useGlobalPkgs = true;
home-manager.sharedModules = [
{
home.sessionVariables = {inherit (config.environment.sessionVariables) NIX_PATH;};
overlays/chromium-wayland.nix pkgs-set/overlays/chromium-wayland.nix
overlays/discord-canary-system.nix pkgs-set/overlays/discord-canary-system.nix
overlays/discord-canary.nix pkgs-set/overlays/discord-canary.nix
overlays/phantom.nix pkgs-set/overlays/phantom.nix
overlays/vscode-wayland.nix pkgs-set/overlays/vscode-wayland.nix
+19
pkgs-set/default.nix
···
+
{
+
stable,
+
unstable,
+
system,
+
lib,
+
}: let
+
overlays =
+
lib.mapAttrsToList
+
(name: _: import "${./overlays}/${name}")
+
(lib.readDir ./overlays);
+
unstablePkgs = import unstable {
+
inherit system;
+
};
+
pkgs = import stable {
+
inherit system;
+
overlays = [(_: _: import ./from-unstable.nix unstablePkgs)] ++ overlays;
+
};
+
in
+
pkgs
+9
pkgs-set/from-unstable.nix
···
+
pkgs: {
+
inherit
+
(pkgs)
+
helix
+
alejandra
+
rnix-lsp
+
chromium
+
;
+
}
+1 -1
profiles/cachix/default.nix modules/cachix/default.nix
···
imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder));
in {
#inherit imports;
-
nix.settings.substituters = ["https://cache.nixos.org/"];
+
nix.binaryCaches = ["https://cache.nixos.org/"];
}
profiles/cachix/harmony.nix modules/cachix/harmony.nix
profiles/cachix/nix-cargo-integration.nix modules/cachix/nix-cargo-integration.nix
profiles/cachix/nix-community.nix modules/cachix/nix-community.nix
profiles/cachix/nixpkgs-wayland.nix modules/cachix/nixpkgs-wayland.nix
profiles/cachix/nrdxp.nix modules/cachix/nrdxp.nix
profiles/cachix/veloren-nix.nix modules/cachix/veloren-nix.nix
+8 -39
profiles/default.nix modules/base/default.nix
···
inputs,
config,
pkgs,
+
lib,
...
}: let
-
inherit (pkgs) lib;
inherit (lib) fileContents mkIf pkgBin;
+
coreBin = v: "${pkgs.coreutils}/bin/${v}";
nixBin = "${config.nix.package}/bin/nix";
in {
-
imports = [./cachix];
-
boot = {
-
tmpOnTmpfs = true;
-
loader.systemd-boot.configurationLimit = 10;
-
};
+
imports = [
+
./nix.nix
+
./hm-system-defaults.nix
+
];
+
console.font = "7x14";
environment = {
systemPackages = with pkgs; [
···
--experimental-features 'nix-command' \
diff-closures /run/current-system "$systemConfig"
'';
-
nix = let
-
registry =
-
builtins.removeAttrs
-
(builtins.mapAttrs (_: v: {flake = v;}) (lib.filterAttrs (_: v: v ? outputs) inputs))
-
["bud"];
-
in {
-
package = pkgs.nixUnstable;
-
gc.automatic = true;
-
optimise.automatic = true;
-
extraOptions = ''
-
min-free = 536870912
-
keep-outputs = true
-
keep-derivations = true
-
fallback = true
-
'';
-
inherit registry;
-
settings = {
-
sandbox = true;
-
allowed-users = ["@wheel"];
-
trusted-users = ["root" "@wheel"];
-
auto-optimise-store = true;
-
};
-
};
+
users.mutableUsers = false;
programs.command-not-found.enable = false;
-
home-manager.useGlobalPkgs = true;
-
users.mutableUsers = false;
-
# For rage encryption, all hosts need a ssh key pair
-
/*
-
services.openssh = {
-
enable = true;
-
openFirewall = lib.mkDefault false;
-
};
-
*/
-
services.earlyoom.enable = true;
}
profiles/develop/default.nix modules/develop/default.nix
profiles/develop/editor/default.nix modules/develop/editor/default.nix
profiles/develop/editor/helix.nix modules/develop/editor/helix.nix
profiles/develop/editor/kakoune.nix modules/develop/editor/kakoune.nix
profiles/develop/godot.nix modules/develop/godot.nix
profiles/network/default.nix modules/network/default.nix
profiles/network/dns/default.nix modules/network/dns/default.nix
profiles/network/dns/nextdns.nix modules/network/dns/nextdns.nix
profiles/network/dns/stubby/default.nix modules/network/dns/stubby/default.nix
profiles/network/dns/stubby/nextdns.nix modules/network/dns/stubby/nextdns.nix
profiles/network/iwd.nix modules/network/iwd.nix
profiles/network/networkmanager/default.nix modules/network/networkmanager/default.nix
profiles/network/ssh.nix modules/network/ssh.nix
profiles/network/wpa_supplicant.nix modules/network/wpa_supplicant.nix
+9
shells/default.nix
···
+
{lib, ...}:
+
lib.genPkgs (pkgs: {
+
default = with pkgs;
+
mkShell {
+
name = "prts";
+
buildInputs = [git git-crypt];
+
shellHook = "echo welcome to PRTS, $USER";
+
};
+
})
+7 -7
users/patriot/default.nix
···
{
-
config,
pkgs,
lib,
...
-
}: let
+
} @ globalAttrs: let
inherit (lib) mapAttrs' nameValuePair;
inherit (builtins) readDir fetchGit;
-
pkgBin = lib.our.pkgBinNoDep pkgs;
-
nixosConfig = config;
+
+
pkgBin = lib.pkgBin pkgs;
+
nixosConfig = globalAttrs.config;
in {
users.users.patriot = {
isNormalUser = true;
···
'';
in {
imports = [
-
../profiles/direnv
-
../profiles/git
-
../profiles/starship
+
../modules/direnv
+
../modules/git
+
../modules/starship
];
fonts.fontconfig.enable = true;
home = {
users/profiles/direnv/default.nix users/modules/direnv/default.nix
users/profiles/git/default.nix users/modules/git/default.nix
users/profiles/hikari/default.nix users/modules/hikari/default.nix
users/profiles/starship/default.nix users/modules/starship/default.nix
users/profiles/wtf/default.nix users/modules/wtf/default.nix