This commit is contained in:
dusk 2022-04-09 21:33:13 +03:00
parent c4620ca626
commit 0cab03eeca
Signed by: dusk
GPG Key ID: 1D8F8FAF2294D6EA
46 changed files with 200 additions and 719 deletions

View File

@ -1,114 +0,0 @@
# 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)*

View File

@ -1,251 +1,5 @@
{ {
"nodes": { "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": { "home": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -267,52 +21,7 @@
"type": "github" "type": "github"
} }
}, },
"naersk": { "latest": {
"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"
]
},
"locked": {
"lastModified": 1649398335,
"narHash": "sha256-SjE4w4kcg3NphapPwBMiIdZDLvVqEf9+IfIskQMd4OY=",
"owner": "yusdacra",
"repo": "nix-cargo-integration",
"rev": "791bf70e720869431479bd4f2133e466b13fe088",
"type": "github"
},
"original": {
"owner": "yusdacra",
"repo": "nix-cargo-integration",
"type": "github"
}
},
"nixos": {
"locked": { "locked": {
"lastModified": 1649225869, "lastModified": 1649225869,
"narHash": "sha256-u1zLtPmQzhT9mNXyM8Ey9pk7orDrIKdwooeGDEXm5xM=", "narHash": "sha256-u1zLtPmQzhT9mNXyM8Ey9pk7orDrIKdwooeGDEXm5xM=",
@ -328,13 +37,29 @@
"type": "github" "type": "github"
} }
}, },
"nixosHardware": { "nixos": {
"locked": { "locked": {
"lastModified": 1649401245, "lastModified": 1649504202,
"narHash": "sha256-mce0dpugKD9qgFgzloE2yoYJRD6Bvsy2QDzODpXMsss=", "narHash": "sha256-k7BZoTGeNqz+jy0v0kKl3jSa+6Q4Dx1FPpZFF9+u9nA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "27b0c3988745d1b18607744badaf2add79c8bcea",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "release-21.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1649488242,
"narHash": "sha256-GFahTvlMnqotZ8i1AO3J8OtVFrJe4QHcEPxpFH+DIEw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "ddeb6a0aa430914674d6f0bc1646cf11e799a5bb", "rev": "850308db3ef0bcc7454155063b5fec28b4ffbc8c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -343,7 +68,7 @@
"type": "github" "type": "github"
} }
}, },
"nixosPersistence": { "nixos-persistence": {
"locked": { "locked": {
"lastModified": 1646131459, "lastModified": 1646131459,
"narHash": "sha256-GPmgxvUFvQ1GmsGfWHy9+rcxWrczeDhS9XnAIPHi9XQ=", "narHash": "sha256-GPmgxvUFvQ1GmsGfWHy9+rcxWrczeDhS9XnAIPHi9XQ=",
@ -358,112 +83,13 @@
"type": "github" "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": { "root": {
"inputs": { "inputs": {
"alejandra": "alejandra",
"fup": "fup",
"helix": "helix",
"home": "home", "home": "home",
"naersk": "naersk", "latest": "latest",
"nixCargoIntegration": "nixCargoIntegration",
"nixos": "nixos", "nixos": "nixos",
"nixosHardware": "nixosHardware", "nixos-hardware": "nixos-hardware",
"nixosPersistence": "nixosPersistence", "nixos-persistence": "nixos-persistence"
"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"
} }
} }
}, },

135
flake.nix
View File

@ -1,125 +1,30 @@
{ {
description = "A highly structured configuration database."; description = "config!!!";
inputs = {
nixos.url = "github:nixos/nixpkgs/nixos-unstable";
fup.url = "github:gytis-ivaskevicius/flake-utils-plus"; inputs = {
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.url = "github:nix-community/home-manager/release-21.11";
home.inputs.nixpkgs.follows = "nixos"; home.inputs.nixpkgs.follows = "nixos";
rust-overlay = { nixos-hardware.url = "github:nixos/nixos-hardware";
url = "github:oxalica/rust-overlay"; nixos-persistence.url = "github:nix-community/impermanence";
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";
};
}; };
outputs = {
self,
fup,
home,
nixosHardware,
nixosPersistence,
nixpkgsWayland,
rnixLsp,
alejandra,
helix,
nixos,
...
} @ inputs:
fup.lib.mkFlake
{
inherit self inputs;
supportedSystems = ["x86_64-linux"]; outputs = inputs: let
channelsConfig.allowUnfree = true; lib = (import ./lib inputs.nixos.lib).extend (_: lib: rec {
nix.generateRegistryFromInputs = true; makePkgs = system:
nix.generateNixPathFromInputs = true; import ./pkgs-set {
nix.linkInputs = true; inherit system lib;
stable = inputs.nixos;
sharedOverlays = [ unstable = inputs.latest;
(_: 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];
};
}; };
}; 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 Normal file
View File

@ -0,0 +1,22 @@
{
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";
}

View File

@ -2,7 +2,7 @@
config, config,
lib, lib,
pkgs, pkgs,
modulesPath, inputs,
... ...
}: let }: let
btrfsPartPath = "/dev/disk/by-label/NIXOS"; btrfsPartPath = "/dev/disk/by-label/NIXOS";
@ -38,10 +38,25 @@
sudo umount /mnt sudo umount /mnt
''; '';
in { 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 = { boot = {
tmpOnTmpfs = true;
loader = { loader = {
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
systemd-boot.enable = true; systemd-boot.enable = true;
systemd-boot.configurationLimit = 10;
}; };
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
supportedFilesystems = ["btrfs"]; supportedFilesystems = ["btrfs"];
@ -70,20 +85,7 @@ in {
''; '';
kernel.sysctl = {"fs.inotify.max_user_watches" = 524288;}; 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."/" = { fileSystems."/" = {
device = btrfsPartPath; device = btrfsPartPath;
fsType = "btrfs"; fsType = "btrfs";
@ -114,13 +116,29 @@ in {
device = "/dev/disk/by-uuid/5784-BBB1"; device = "/dev/disk/by-uuid/5784-BBB1";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = []; swapDevices = [];
zramSwap = { zramSwap = {
enable = true; enable = true;
algorithm = "zstd"; algorithm = "zstd";
}; };
nix.settings.max-jobs = lib.mkDefault 4;
nix.maxJobs = lib.mkDefault 4;
security = { security = {
pam.loginLimits = [
{
domain = "*";
type = "soft";
item = "nofile";
value = "524288";
}
{
domain = "*";
type = "hard";
item = "nofile";
value = "524288";
}
];
allowSimultaneousMultithreading = false; allowSimultaneousMultithreading = false;
# Deleting root subvolume makes sudo show lecture every boot # Deleting root subvolume makes sudo show lecture every boot
sudo.extraConfig = '' sudo.extraConfig = ''
@ -128,6 +146,7 @@ in {
''; '';
rtkit.enable = true; rtkit.enable = true;
}; };
sound.enable = false; sound.enable = false;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
@ -149,11 +168,13 @@ in {
support32Bit = true; support32Bit = true;
}; };
}; };
fonts = { fonts = {
enableDefaultFonts = true; enableDefaultFonts = true;
fontconfig.enable = true; fontconfig.enable = true;
fonts = [pkgs.dejavu_fonts]; fonts = [pkgs.dejavu_fonts];
}; };
environment = { environment = {
systemPackages = [btrfsDiff]; systemPackages = [btrfsDiff];
pathsToLink = ["/share/zsh"]; pathsToLink = ["/share/zsh"];
@ -172,45 +193,23 @@ in {
"${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.driversi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json"; "${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.driversi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json";
}; };
}; };
networking.interfaces.enp6s0.useDHCP = true; networking.interfaces.enp6s0.useDHCP = true;
services = { services = {
code-server = { earlyoom.enable = true;
enable = false;
auth = "none";
user = "patriot";
group = "users";
};
ipfs = { ipfs = {
enable = false; enable = false;
enableGC = true; enableGC = true;
autoMount = true; autoMount = true;
}; };
flatpak.enable = false; flatpak.enable = false;
xserver = {videoDrivers = ["amdgpu"];}; 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;
'';
};
}; };
virtualisation = { virtualisation = {
podman.enable = true; podman.enable = true;
libvirtd.enable = false; libvirtd.enable = false;
}; };
system.stateVersion = "20.09"; system.stateVersion = "20.09";
} }

10
lib/default.nix Normal file
View File

@ -0,0 +1,10 @@
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 Normal file
View File

@ -0,0 +1 @@
["x86_64-linux"]

View File

@ -2,18 +2,19 @@
inputs, inputs,
config, config,
pkgs, pkgs,
lib,
... ...
}: let }: let
inherit (pkgs) lib;
inherit (lib) fileContents mkIf pkgBin; inherit (lib) fileContents mkIf pkgBin;
coreBin = v: "${pkgs.coreutils}/bin/${v}"; coreBin = v: "${pkgs.coreutils}/bin/${v}";
nixBin = "${config.nix.package}/bin/nix"; nixBin = "${config.nix.package}/bin/nix";
in { in {
imports = [./cachix]; imports = [
boot = { ./nix.nix
tmpOnTmpfs = true; ./hm-system-defaults.nix
loader.systemd-boot.configurationLimit = 10; ];
};
console.font = "7x14"; console.font = "7x14";
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
@ -139,38 +140,6 @@ in {
--experimental-features 'nix-command' \ --experimental-features 'nix-command' \
diff-closures /run/current-system "$systemConfig" 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;
};
};
programs.command-not-found.enable = false;
home-manager.useGlobalPkgs = true;
users.mutableUsers = false; users.mutableUsers = false;
# For rage encryption, all hosts need a ssh key pair programs.command-not-found.enable = false;
/*
services.openssh = {
enable = true;
openFirewall = lib.mkDefault false;
};
*/
services.earlyoom.enable = true;
} }

View File

@ -1,4 +1,5 @@
{config, ...}: { {config, ...}: {
home-manager.useGlobalPkgs = true;
home-manager.sharedModules = [ home-manager.sharedModules = [
{ {
home.sessionVariables = {inherit (config.environment.sessionVariables) NIX_PATH;}; home.sessionVariables = {inherit (config.environment.sessionVariables) NIX_PATH;};

23
modules/base/nix.nix Normal file
View File

@ -0,0 +1,23 @@
{
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;
};
}

View File

@ -9,5 +9,5 @@
imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder)); imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder));
in { in {
#inherit imports; #inherit imports;
nix.settings.substituters = ["https://cache.nixos.org/"]; nix.binaryCaches = ["https://cache.nixos.org/"];
} }

View File

@ -1,5 +1,7 @@
{ {
imports = [ imports = [
./hm-system-defaults.nix ./base
./develop
./cachix
]; ];
} }

19
pkgs-set/default.nix Normal file
View File

@ -0,0 +1,19 @@
{
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

View File

@ -0,0 +1,9 @@
pkgs: {
inherit
(pkgs)
helix
alejandra
rnix-lsp
chromium
;
}

9
shells/default.nix Normal file
View File

@ -0,0 +1,9 @@
{lib, ...}:
lib.genPkgs (pkgs: {
default = with pkgs;
mkShell {
name = "prts";
buildInputs = [git git-crypt];
shellHook = "echo welcome to PRTS, $USER";
};
})

View File

@ -1,13 +1,13 @@
{ {
config,
pkgs, pkgs,
lib, lib,
... ...
}: let } @ globalAttrs: let
inherit (lib) mapAttrs' nameValuePair; inherit (lib) mapAttrs' nameValuePair;
inherit (builtins) readDir fetchGit; inherit (builtins) readDir fetchGit;
pkgBin = lib.our.pkgBinNoDep pkgs;
nixosConfig = config; pkgBin = lib.pkgBin pkgs;
nixosConfig = globalAttrs.config;
in { in {
users.users.patriot = { users.users.patriot = {
isNormalUser = true; isNormalUser = true;
@ -234,9 +234,9 @@ in {
''; '';
in { in {
imports = [ imports = [
../profiles/direnv ../modules/direnv
../profiles/git ../modules/git
../profiles/starship ../modules/starship
]; ];
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home = { home = {