Compare commits
45 commits
remove-pro
...
main
Author | SHA1 | Date | |
---|---|---|---|
39297e9fbb | |||
80035c8826 | |||
c37edb347c | |||
0e46a1e15d | |||
84a77fdc97 | |||
645c8cfbf0 | |||
4c06bbd772 | |||
a9b8cc60e0 | |||
1a61ae4ac4 | |||
23fc7f2f45 | |||
22d75b8f7b | |||
fd85d604ab | |||
901b51531a | |||
c0f25e3097 | |||
32a219dcf8 | |||
d033f9affb | |||
0e220a0587 | |||
2e29a5cec7 | |||
5650e76a4b | |||
44f5ce1f29 | |||
88e2b06ae4 | |||
7bf11e55b6 | |||
1745932cd8 | |||
0c52f88386 | |||
1d468d43f7 | |||
90ca463731 | |||
61537d4722 | |||
96f9c0c180 | |||
16b65ac39c | |||
3ae586c272 | |||
1474053f43 | |||
c233c1a420 | |||
2d295004d0 | |||
df51d1b29d | |||
e850329a8e | |||
0511bf4efd | |||
af3c8ebd8c | |||
0ac23d83ea | |||
373ab1c398 | |||
6c0003aa0b | |||
52532f2ee8 | |||
b582ed7cd1 | |||
2a49f8cb73 | |||
b255b3988b | |||
ac8fa51639 |
70 changed files with 1430 additions and 557 deletions
1
.envrc
Normal file
1
.envrc
Normal file
|
@ -0,0 +1 @@
|
|||
use flake .
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.direnv
|
22
README.md
22
README.md
|
@ -1,4 +1,4 @@
|
|||
# ❄️ nix
|
||||
# ❄️ flocon
|
||||
|
||||
My NixOS configurations, using flakes.
|
||||
|
||||
|
@ -8,19 +8,29 @@ My NixOS configurations, using flakes.
|
|||
- Text editor: [neovim](https://github.com/neovim/neovim)
|
||||
- Shell: [fish](https://github.com/fish-shell/fish-shell)
|
||||
- Colors: [Catppuccin](https://github.com/catppuccin/catppuccin)
|
||||
- Font: [Intel One Mono](github.com/intel/intel-one-mono)
|
||||
- Font: [Intel One Mono](https://github.com/intel/intel-one-mono)
|
||||
|
||||
Additionally using a lot of other software you can find in the configuration files.
|
||||
|
||||
# 🛠️ Structure
|
||||
|
||||
| Name | Description |
|
||||
| ------------------- | ------------------------------------------------- |
|
||||
| ------------------- | -------------------------- |
|
||||
| [home](home/) | Home manager configuration |
|
||||
| [hosts](hosts/) | Host-specific (entry-points of the configuration) |
|
||||
| [hosts](hosts/) | Host-specific |
|
||||
| [lib](lib/) | Helper functions |
|
||||
| [modules](modules/) | NixOS modules |
|
||||
| [system](system/) | Common NixOS configuration |
|
||||
| [pkgs](pkgs/) | Custom packages |
|
||||
| [system](system/) | NixOS configuration |
|
||||
|
||||
My configuration is structured based on the following principles:
|
||||
|
||||
1. Hosts should be the main entry points and outputs.
|
||||
2. Abstractions should be avoided as much as possible.
|
||||
|
||||
The bulk of the configuration can be found either in [home](home/) or [system](system/), which declares most of my programs, with some extra Nix code in [lib](lib/) and custom [modules](modules/), mostly for convenience and to provide a way to globally set styles and themes for now.
|
||||
|
||||
My hosts can then pick and choose the programs and configurations that they need from the other directories. If the need arises for a more modular setup for a specific piece of software (ie. having different flavors of Firefox per host), I will write a custom module for it. This helps to avoid unnecessarily abstracting my configuration, as I don't find it necessary for the most part, and I would also like it to remain as simple as possible.
|
||||
|
||||
# 👥 Credits
|
||||
|
||||
|
@ -29,4 +39,4 @@ People / repositories I have copied / learned from:
|
|||
- [fufexan/dotfiles](https://github.com/fufexan/dotfiles) for the configuration structure
|
||||
- [jacekpoz/nixos](https://git.jacekpoz.pl/poz/niksos) for learning how NixOS modules work
|
||||
|
||||
Some bits have also been borrowed from within the configuration, and credit has been given when its due.
|
||||
Some bits have also been borrowed from within the configuration, and credit has been given where its due.
|
||||
|
|
508
flake.lock
508
flake.lock
|
@ -1,9 +1,32 @@
|
|||
{
|
||||
"nodes": {
|
||||
"agenix": {
|
||||
"inputs": {
|
||||
"darwin": "darwin",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1723293904,
|
||||
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ags": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"systems": "systems"
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728326430,
|
||||
|
@ -39,28 +62,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"chaotic": {
|
||||
"inputs": {
|
||||
"flake-schemas": "flake-schemas",
|
||||
"home-manager": "home-manager",
|
||||
"jovian": "jovian",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729092978,
|
||||
"narHash": "sha256-2SMJFFgKSvrQfkfzdcYjwFGvgeoCtDdbl/CGZNIU7hs=",
|
||||
"owner": "chaotic-cx",
|
||||
"repo": "nyx",
|
||||
"rev": "9af42c96e8d666f1df2b087aba1a6349f1c22f4e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "chaotic-cx",
|
||||
"ref": "nyxpkgs-unstable",
|
||||
"repo": "nyx",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -82,6 +83,71 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"agenix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1700795494,
|
||||
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"ref": "master",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"deploy-rs": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727447169,
|
||||
"narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=",
|
||||
"owner": "serokell",
|
||||
"repo": "deploy-rs",
|
||||
"rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "serokell",
|
||||
"repo": "deploy-rs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-addons": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1730865784,
|
||||
"narHash": "sha256-6kJYNjVCyf1tYgpqm7QOYcMkkD/RsaSfrsC2+ojmFAI=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "b8d22442e09a02eb8b830d41726ac371be21b7cd",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
@ -114,6 +180,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
|
@ -133,26 +215,6 @@
|
|||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727826117,
|
||||
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"lanzaboote",
|
||||
|
@ -173,16 +235,16 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_4": {
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727826117,
|
||||
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
|
||||
"lastModified": 1730504689,
|
||||
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
|
||||
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -191,7 +253,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_5": {
|
||||
"flake-parts_4": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib_3"
|
||||
},
|
||||
|
@ -209,32 +271,13 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-schemas": {
|
||||
"locked": {
|
||||
"lastModified": 1721999734,
|
||||
"narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=",
|
||||
"rev": "0a5c42297d870156d9c57d8f99e476b738dcd982",
|
||||
"revCount": 75,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": [
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726560853,
|
||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||
"lastModified": 1629284811,
|
||||
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||
"rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -245,7 +288,7 @@
|
|||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
|
@ -263,7 +306,7 @@
|
|||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
|
@ -281,14 +324,14 @@
|
|||
},
|
||||
"flake-utils_4": {
|
||||
"inputs": {
|
||||
"systems": "systems_6"
|
||||
"systems": "systems_8"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"lastModified": 1726560853,
|
||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -356,16 +399,16 @@
|
|||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"agenix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728903686,
|
||||
"narHash": "sha256-ZHFrGNWDDriZ4m8CA/5kDa250SG1LiiLPApv1p/JF0o=",
|
||||
"lastModified": 1703113217,
|
||||
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "e1aec543f5caf643ca0d94b6a633101942fd065f",
|
||||
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -381,11 +424,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729027341,
|
||||
"narHash": "sha256-IqWD7bA9iJVifvJlB4vs2KUXVhN+d9lECWdNB4jJ0tE=",
|
||||
"lastModified": 1730837930,
|
||||
"narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "2a4fd1cfd8ed5648583dadef86966a8231024221",
|
||||
"rev": "2f607e07f3ac7e53541120536708e824acccfaa8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -394,33 +437,11 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"jovian": {
|
||||
"inputs": {
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728974938,
|
||||
"narHash": "sha256-pTPEx6WlM+nJVGrRUGx7Di4ljZMwE9HfvlZ6f3NzNfo=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "23170582b0658e6afd913149a58863af3a57b376",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts_3",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
|
@ -525,7 +546,7 @@
|
|||
},
|
||||
"niri": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_4",
|
||||
"flake-parts": "flake-parts_3",
|
||||
"niri-stable": "niri-stable",
|
||||
"niri-unstable": "niri-unstable",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
|
@ -534,11 +555,11 @@
|
|||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729090125,
|
||||
"narHash": "sha256-jZQe55BWLEv6OwItbL7mMsm8A3/1rrLk4vTm3k7+jqg=",
|
||||
"lastModified": 1730875971,
|
||||
"narHash": "sha256-VpTY0Urm0tebIndEP3qCsfAEjh8IB0d9j7XRZkNLRrw=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "44d93e05a400cad197fd10f9d50e9475fc519326",
|
||||
"rev": "563b10c27839d0b08353d4cd3563e0f9beb3468d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -567,11 +588,11 @@
|
|||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1729086716,
|
||||
"narHash": "sha256-xF1AtbQ+ipQyzyXV8mWGlndbeqACM3IIadyCHO0OtpU=",
|
||||
"lastModified": 1730871742,
|
||||
"narHash": "sha256-wK7UD90LxLr8oELIYPhUS6+IPU32JGESaHd/tny5/ig=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "84655d3b2627687e14431adb49450cd6af1de40f",
|
||||
"rev": "8867a4f84c4bd07235abd37828b0d724321facbe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -580,36 +601,33 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"nix-index-db": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"jovian",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1690328911,
|
||||
"narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=",
|
||||
"owner": "zhaofengli",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "96df4a39c52f53cb7098b923224d8ce941b64747",
|
||||
"lastModified": 1730604744,
|
||||
"narHash": "sha256-/MK6QU4iOozJ4oHTfZipGtOgaT/uy/Jm4foCqHQeYR4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "cc2ddbf2df8ef7cc933543b1b42b845ee4772318",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zhaofengli",
|
||||
"ref": "matrix-name",
|
||||
"repo": "nix-github-actions",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1728729581,
|
||||
"narHash": "sha256-oazkQ/z7r43YkDLLQdMg8oIB3CwWNb+2ZrYOxtLEWTQ=",
|
||||
"lastModified": 1730886862,
|
||||
"narHash": "sha256-wCZtRGM1NGxq6VG4+TMzfsa4cuG2VJVtowtYuWW5W3g=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "a8dd1b21995964b115b1e3ec639dd6ce24ab9806",
|
||||
"rev": "90642a0deae927fa911d49d4f7c5616257105141",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -648,14 +666,14 @@
|
|||
},
|
||||
"nixpkgs-lib_2": {
|
||||
"locked": {
|
||||
"lastModified": 1727825735,
|
||||
"narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
|
||||
"lastModified": 1730504152,
|
||||
"narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib_3": {
|
||||
|
@ -688,11 +706,11 @@
|
|||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1728909085,
|
||||
"narHash": "sha256-WLxED18lodtQiayIPDE5zwAfkPJSjHJ35UhZ8h3cJUg=",
|
||||
"lastModified": 1730741070,
|
||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c0b1da36f7c34a7146501f684e9ebdf15d2bebf8",
|
||||
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -720,27 +738,27 @@
|
|||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1728888510,
|
||||
"narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=",
|
||||
"lastModified": 1702272962,
|
||||
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c",
|
||||
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1728888510,
|
||||
"narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=",
|
||||
"lastModified": 1730785428,
|
||||
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c",
|
||||
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -752,11 +770,11 @@
|
|||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1728888510,
|
||||
"narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=",
|
||||
"lastModified": 1730785428,
|
||||
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c",
|
||||
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -799,6 +817,22 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs_8": {
|
||||
"locked": {
|
||||
"lastModified": 1711404521,
|
||||
"narHash": "sha256-cYhDZ3RYLiXAi4LQDGuQjjDDbtP00Wd/Vjal/jWyTuA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "07518c851b0f12351d7709274bbbd4ecc1f089c7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "07518c851b0f12351d7709274bbbd4ecc1f089c7",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_9": {
|
||||
"locked": {
|
||||
"lastModified": 1726871744,
|
||||
"narHash": "sha256-V5LpfdHyQkUF7RfOaDPrZDP+oqz88lTJrMT1+stXNwo=",
|
||||
|
@ -830,24 +864,9 @@
|
|||
"type": "sourcehut"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"locked": {
|
||||
"lastModified": 1729415156,
|
||||
"narHash": "sha256-Ha5CqNs+mFMzf5O2HVfs9mxqIQnBwt+srspiQWAvN/A=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "fdda803471577189005bac0b4bc934689f52ef59",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nvf": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_5",
|
||||
"flake-parts": "flake-parts_4",
|
||||
"flake-utils": "flake-utils_3",
|
||||
"mnw": "mnw",
|
||||
"nil": "nil",
|
||||
|
@ -955,14 +974,14 @@
|
|||
"plugin-vim-vsnip": "plugin-vim-vsnip",
|
||||
"plugin-which-key": "plugin-which-key",
|
||||
"rnix-lsp": "rnix-lsp",
|
||||
"systems": "systems_4"
|
||||
"systems": "systems_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728378979,
|
||||
"narHash": "sha256-CW/5Cs9m8HupL+6iRMpdHE88OmK9MXH2h3BcXCQw440=",
|
||||
"lastModified": 1730289819,
|
||||
"narHash": "sha256-GYEgdCLzNODbMNEeYbMa5EWgEwTEMxdSSPTz8uEwZdQ=",
|
||||
"owner": "notashelf",
|
||||
"repo": "nvf",
|
||||
"rev": "0947ab38c0bc79780eec599161306157b8de74a3",
|
||||
"rev": "8ff50562d7203a2b87bc6409e806f13b115d6b48",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -981,11 +1000,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729098898,
|
||||
"narHash": "sha256-poRon0EwKWfOfttFk/8IiUPzCO/ahpNvtsSd9lizlHY=",
|
||||
"lastModified": 1730635861,
|
||||
"narHash": "sha256-Npp3pl9aeAiq+wZPDbw2ZxybNuZWyuN7AY6fik56DCo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "plasma-manager",
|
||||
"rev": "508a077405fa700de0248e7f84bc4fefbd308dd9",
|
||||
"rev": "293668587937daae1df085ee36d2b2d0792b7a0f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -2611,6 +2630,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"portfolio": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730891412,
|
||||
"narHash": "sha256-EEXp1jQMoA7off1ioqB5aJM1a5ZfGS6KQVsYSZ/ub78=",
|
||||
"owner": "nezia1",
|
||||
"repo": "portfolio",
|
||||
"rev": "082cc68c67deead967bf177d048995c6a27ef84e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nezia1",
|
||||
"repo": "portfolio",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks-nix": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
|
@ -2642,7 +2679,7 @@
|
|||
"inputs": {
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": "nixpkgs_7",
|
||||
"utils": "utils"
|
||||
"utils": "utils_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1669555118,
|
||||
|
@ -2660,20 +2697,21 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"ags": "ags",
|
||||
"basix": "basix",
|
||||
"chaotic": "chaotic",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"flake-utils": "flake-utils",
|
||||
"deploy-rs": "deploy-rs",
|
||||
"firefox-addons": "firefox-addons",
|
||||
"home-manager": "home-manager_2",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"niri": "niri",
|
||||
"nix-index-db": "nix-index-db",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nur": "nur",
|
||||
"nvf": "nvf",
|
||||
"plasma-manager": "plasma-manager",
|
||||
"systems": "systems_5",
|
||||
"portfolio": "portfolio",
|
||||
"systems": "systems_7",
|
||||
"treefmt-nix": "treefmt-nix",
|
||||
"wezterm": "wezterm"
|
||||
}
|
||||
|
@ -2738,11 +2776,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726280639,
|
||||
"narHash": "sha256-YfLRPlFZWrT2oRLNAoqf7G3+NnUTDdlIJk6tmBU7kXM=",
|
||||
"lastModified": 1729477859,
|
||||
"narHash": "sha256-r0VyeJxy4O4CgTB/PNtfQft9fPfN1VuGvnZiCxDArvg=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "e9f8641c92f26fd1e076e705edb12147c384171d",
|
||||
"rev": "ada8266712449c4c0e6ee6fcbc442b3c217c79e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -2752,21 +2790,6 @@
|
|||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
|
@ -2781,6 +2804,21 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
|
@ -2813,16 +2851,16 @@
|
|||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
|
@ -2841,16 +2879,46 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_7": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_8": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
"nixpkgs": "nixpkgs_9"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729077719,
|
||||
"narHash": "sha256-zayHqZO9gA1U85c4CPvVSnLV8/cBgc2yVrSKWaKeBUs=",
|
||||
"lastModified": 1730321837,
|
||||
"narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "5307ba60125bb024d7e52d71d582eafd511f3fee",
|
||||
"rev": "746901bb8dba96d154b66492a29f5db0693dbfcc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -2860,6 +2928,24 @@
|
|||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1656928814,
|
||||
"narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
|
||||
|
@ -2888,11 +2974,11 @@
|
|||
},
|
||||
"locked": {
|
||||
"dir": "nix",
|
||||
"lastModified": 1729006311,
|
||||
"narHash": "sha256-1xtKJHu6CFnOhp4snof+WSTwcdPgwIaD6mBODP/cv3w=",
|
||||
"lastModified": 1730734444,
|
||||
"narHash": "sha256-lNgCAphrq3/bYGjgDxEl2rVcer6GnmfWXDhxc+kdYOk=",
|
||||
"owner": "wez",
|
||||
"repo": "wezterm",
|
||||
"rev": "9ddca7bde92090792dbcdc65c1e9897c362196d7",
|
||||
"rev": "51c794ac500a2033b9dc570c71810518bfa667a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -2906,16 +2992,16 @@
|
|||
"xwayland-satellite-stable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1718165778,
|
||||
"narHash": "sha256-dwF9nI54a6Fo9XU5s4qmvMXSgCid3YQVGxch00qEMvI=",
|
||||
"lastModified": 1730166465,
|
||||
"narHash": "sha256-nq7bouXQXaaPPo/E+Jbq+wNHnatD4dY8OxSrRqzvy6s=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "b6d281967cb0b7bf1dfdb8d0f597b517dc4aa5c5",
|
||||
"rev": "a713cf46cb7db84a0d1b57c3a397c610cad3cf98",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Supreeeme",
|
||||
"ref": "v0.4",
|
||||
"ref": "v0.5",
|
||||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -2923,11 +3009,11 @@
|
|||
"xwayland-satellite-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1726378112,
|
||||
"narHash": "sha256-OANPb73V/RQDqtpIcbzeJ93KuOHKFQv+1xXC44Ut7tY=",
|
||||
"lastModified": 1730258684,
|
||||
"narHash": "sha256-E+69sdxUhPSNI8+JlTL6KKbNv5qVD3L1y8hdVO37A44=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "b962a0f33b503aa39c9cf6919f488b664e5b79b4",
|
||||
"rev": "b0ee6db9fa9901c675b3c7e952c2a8ce987a0f58",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
103
flake.nix
103
flake.nix
|
@ -1,82 +1,81 @@
|
|||
{
|
||||
description = "nezia's nixos configuration";
|
||||
|
||||
outputs = inputs:
|
||||
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
|
||||
systems = ["x86_64-linux"];
|
||||
|
||||
imports = [
|
||||
./hosts
|
||||
./modules
|
||||
];
|
||||
|
||||
perSystem = {pkgs, ...}: {
|
||||
devShells.default = pkgs.mkShell {
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
systems,
|
||||
agenix,
|
||||
deploy-rs,
|
||||
treefmt-nix,
|
||||
...
|
||||
} @ inputs: let
|
||||
eachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
|
||||
treefmtEval = eachSystem (pkgs: treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
|
||||
in {
|
||||
devShells = eachSystem (pkgs: {
|
||||
default = pkgs.mkShell {
|
||||
packages = [
|
||||
pkgs.alejandra
|
||||
pkgs.git
|
||||
deploy-rs.packages.${pkgs.system}.default
|
||||
agenix.packages.${pkgs.system}.default
|
||||
];
|
||||
};
|
||||
formatter = pkgs.alejandra;
|
||||
});
|
||||
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
|
||||
nixosModules = import ./modules;
|
||||
nixosConfigurations = let
|
||||
lib' = import ./lib {inherit inputs lib';};
|
||||
in
|
||||
import ./hosts {inherit inputs lib';};
|
||||
packages = eachSystem (pkgs: import ./pkgs {inherit inputs pkgs;});
|
||||
deploy.nodes = import ./nodes {inherit self inputs;};
|
||||
};
|
||||
};
|
||||
|
||||
inputs = {
|
||||
# global, so they can be `.follow`ed
|
||||
systems.url = "github:nix-systems/default-linux";
|
||||
|
||||
flake-utils = {
|
||||
url = "github:numtide/flake-utils";
|
||||
inputs.systems.follows = "systems";
|
||||
};
|
||||
|
||||
flake-parts = {
|
||||
url = "github:hercules-ci/flake-parts";
|
||||
inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# nix related
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
|
||||
systems.url = "github:nix-systems/default-linux";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote/v0.4.1";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
wezterm = {
|
||||
url = "github:wez/wezterm/main?dir=nix";
|
||||
nix-index-db = {
|
||||
url = "github:nix-community/nix-index-database";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nvf = {
|
||||
url = "github:notashelf/nvf";
|
||||
# other
|
||||
agenix = {
|
||||
url = "github:ryantm/agenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
ags.url = "github:Aylur/ags";
|
||||
basix.url = "github:notashelf/basix";
|
||||
deploy-rs.url = "github:serokell/deploy-rs";
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
niri.url = "github:sodiboo/niri-flake";
|
||||
nvf.url = "github:notashelf/nvf";
|
||||
|
||||
portfolio.url = "github:nezia1/portfolio";
|
||||
|
||||
plasma-manager = {
|
||||
url = "github:nix-community/plasma-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.home-manager.follows = "home-manager";
|
||||
};
|
||||
|
||||
ags.url = "github:Aylur/ags";
|
||||
|
||||
niri = {
|
||||
url = "github:sodiboo/niri-flake";
|
||||
};
|
||||
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote/v0.4.1";
|
||||
|
||||
# Optional but recommended to limit the size of your system closure.
|
||||
treefmt-nix.url = "github:numtide/treefmt-nix";
|
||||
wezterm = {
|
||||
url = "github:wez/wezterm/main?dir=nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
treefmt-nix.url = "github:numtide/treefmt-nix";
|
||||
|
||||
nur.url = "github:nix-community/NUR";
|
||||
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
./services/udiskie.nix
|
||||
./terminal
|
||||
./programs
|
||||
];
|
||||
home = {
|
||||
username = "nezia";
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
vamos = [
|
||||
../.
|
||||
./vamos
|
||||
];
|
||||
solaire = [
|
||||
../.
|
||||
./solaire
|
||||
];
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{self, ...}: {
|
||||
imports = [
|
||||
"${self}/home/services/udiskie.nix"
|
||||
|
||||
"${self}/home/programs"
|
||||
|
||||
"${self}/home/terminal/emulators/foot.nix"
|
||||
"${self}/home/programs/editors/neovim.nix"
|
||||
"${self}/home/programs/editors/helix.nix"
|
||||
];
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
{self, ...}: {
|
||||
imports = [
|
||||
"${self}/home/services/udiskie.nix"
|
||||
|
||||
"${self}/home/programs"
|
||||
|
||||
"${self}/home/programs/niri"
|
||||
"${self}/home/programs/ags"
|
||||
"${self}/home/programs/fuzzel.nix"
|
||||
"${self}/home/programs/swaybg.nix"
|
||||
"${self}/home/programs/swaylock.nix"
|
||||
"${self}/home/programs/swayidle.nix"
|
||||
|
||||
"${self}/home/terminal/emulators/foot.nix"
|
||||
|
||||
"${self}/home/programs/editors/neovim.nix"
|
||||
"${self}/home/programs/editors/helix.nix"
|
||||
];
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
|
@ -13,18 +12,133 @@
|
|||
in {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
|
||||
extraPolicies = {
|
||||
DisableTelemetry = true;
|
||||
DisablePocket = true;
|
||||
DisableFeedbackCommands = true;
|
||||
DisableFirefoxStudies = true;
|
||||
OfferToSaveLogins = false;
|
||||
OffertosaveloginsDefault = false;
|
||||
PasswordManagerEnabled = false;
|
||||
SearchSuggestEnabled = true;
|
||||
|
||||
# https://github.com/Sly-Harvey/NixOS/blob/f9da2691ea46565256ad757959cfc26ec6cee10d/modules/programs/browser/firefox/default.nix#L58-L163
|
||||
"3rdparty".Extensions = {
|
||||
"addon@darkreader.org" = {
|
||||
permissions = ["internal:privateBrowsingAllowed"];
|
||||
enabled = true;
|
||||
automation = {
|
||||
enabled = true;
|
||||
behavior = "OnOff";
|
||||
mode = "system";
|
||||
};
|
||||
detectDarkTheme = true;
|
||||
enabledByDefault = true;
|
||||
changeBrowserTheme = false;
|
||||
enableForProtectedPages = true;
|
||||
fetchNews = false;
|
||||
previewNewDesign = true;
|
||||
};
|
||||
"uBlock0@raymondhill.net" = {
|
||||
permissions = ["internal:privateBrowsingAllowed"];
|
||||
advancedSettings = [
|
||||
[
|
||||
"userResourcesLocation"
|
||||
"https://raw.githubusercontent.com/pixeltris/TwitchAdSolutions/master/video-swap-new/video-swap-new-ublock-origin.js"
|
||||
]
|
||||
];
|
||||
adminSettings = {
|
||||
userSettings = {
|
||||
uiTheme = "dark";
|
||||
advancedUserEnabled = true;
|
||||
userFiltersTrusted = true;
|
||||
importedLists = [
|
||||
"https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/main/list.txt"
|
||||
];
|
||||
selectedFilterLists = [
|
||||
"FRA-0"
|
||||
"adguard-cookies"
|
||||
"adguard-mobile-app-banners"
|
||||
"adguard-other-annoyances"
|
||||
"adguard-popup-overlays"
|
||||
"adguard-social"
|
||||
"adguard-spyware-url"
|
||||
"adguard-widgets"
|
||||
"easylist"
|
||||
"easylist-annoyances"
|
||||
"easylist-chat"
|
||||
"easylist-newsletters"
|
||||
"easylist-notifications"
|
||||
"easyprivacy"
|
||||
"fanboy-cookiemonster"
|
||||
"https://filters.adtidy.org/extension/ublock/filters/3.txt"
|
||||
"https://github.com/DandelionSprout/adfilt/raw/master/LegitimateURLShortener.txt"
|
||||
"plowe-0"
|
||||
"ublock-annoyances"
|
||||
"ublock-badware"
|
||||
"ublock-cookies-adguard"
|
||||
"ublock-cookies-easylist"
|
||||
"ublock-filters"
|
||||
"ublock-privacy"
|
||||
"ublock-quick-fixes"
|
||||
"ublock-unbreak"
|
||||
"urlhaus-1"
|
||||
"https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/main/list.txt"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
profiles = {
|
||||
nezia = {
|
||||
settings = {
|
||||
"browser.urlbar.suggest.searches" = true;
|
||||
"browser.search.suggest.enabled" = true;
|
||||
"ui.key.menuAccessKeyFocuses" = false;
|
||||
};
|
||||
|
||||
extensions = with inputs.firefox-addons.packages.${pkgs.system}; [
|
||||
darkreader
|
||||
proton-pass
|
||||
shinigami-eyes
|
||||
stylus
|
||||
ublock-origin
|
||||
violentmonkey
|
||||
];
|
||||
# https://git.jacekpoz.pl/poz/niksos/src/commit/a48647a1c5bc6877a1100a65f4dc169b2fc11ed7/hosts/hape/firefox.nix
|
||||
search = {
|
||||
default = "SearxNG";
|
||||
engines = {
|
||||
"SearxNG" = {
|
||||
urls = [
|
||||
{
|
||||
rels = ["results"];
|
||||
template = "https://search.nezia.dev/search";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
rels = ["suggestions"];
|
||||
template = "https://search.nezia.dev/autocompleter";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
"type" = "application/x-suggestions+json";
|
||||
}
|
||||
];
|
||||
iconUpdateURL = "https://search.nezia.dev/favicon.ico";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = ["@s"];
|
||||
};
|
||||
"Nix Packages" = {
|
||||
urls = [
|
||||
{
|
||||
|
@ -47,50 +161,30 @@ in {
|
|||
"NixOS Wiki" = {
|
||||
urls = [{template = "https://wiki.nixos.org/w/index.php?search={searchTerms}";}];
|
||||
iconUpdateURL = "https://wiki.nixos.org/favicon.ico";
|
||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = ["@nw"];
|
||||
};
|
||||
"Home Manager Options" = {
|
||||
"NixOS Options" = {
|
||||
urls = [{template = "https://search.nixos.org/options?channel=unstable&type=packages&query={searchTerms}";}];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["@no"];
|
||||
};
|
||||
"Noogle" = {
|
||||
urls = [{template = "https://noogle.dev/q?term={searchTerms}";}];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["@ng"];
|
||||
};
|
||||
"Home Manager" = {
|
||||
urls = [{template = "https://home-manager-options.extranix.com/?release=master&query={searchTerms}";}];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["@hm"];
|
||||
};
|
||||
"Arch Wiki" = {
|
||||
urls = [{template = "https://wiki.archlinux.org/index.php?search={searchTerms}";}];
|
||||
icon = "https://archlinux.org/favicon.ico";
|
||||
definedAliases = ["@aw"];
|
||||
};
|
||||
"SearxNG" = {
|
||||
urls = [
|
||||
{
|
||||
rels = ["results"];
|
||||
template = "https://searx.tiekoetter.com/search";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
rels = ["suggestions"];
|
||||
template = "https://searx.tiekoetter.com/autocompleter";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
"type" = "application/x-suggestions+json";
|
||||
}
|
||||
];
|
||||
definedAliases = ["@sx"];
|
||||
};
|
||||
"Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias
|
||||
};
|
||||
};
|
||||
# https://github.com/oddlama/nix-config/blob/main/users/myuser/graphical/firefox.nix#L53-L57
|
||||
extraConfig = builtins.concatStringsSep "\n" [
|
||||
(builtins.readFile "${betterfox}/user.js")
|
||||
(builtins.readFile "${betterfox}/Securefox.js")
|
||||
(builtins.readFile "${betterfox}/Fastfox.js")
|
||||
(builtins.readFile "${betterfox}/Peskyfox.js")
|
||||
|
|
|
@ -4,8 +4,11 @@
|
|||
./media
|
||||
./xdg.nix
|
||||
./gtk.nix
|
||||
./editors/neovim.nix
|
||||
./editors/helix.nix
|
||||
];
|
||||
|
||||
# idk where to put this
|
||||
programs = {
|
||||
fzf.enable = true;
|
||||
hyfetch.enable = true;
|
||||
|
@ -15,6 +18,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
# miscellaneous programs that do not need to be configured
|
||||
home.packages = with pkgs; [
|
||||
geary
|
||||
imhex
|
||||
|
@ -31,5 +35,9 @@
|
|||
nautilus
|
||||
simple-scan
|
||||
entr
|
||||
# inputs.self.packages.${pkgs.system}.mcuxpresso.ide
|
||||
# dfu-util
|
||||
# segger-jlink
|
||||
# inputs.self.packages.${pkgs.system}.mcuxpresso.config-tools
|
||||
];
|
||||
}
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) getExe;
|
||||
in {
|
||||
}: {
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
@ -60,6 +60,10 @@
|
|||
|
||||
git.enable = true;
|
||||
|
||||
utility = {
|
||||
vim-wakatime.enable = true;
|
||||
};
|
||||
|
||||
lsp = {
|
||||
enable = true;
|
||||
lspSignature.enable = true;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
inputs,
|
||||
nixosConfig,
|
||||
osConfig,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
|
@ -15,7 +15,7 @@
|
|||
font = "monospace:size=14";
|
||||
};
|
||||
colors = let
|
||||
inherit (inputs.basix.schemeData.base16.${nixosConfig.style.scheme}) palette;
|
||||
inherit (inputs.basix.schemeData.base16.${osConfig.theme.scheme}) palette;
|
||||
in {
|
||||
background = "${palette.base00}ff";
|
||||
text = "${palette.base05}ff";
|
||||
|
|
|
@ -3,17 +3,19 @@
|
|||
inputs,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
protonup-qt
|
||||
bottles
|
||||
lutris
|
||||
path-of-building
|
||||
r2modman
|
||||
home.packages = [
|
||||
pkgs.bottles
|
||||
pkgs.lutris
|
||||
pkgs.mangohud
|
||||
pkgs.path-of-building
|
||||
pkgs.protonplus
|
||||
pkgs.r2modman
|
||||
|
||||
# steamtinkerlaunch dependencies
|
||||
xdotool
|
||||
xorg.xwininfo
|
||||
yad
|
||||
pkgs.xdotool
|
||||
pkgs.xorg.xwininfo
|
||||
pkgs.yad
|
||||
|
||||
inputs.self.packages.${pkgs.system}.bolt-launcher
|
||||
];
|
||||
programs.mangohud.enable = true;
|
||||
}
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
lib,
|
||||
...
|
||||
}: let
|
||||
isDark = inputs.basix.schemeData.base16.${osConfig.style.scheme}.variant == "dark";
|
||||
isDark = inputs.basix.schemeData.base16.${osConfig.theme.scheme}.variant == "dark";
|
||||
in {
|
||||
home.pointerCursor = {
|
||||
inherit (osConfig.style.cursorTheme) name package size;
|
||||
inherit (osConfig.theme.cursorTheme) name package size;
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
|
@ -35,11 +35,11 @@ in {
|
|||
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
||||
|
||||
iconTheme = {
|
||||
inherit (osConfig.style.gtk.iconTheme) name package;
|
||||
inherit (osConfig.theme.gtk.iconTheme) name package;
|
||||
};
|
||||
|
||||
theme = lib.mkIf (!osConfig.services.xserver.desktopManager.gnome.enable) {
|
||||
inherit (osConfig.style.gtk.theme) name package;
|
||||
inherit (osConfig.theme.gtk.theme) name package;
|
||||
};
|
||||
};
|
||||
dconf.settings = {
|
||||
|
|
|
@ -6,11 +6,13 @@
|
|||
}: let
|
||||
appLauncher = "fuzzel";
|
||||
terminal = "foot";
|
||||
browser = "firefox";
|
||||
prefix = "Alt";
|
||||
in {
|
||||
programs.niri.settings.binds = {
|
||||
"${prefix}+D".action.spawn = appLauncher;
|
||||
"${prefix}+Return".action.spawn = terminal;
|
||||
"${prefix}+W".action.spawn = browser;
|
||||
"${prefix}+Shift+E".action.quit.skip-confirmation = true;
|
||||
"${prefix}+Shift+Slash".action = config.lib.niri.actions.show-hotkey-overlay;
|
||||
"${prefix}+Q".action = config.lib.niri.actions.close-window;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
osConfig,
|
||||
...
|
||||
}: let
|
||||
colors = inputs.basix.schemeData.base16.${osConfig.style.scheme}.palette;
|
||||
colors = inputs.basix.schemeData.base16.${osConfig.theme.scheme}.palette;
|
||||
in {
|
||||
imports = [./binds.nix];
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nixosConfig,
|
||||
osConfig,
|
||||
...
|
||||
}: {
|
||||
systemd.user.services.swaybg = {
|
||||
|
@ -11,7 +11,7 @@
|
|||
PartOf = ["graphical-session.target"];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${lib.getExe pkgs.swaybg} -i ${nixosConfig.style.wallpaper} -m fill";
|
||||
ExecStart = "${lib.getExe pkgs.swaybg} -i ${osConfig.theme.wallpaper} -m fill";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
Install.WantedBy = ["graphical-session.target"];
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
nixosConfig,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
inherit (inputs.basix.schemeData.base16.${nixosConfig.style.scheme}) palette;
|
||||
inherit (inputs.basix.schemeData.base16.${osConfig.theme.scheme}) palette;
|
||||
in {
|
||||
# requires `security.pam.services.swaylock = { };` at the system level or else
|
||||
# unlock will not work.
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
_: {
|
||||
{
|
||||
services.udiskie.enable = true;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,6 @@
|
|||
];
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "hx";
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
inputs,
|
||||
nixosConfig,
|
||||
osConfig,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
|
@ -14,7 +14,7 @@
|
|||
shell = "${lib.getExe config.programs.fish.package}";
|
||||
};
|
||||
colors = let
|
||||
schemeData = inputs.basix.schemeData.base16.${nixosConfig.style.scheme};
|
||||
schemeData = inputs.basix.schemeData.base16.${osConfig.theme.scheme};
|
||||
in {
|
||||
background = schemeData.palette.base00;
|
||||
foreground = schemeData.palette.base05;
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
_: {
|
||||
{
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
# package = inputs.wezterm.packages.${pkgs.system}.default;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
./tmux.nix
|
||||
./direnv.nix
|
||||
./zellij.nix
|
||||
./nix-index.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
_: {
|
||||
{
|
||||
programs = {
|
||||
direnv = {
|
||||
enable = true;
|
||||
|
|
11
home/terminal/programs/nix-index.nix
Normal file
11
home/terminal/programs/nix-index.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{inputs, ...}: {
|
||||
imports = [inputs.nix-index-db.hmModules.nix-index];
|
||||
programs = {
|
||||
nix-index = {
|
||||
enable = true;
|
||||
symlinkToCacheHome = true; # needed for comma
|
||||
};
|
||||
command-not-found.enable = false;
|
||||
nix-index-database.comma.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
_: {
|
||||
{
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
name = "fzf";
|
||||
inherit (pkgs.fishPlugins.fzf) src;
|
||||
}
|
||||
{
|
||||
name = "autopair";
|
||||
inherit (pkgs.fishPlugins.autopair) src;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
_: {
|
||||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableTransience = true;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
_: {
|
||||
{
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableBashIntegration = false;
|
||||
|
|
25
hosts/README.md
Normal file
25
hosts/README.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
# 💻 Hosts
|
||||
|
||||
This directory contains the entry points for different NixOS system configurations. Each host represents a complete system configuration, combining NixOS system settings and Home Manager configurations.
|
||||
|
||||
## Components
|
||||
|
||||
### default.nix
|
||||
|
||||
The `default.nix` file in each host directory serves as the main entry point for the system configuration. It:
|
||||
|
||||
- Sets up NixOS configurations
|
||||
- Sets up Home Manager configurations
|
||||
- References host-specific module declarations
|
||||
|
||||
### modules/
|
||||
|
||||
The `modules/` directory contains host-specific declarations for custom modules that are defined in the flake's `nixosModules` output. This so far only includes global theme / style related declarations.
|
||||
|
||||
## Adding a New Host
|
||||
|
||||
1. Create a new directory for the host
|
||||
2. Add a `hardware-configuration.nix` generated with `nixos-generate-config`
|
||||
3. Add a `default.nix` that imports the desired configurations
|
||||
4. Create host-specific module declarations in the `modules/` subdirectory to customize the global modules as needed
|
||||
5. Reference the new host in `hosts/default.nix`
|
29
hosts/anastacia/default.nix
Normal file
29
hosts/anastacia/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
mod = "${self}/system";
|
||||
in {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./networking.nix # generated at runtime by nixos-infect
|
||||
|
||||
inputs.agenix.nixosModules.default
|
||||
|
||||
"${mod}/services/forgejo.nix"
|
||||
"${mod}/services/searx.nix"
|
||||
"${mod}/services/portfolio.nix"
|
||||
];
|
||||
|
||||
boot.tmp.cleanOnBoot = true;
|
||||
zramSwap.enable = true;
|
||||
networking.hostName = "anastacia";
|
||||
networking.domain = "";
|
||||
services.openssh.enable = true;
|
||||
users.users.root.openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEzs7SQH0Vjt9JHoXXmWy9fPU1I3rrRWV5magZFrI5al"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHKEPlN/GU9nJZPleA77HH5NA+6vyhhM84fTSjEwnEgq"
|
||||
];
|
||||
system.stateVersion = "23.11";
|
||||
}
|
12
hosts/anastacia/hardware-configuration.nix
Normal file
12
hosts/anastacia/hardware-configuration.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{modulesPath, ...}: {
|
||||
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||
boot = {
|
||||
loader.grub.device = "/dev/sda";
|
||||
initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
|
||||
initrd.kernelModules = ["nvme"];
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/sda1";
|
||||
fsType = "ext4";
|
||||
};
|
||||
}
|
52
hosts/anastacia/networking.nix
Normal file
52
hosts/anastacia/networking.nix
Normal file
|
@ -0,0 +1,52 @@
|
|||
{lib, ...}: {
|
||||
# This file was populated at runtime with the networking
|
||||
# details gathered from the active system.
|
||||
networking = {
|
||||
nameservers = [
|
||||
"8.8.8.8"
|
||||
];
|
||||
defaultGateway = "172.31.1.1";
|
||||
defaultGateway6 = {
|
||||
address = "fe80::1";
|
||||
interface = "eth0";
|
||||
};
|
||||
dhcpcd.enable = false;
|
||||
usePredictableInterfaceNames = lib.mkForce false;
|
||||
interfaces = {
|
||||
eth0 = {
|
||||
ipv4.addresses = [
|
||||
{
|
||||
address = "78.47.146.254";
|
||||
prefixLength = 32;
|
||||
}
|
||||
];
|
||||
ipv6.addresses = [
|
||||
{
|
||||
address = "2a01:4f8:1c1c:8495::1";
|
||||
prefixLength = 64;
|
||||
}
|
||||
{
|
||||
address = "fe80::9400:3ff:fecb:6deb";
|
||||
prefixLength = 64;
|
||||
}
|
||||
];
|
||||
ipv4.routes = [
|
||||
{
|
||||
address = "172.31.1.1";
|
||||
prefixLength = 32;
|
||||
}
|
||||
];
|
||||
ipv6.routes = [
|
||||
{
|
||||
address = "fe80::1";
|
||||
prefixLength = 128;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
services.udev.extraRules = ''
|
||||
ATTR{address}=="96:00:03:cb:6d:eb", NAME="eth0"
|
||||
|
||||
'';
|
||||
}
|
|
@ -1,80 +1,33 @@
|
|||
{
|
||||
self,
|
||||
inputs,
|
||||
lib',
|
||||
...
|
||||
}: {
|
||||
flake.nixosConfigurations = let
|
||||
inherit (inputs.nixpkgs.lib) nixosSystem;
|
||||
homeImports = import "${self}/home/profiles";
|
||||
mod = "${self}/system";
|
||||
inherit (import mod) laptop desktop;
|
||||
specialArgs = {
|
||||
inherit inputs self;
|
||||
};
|
||||
}: let
|
||||
inherit (lib') mkSystem;
|
||||
in {
|
||||
vamos = nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules =
|
||||
laptop
|
||||
++ [
|
||||
vamos = mkSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./vamos
|
||||
"${mod}/core/lanzaboote.nix"
|
||||
|
||||
"${mod}/services/greetd.nix"
|
||||
"${mod}/programs/niri"
|
||||
"${mod}/services/gnome.nix"
|
||||
"${mod}/services/mail.nix"
|
||||
|
||||
self.nixosModules.style
|
||||
|
||||
({pkgs, ...}: {
|
||||
style = let
|
||||
wallpaper = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/e0cf0eb237dc5baba86661a3572b20a6183c1876/wallpapers/nix-wallpaper-nineish-catppuccin-frappe.png?raw=true";
|
||||
hash = "sha256-/HAtpGwLxjNfJvX5/4YZfM8jPNStaM3gisK8+ImRmQ4=";
|
||||
};
|
||||
in {
|
||||
gtk.enable = true;
|
||||
inherit wallpaper;
|
||||
};
|
||||
})
|
||||
{
|
||||
home-manager = {
|
||||
users.nezia.imports = homeImports.vamos;
|
||||
extraSpecialArgs = specialArgs;
|
||||
};
|
||||
}
|
||||
inputs.self.nixosModules.theme
|
||||
|
||||
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
||||
];
|
||||
};
|
||||
|
||||
solaire = nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules =
|
||||
desktop
|
||||
++ [
|
||||
solaire = mkSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./solaire
|
||||
|
||||
"${mod}/programs/gnome.nix"
|
||||
|
||||
"${mod}/hardware/nvidia.nix"
|
||||
"${mod}/programs/games.nix"
|
||||
|
||||
self.nixosModules.style
|
||||
{
|
||||
style = {
|
||||
gtk.enable = false;
|
||||
wallpaper = ../wallpapers/lucy-edgerunners-wallpaper.jpg;
|
||||
};
|
||||
}
|
||||
{
|
||||
home-manager = {
|
||||
users.nezia.imports = homeImports.solaire;
|
||||
extraSpecialArgs = specialArgs;
|
||||
};
|
||||
}
|
||||
inputs.self.nixosModules.theme
|
||||
];
|
||||
};
|
||||
|
||||
anastacia = mkSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./anastacia
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,29 @@
|
|||
{pkgs, ...}: {
|
||||
{specialArgs, ...}: let
|
||||
system = ../../system;
|
||||
home = ../../home;
|
||||
in {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
|
||||
system
|
||||
"${system}/hardware/uni-sync.nix"
|
||||
|
||||
"${system}/programs/gnome.nix"
|
||||
"${system}/programs/games.nix"
|
||||
"${system}/hardware/nvidia.nix"
|
||||
];
|
||||
|
||||
home-manager = {
|
||||
users.nezia.imports = [
|
||||
home
|
||||
"${home}/programs/games"
|
||||
|
||||
"${home}/terminal/emulators/foot.nix"
|
||||
];
|
||||
extraSpecialArgs = specialArgs;
|
||||
};
|
||||
|
||||
networking.hostName = "solaire";
|
||||
environment.variables.FLAKE = "/home/nezia/.dotfiles";
|
||||
}
|
||||
|
|
3
hosts/solaire/modules/default.nix
Normal file
3
hosts/solaire/modules/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
imports = [./theme.nix];
|
||||
}
|
3
hosts/solaire/modules/theme.nix
Normal file
3
hosts/solaire/modules/theme.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
theme.wallpaper = ../../wallpapers/lucy-edgerunners-wallpaper.jpg;
|
||||
}
|
|
@ -1,7 +1,47 @@
|
|||
{lib, ...}: {
|
||||
{
|
||||
self,
|
||||
specialArgs,
|
||||
...
|
||||
}: let
|
||||
mod = "${self}/system";
|
||||
in {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
|
||||
"${mod}"
|
||||
"${mod}/core/lanzaboote.nix"
|
||||
|
||||
"${mod}/hardware/fprintd.nix"
|
||||
"${mod}/services/power.nix"
|
||||
"${mod}/services/brightness.nix"
|
||||
|
||||
"${mod}/services/logind.nix"
|
||||
"${mod}/services/greetd.nix"
|
||||
"${mod}/services/kanata.nix"
|
||||
|
||||
"${mod}/programs/niri"
|
||||
"${mod}/services/gnome.nix"
|
||||
"${mod}/services/mail.nix"
|
||||
];
|
||||
|
||||
home-manager = {
|
||||
users.nezia.imports = [
|
||||
"${self}/home"
|
||||
"${self}/home/services/udiskie.nix"
|
||||
|
||||
"${self}/home/programs/niri"
|
||||
"${self}/home/programs/ags"
|
||||
"${self}/home/programs/fuzzel.nix"
|
||||
"${self}/home/programs/swaybg.nix"
|
||||
"${self}/home/programs/swaylock.nix"
|
||||
"${self}/home/programs/swayidle.nix"
|
||||
|
||||
"${self}/home/terminal/emulators/foot.nix"
|
||||
];
|
||||
extraSpecialArgs = specialArgs;
|
||||
};
|
||||
|
||||
networking.hostName = "vamos";
|
||||
environment.variables.FLAKE = "/home/nezia/.dotfiles";
|
||||
}
|
||||
|
|
3
hosts/vamos/modules/default.nix
Normal file
3
hosts/vamos/modules/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
imports = [./theme.nix];
|
||||
}
|
8
hosts/vamos/modules/theme.nix
Normal file
8
hosts/vamos/modules/theme.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{pkgs, ...}: {
|
||||
theme = {
|
||||
wallpaper = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/e0cf0eb237dc5baba86661a3572b20a6183c1876/wallpapers/nix-wallpaper-nineish-catppuccin-frappe.png?raw=true";
|
||||
hash = "sha256-/HAtpGwLxjNfJvX5/4YZfM8jPNStaM3gisK8+ImRmQ4=";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
lib',
|
||||
...
|
||||
}: let
|
||||
inherit (inputs.nixpkgs) lib;
|
||||
# convert rrggbb hex to rgba(r, g, b, a)
|
||||
rgba = c: let
|
||||
r = toString (hexToDec (builtins.substring 0 2 c));
|
||||
|
@ -86,8 +87,25 @@
|
|||
];
|
||||
|
||||
# Create a KDE konsole color scheme from base16 colors
|
||||
mkKonsoleColorScheme = scheme:
|
||||
mkKonsoleColorScheme = pkgs: scheme:
|
||||
pkgs.writeText "${scheme.name}.colorscheme" (schemeToKonsole scheme);
|
||||
in {
|
||||
inherit mkKonsoleColorScheme rgba;
|
||||
|
||||
# https://github.com/diniamo/niqs/blob/caf396bb470619fa06936a379eec6e283c3c3d95/lib/default.nix#L13-L35C7
|
||||
mkSystem = {system, ...} @ args:
|
||||
lib.nixosSystem {
|
||||
system = null;
|
||||
specialArgs = {inherit inputs;};
|
||||
modules =
|
||||
[
|
||||
{
|
||||
_module.args = {
|
||||
inherit system lib';
|
||||
};
|
||||
nixpkgs = {inherit system;};
|
||||
}
|
||||
]
|
||||
++ args.modules or [];
|
||||
};
|
||||
in {
|
||||
inherit mkKonsoleColorScheme rgba mkSystem;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
{
|
||||
flake.nixosModules = {
|
||||
style = import ./style;
|
||||
};
|
||||
theme = import ./theme;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
inherit (lib.types) string path package;
|
||||
in {
|
||||
imports = [./gtk.nix];
|
||||
options.style = {
|
||||
options.theme = {
|
||||
scheme = mkOption {
|
||||
description = ''
|
||||
Name of the tinted-scheming color scheme to use.
|
||||
|
@ -22,6 +22,10 @@ in {
|
|||
'';
|
||||
type = path;
|
||||
example = lib.literalExpression "./wallpaper.png";
|
||||
default = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/e0cf0eb237dc5baba86661a3572b20a6183c1876/wallpapers/nix-wallpaper-nineish-catppuccin-frappe.png?raw=true";
|
||||
hash = "sha256-/HAtpGwLxjNfJvX5/4YZfM8jPNStaM3gisK8+ImRmQ4=";
|
||||
};
|
||||
};
|
||||
|
||||
cursorTheme = {
|
|
@ -8,9 +8,9 @@
|
|||
inherit (lib) mkOption mkEnableOption;
|
||||
inherit (lib.types) package str;
|
||||
|
||||
cfg = config.style.gtk;
|
||||
cfg = config.theme.gtk;
|
||||
in {
|
||||
options.style.gtk = {
|
||||
options.theme.gtk = {
|
||||
enable = mkEnableOption "enable GTK theming options";
|
||||
theme = {
|
||||
name = mkOption {
|
||||
|
@ -57,7 +57,7 @@ in {
|
|||
${toString themePath} set by the GTK module does not exist!
|
||||
|
||||
To suppress this message, make sure that
|
||||
`config.modules.style.gtk.theme.package` contains
|
||||
`config.modules.theme.gtk.theme.package` contains
|
||||
the path `${cfg.theme.name}`
|
||||
'';
|
||||
})
|
14
nodes/default.nix
Normal file
14
nodes/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
anastacia = {
|
||||
hostname = "2a01:4f8:1c1c:8495::1";
|
||||
profiles.system = {
|
||||
sshUser = "root";
|
||||
user = "root";
|
||||
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.anastacia;
|
||||
};
|
||||
};
|
||||
}
|
208
pkgs/bolt-launcher.nix
Normal file
208
pkgs/bolt-launcher.nix
Normal file
|
@ -0,0 +1,208 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
cmake,
|
||||
ninja,
|
||||
libarchive,
|
||||
libz,
|
||||
jdk17,
|
||||
libcef,
|
||||
luajit,
|
||||
xorg,
|
||||
mesa,
|
||||
glib,
|
||||
nss,
|
||||
nspr,
|
||||
atk,
|
||||
at-spi2-atk,
|
||||
libdrm,
|
||||
expat,
|
||||
libxkbcommon,
|
||||
gtk3,
|
||||
pango,
|
||||
cairo,
|
||||
alsa-lib,
|
||||
dbus,
|
||||
at-spi2-core,
|
||||
cups,
|
||||
systemd,
|
||||
buildFHSEnv,
|
||||
copyDesktopItems,
|
||||
makeDesktopItem,
|
||||
}: let
|
||||
cef = libcef.overrideAttrs (_: {
|
||||
installPhase = let
|
||||
gl_rpath = lib.makeLibraryPath [
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
rpath = lib.makeLibraryPath [
|
||||
glib
|
||||
nss
|
||||
nspr
|
||||
atk
|
||||
at-spi2-atk
|
||||
libdrm
|
||||
expat
|
||||
xorg.libxcb
|
||||
libxkbcommon
|
||||
xorg.libX11
|
||||
xorg.libXcomposite
|
||||
xorg.libXdamage
|
||||
xorg.libXext
|
||||
xorg.libXfixes
|
||||
xorg.libXrandr
|
||||
mesa
|
||||
gtk3
|
||||
pango
|
||||
cairo
|
||||
alsa-lib
|
||||
dbus
|
||||
at-spi2-core
|
||||
cups
|
||||
xorg.libxshmfence
|
||||
systemd
|
||||
];
|
||||
in ''
|
||||
mkdir -p $out/lib/ $out/share/cef/
|
||||
cp libcef_dll_wrapper/libcef_dll_wrapper.a $out/lib/
|
||||
cp -r ../Resources/* $out/lib/
|
||||
cp -r ../Release/* $out/lib/
|
||||
patchelf --set-rpath "${rpath}" $out/lib/libcef.so
|
||||
patchelf --set-rpath "${gl_rpath}" $out/lib/libEGL.so
|
||||
patchelf --set-rpath "${gl_rpath}" $out/lib/libGLESv2.so
|
||||
cp ../Release/*.bin $out/share/cef/
|
||||
cp -r ../Resources/* $out/share/cef/
|
||||
cp -r ../include $out
|
||||
cp -r ../libcef_dll $out
|
||||
cp -r ../cmake $out
|
||||
'';
|
||||
});
|
||||
|
||||
bolt = stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "bolt-launcher";
|
||||
version = "0.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AdamCake";
|
||||
repo = "bolt";
|
||||
rev = finalAttrs.version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-2IoFzD+yhQv1Y7D+abeNUT23BC4P1xZTALF8Y+Zsg44=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
luajit
|
||||
makeWrapper
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
mesa
|
||||
xorg.libX11
|
||||
xorg.libxcb
|
||||
libarchive
|
||||
libz
|
||||
cef
|
||||
jdk17
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
inherit (bolt) name;
|
||||
desktopName = "Bolt Launcher";
|
||||
keywords = [
|
||||
"Game"
|
||||
];
|
||||
exec = "${bolt.name}";
|
||||
terminal = false;
|
||||
categories = ["Game"];
|
||||
icon = "bolt-launcher";
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-D CMAKE_BUILD_TYPE=Release"
|
||||
"-D BOLT_LUAJIT_INCLUDE_DIR=${luajit}/include"
|
||||
"-G Ninja"
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
ls -al
|
||||
mkdir -p cef/dist/Release cef/dist/Resources cef/dist/include
|
||||
|
||||
ln -s ${cef}/lib/* cef/dist/Release
|
||||
|
||||
ln -s ${cef}/share/cef/*.pak cef/dist/Resources
|
||||
ln -s ${cef}/share/cef/icudtl.dat cef/dist/Resources
|
||||
ln -s ${cef}/share/cef/locales cef/dist/Resources
|
||||
|
||||
ln -s ${cef}/include/* cef/dist/include
|
||||
ln -s ${cef}/libcef_dll cef/dist/libcef_dll
|
||||
|
||||
ln -s ${cef}/cmake cef/dist/cmake
|
||||
ln -s ${cef}/CMakeLists.txt cef/dist
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
for size in 16 32 64 128 256; do
|
||||
size_dir="''${size}x''${size}"
|
||||
ls -al $src/icon
|
||||
mkdir -p $out/share/icons/hicolor/''${size_dir}/apps
|
||||
cp $src/icon/$size.png $out/share/icons/hicolor/''${size_dir}/apps/bolt-launcher.png
|
||||
done
|
||||
mkdir -p $out/share/icons/hicolor/scalable/apps/
|
||||
cp $src/icon/bolt.svg $out/share/icons/hicolor/scalable/apps/bolt-launcher.svg
|
||||
'';
|
||||
postFixup = ''
|
||||
makeWrapper "$out/opt/bolt-launcher/bolt" "$out/bin/${finalAttrs.pname}-${finalAttrs.version}" \
|
||||
--set JAVA_HOME "${jdk17}"
|
||||
ls -al $out/bin
|
||||
mkdir -p $out/lib
|
||||
cp $out/usr/local/lib/libbolt-plugin.so $out/lib
|
||||
'';
|
||||
});
|
||||
in
|
||||
buildFHSEnv {
|
||||
inherit (bolt) name version;
|
||||
|
||||
targetPkgs = pkgs:
|
||||
[bolt]
|
||||
++ (with pkgs; [
|
||||
xorg.libSM
|
||||
xorg.libXxf86vm
|
||||
xorg.libX11
|
||||
glib
|
||||
pango
|
||||
cairo
|
||||
gdk-pixbuf
|
||||
gtk2-x11
|
||||
libz
|
||||
libcap
|
||||
libsecret
|
||||
openssl_1_1
|
||||
SDL2
|
||||
libGL
|
||||
]);
|
||||
|
||||
extraInstallCommands = ''
|
||||
mkdir -p $out/share/applications $out/share/icons
|
||||
ln -s ${bolt}/share/applications/*.desktop \
|
||||
$out/share/applications/
|
||||
ln -s ${bolt}/share/icons/hicolor \
|
||||
$out/share/icons/hicolor
|
||||
'';
|
||||
|
||||
runScript = "${bolt.name}";
|
||||
meta = {
|
||||
homepage = "https://github.com/Adamcake/Bolt";
|
||||
description = "An alternative launcher for RuneScape";
|
||||
license = lib.licenses.agpl3Plus;
|
||||
maintainers = with lib.maintainers; [nezia];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "${bolt.name}";
|
||||
};
|
||||
}
|
15
pkgs/default.nix
Normal file
15
pkgs/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
mcuxpresso = import ./mcuxpresso pkgs;
|
||||
# this is unfortunately needed since bolt-launcher makes use of openssl-1.1.1w, and since it is not part of hosts, we have to add it this way
|
||||
bolt-launcher =
|
||||
(import inputs.nixpkgs {
|
||||
inherit (pkgs) system;
|
||||
config.permittedInsecurePackages = ["openssl-1.1.1w"];
|
||||
})
|
||||
.callPackage
|
||||
./bolt-launcher.nix {};
|
||||
}
|
49
pkgs/mcuxpresso/config-tools.nix
Normal file
49
pkgs/mcuxpresso/config-tools.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
eclipses,
|
||||
stdenv,
|
||||
requireFile,
|
||||
...
|
||||
}: let
|
||||
name = "mcuxpressotools";
|
||||
version = "v16-1";
|
||||
description = "MCUXpresso Config Tools";
|
||||
filename = "mcuxpresso-config-tools-${version}_amd64.deb";
|
||||
|
||||
src = stdenv.mkDerivation {
|
||||
inherit version description;
|
||||
name = "${name}-src";
|
||||
src = requireFile {
|
||||
url = "https://www.nxp.com/design/software/development-software/mcuxpresso-config-tools-pins-clocks-and-peripherals:MCUXpresso-Config-Tools";
|
||||
name = "${filename}.bin";
|
||||
sha256 = "sha256-BbEwxm1urV2IrgUiTiMBEAPvonQGwdL4fpqFftGgRxI=";
|
||||
};
|
||||
|
||||
buildCommand = ''
|
||||
# Unpack tarball.
|
||||
mkdir -p deb
|
||||
sh $src --target deb || true
|
||||
ar -xv deb/${filename}
|
||||
tar xfvz data.tar.gz -C .
|
||||
|
||||
mkdir -p ./final/eclipse
|
||||
mv ./opt/nxp/MCUX_CFG_v13/bin/.* final/eclipse
|
||||
mv ./usr final/
|
||||
mv final/eclipse/tools final/eclipse/eclipse
|
||||
mv final/eclipse/tools.ini final/eclipse/eclipse.ini
|
||||
|
||||
# Create custom .eclipseproduct file
|
||||
echo "name=${name}
|
||||
id=com.nxp.${name}
|
||||
version=${version}
|
||||
" > final/eclipse/.eclipseproduct
|
||||
|
||||
# Additional files
|
||||
mkdir -p final/usr/share/mime
|
||||
mv ./opt/nxp/MCUX_CFG_v13/mcu_data final/mcu_data
|
||||
|
||||
cd ./final
|
||||
tar -czf $out ./
|
||||
'';
|
||||
};
|
||||
in
|
||||
eclipses.buildEclipse {inherit description name src;}
|
3
pkgs/mcuxpresso/default.nix
Normal file
3
pkgs/mcuxpresso/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
pkgs: {
|
||||
ide = pkgs.callPackage ./ide.nix {};
|
||||
}
|
100
pkgs/mcuxpresso/ide.nix
Normal file
100
pkgs/mcuxpresso/ide.nix
Normal file
|
@ -0,0 +1,100 @@
|
|||
# https://github.com/KoviRobi/nixos-config/blob/3ab3f8372d1fd021a235de4d314ef7147846513e/overlays/mcuxpresso.nix
|
||||
{pkgs, ...}: let
|
||||
name = "mcuxpressoide";
|
||||
version = "24.9.25";
|
||||
description = "MCUXpresso IDE";
|
||||
filename = "${name}-${version}.x86_64.deb";
|
||||
mcuxpressoideSrc = pkgs.stdenv.mkDerivation {
|
||||
inherit version description;
|
||||
name = "${name}-src";
|
||||
src = pkgs.requireFile {
|
||||
url = "https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE";
|
||||
name = "${filename}.bin";
|
||||
hash = "sha256-e3g7rzZQ1WFLcUakkjaufpHMtw3qkw5lwxJuCKs6L+k=";
|
||||
};
|
||||
buildCommand = ''
|
||||
# Unpack tarball.
|
||||
mkdir -p deb
|
||||
sh $src --target deb || true
|
||||
ar -xv deb/${filename}
|
||||
tar xfvz data.tar.gz -C .
|
||||
mkdir -p ./final/eclipse
|
||||
mv ./usr/local/${name}-${version}/ide/* ./usr/local/${name}-${version}/ide/.* final/eclipse
|
||||
mv final/eclipse/mcuxpressoide final/eclipse/eclipse
|
||||
mv final/eclipse/mcuxpressoide.ini final/eclipse/eclipse.ini
|
||||
# Create custom .eclipseproduct file
|
||||
rm final/eclipse/.eclipseproduct
|
||||
echo "name=${name}
|
||||
id=com.nxp.${name}
|
||||
version=${version}
|
||||
" > final/eclipse/.eclipseproduct
|
||||
# Install udev rules
|
||||
mkdir -p final/lib/udev/rules.d
|
||||
mv ./lib/udev/rules.d/56-pemicro.rules ./lib/udev/rules.d/85-mcuxpresso.rules final/lib/udev/rules.d/
|
||||
# Additional files
|
||||
mv ./usr/local/${name}-${version}/mcu_data final/mcu_data
|
||||
cd ./final
|
||||
tar -czf $out ./
|
||||
'';
|
||||
};
|
||||
mcuxpressoide = pkgs.eclipses.buildEclipse {
|
||||
name = "mcuxpresso-eclipse";
|
||||
inherit description;
|
||||
src = mcuxpressoideSrc;
|
||||
};
|
||||
|
||||
# needed because of the integrated toolchain
|
||||
mcuxpressoFhsEnv = pkgs.buildFHSEnv {
|
||||
name = "mcuxpresso-env";
|
||||
targetPkgs = pkgs: [
|
||||
pkgs.stdenv.cc.cc.lib
|
||||
pkgs.gcc
|
||||
pkgs.libgcc
|
||||
pkgs.libstdcxx5
|
||||
pkgs.xorg.libXext
|
||||
pkgs.xorg.libX11
|
||||
pkgs.xorg.libXrender
|
||||
pkgs.xorg.libXtst
|
||||
pkgs.xorg.libXi
|
||||
pkgs.freetype
|
||||
pkgs.alsa-lib
|
||||
pkgs.ncurses
|
||||
pkgs.ncurses5
|
||||
pkgs.libusb1
|
||||
pkgs.readline
|
||||
pkgs.libffi
|
||||
pkgs.zlib
|
||||
pkgs.tcl
|
||||
pkgs.libxcrypt
|
||||
pkgs.libxcrypt-legacy
|
||||
pkgs.libusb-compat-0_1
|
||||
];
|
||||
|
||||
runScript = "${mcuxpressoide}/bin/eclipse";
|
||||
};
|
||||
in
|
||||
# wrapper with desktop entry and udev rules
|
||||
pkgs.stdenv.mkDerivation {
|
||||
inherit name version description;
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
nativeBuildInputs = [pkgs.copyDesktopItems];
|
||||
desktopItems = [
|
||||
(pkgs.makeDesktopItem {
|
||||
inherit name;
|
||||
type = "Application";
|
||||
desktopName = "MCUXpresso IDE";
|
||||
exec = "mcuxpresso";
|
||||
})
|
||||
];
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin $out/lib/udev/rules.d $out/eclipse $out/mcu_data
|
||||
|
||||
cp ${mcuxpressoide}/lib/udev/rules.d/85-mcuxpresso.rules ${mcuxpressoide}/lib/udev/rules.d/56-pemicro.rules $out/lib/udev/rules.d/
|
||||
|
||||
ln -s ${mcuxpressoFhsEnv}/bin/mcuxpresso-env $out/bin/mcuxpresso
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
BIN
secrets/searx-env-file.age
Normal file
BIN
secrets/searx-env-file.age
Normal file
Binary file not shown.
5
secrets/secrets.nix
Normal file
5
secrets/secrets.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
let
|
||||
anastacia = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEplguGeXCbdz++Ry5pwJylmtAMnwtf1+9JoJnCGfw3A root@anastacia";
|
||||
in {
|
||||
"searx-env-file.age".publicKeys = [anastacia];
|
||||
}
|
|
@ -4,7 +4,6 @@
|
|||
./users.nix
|
||||
./security.nix
|
||||
./networking.nix
|
||||
../nix
|
||||
];
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
"audio"
|
||||
"video"
|
||||
"wheel"
|
||||
"plugdev"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
let
|
||||
common = [
|
||||
{
|
||||
imports = [
|
||||
./core
|
||||
./nix
|
||||
|
||||
./hardware/printing.nix
|
||||
./hardware/fwupd.nix
|
||||
|
||||
|
@ -10,21 +12,4 @@ let
|
|||
|
||||
./services
|
||||
];
|
||||
desktop =
|
||||
common
|
||||
++ [
|
||||
./hardware/uni-sync.nix
|
||||
];
|
||||
|
||||
laptop =
|
||||
common
|
||||
++ [
|
||||
./hardware/fprintd.nix
|
||||
./services/power.nix
|
||||
./services/brightness.nix
|
||||
./services/keyd.nix
|
||||
./services/logind.nix
|
||||
];
|
||||
in {
|
||||
inherit desktop laptop;
|
||||
}
|
||||
|
|
|
@ -1,33 +1,11 @@
|
|||
{config, ...}: {
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
hardware.nvidia = {
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||
# of just the bare essentials.
|
||||
powerManagement.enable = false;
|
||||
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
# Use the NVidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false;
|
||||
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
nixpkgs = {
|
||||
config.allowUnfree = true;
|
||||
overlays = [
|
||||
(_: prev: {
|
||||
lib =
|
||||
prev.lib
|
||||
// import ../../lib {
|
||||
inherit (prev) lib pkgs;
|
||||
};
|
||||
})
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = [
|
||||
"cinny-4.2.2"
|
||||
"cinny-unwrapped-4.2.2"
|
||||
"segger-jlink-qt4-796s"
|
||||
];
|
||||
config.permittedInsecurePackages = ["cinny-4.2.1" "cinny-unwrapped-4.2.1"];
|
||||
segger-jlink.acceptLicense = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
fonts = {
|
||||
packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
noto-fonts-extra
|
||||
(nerdfonts.override {fonts = ["IntelOneMono"];})
|
||||
|
|
|
@ -1,21 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
gamescopeSession.enable = true;
|
||||
extraCompatPackages = [
|
||||
pkgs.proton-ge-bin
|
||||
];
|
||||
};
|
||||
gamemode = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
softrealtime = "auto";
|
||||
renice = 15;
|
||||
};
|
||||
};
|
||||
};
|
||||
steam.enable = true;
|
||||
gamemode.enable = true;
|
||||
gamescope.enable = true;
|
||||
|
||||
coolercontrol = {
|
||||
enable = true;
|
||||
nvidiaSupport = true;
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
{
|
||||
imports = [./docker.nix ./gnupg.nix ./pipewire.nix ./kmscon.nix];
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./docker.nix
|
||||
./gnupg.nix
|
||||
./pipewire.nix
|
||||
./kmscon.nix
|
||||
];
|
||||
services.udev.packages = [pkgs.segger-jlink];
|
||||
}
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
_: {
|
||||
virtualisation.docker = {
|
||||
{pkgs, ...}: {
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
rootless = {
|
||||
enable = true;
|
||||
setSocketVariable = true;
|
||||
};
|
||||
dockerCompat = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = [pkgs.distrobox];
|
||||
}
|
||||
|
|
54
system/services/forgejo.nix
Normal file
54
system/services/forgejo.nix
Normal file
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
srv = config.services.forgejo.settings.server;
|
||||
in {
|
||||
services = {
|
||||
forgejo = {
|
||||
enable = true;
|
||||
package = pkgs.forgejo;
|
||||
lfs.enable = true;
|
||||
database.type = "postgres";
|
||||
dump = {
|
||||
enable = true;
|
||||
type = "tar.xz";
|
||||
};
|
||||
settings = {
|
||||
server = {
|
||||
DOMAIN = "git.nezia.dev";
|
||||
HTTP_PORT = 1849;
|
||||
ROOT_URL = "https://${srv.DOMAIN}/";
|
||||
HTTP_ADDR = "localhost";
|
||||
};
|
||||
service = {
|
||||
DISABLE_REGISTRATION = true;
|
||||
};
|
||||
federation = {
|
||||
ENABLED = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
caddy = {
|
||||
enable = true;
|
||||
virtualHosts."git.nezia.dev".extraConfig = ''
|
||||
reverse_proxy * localhost:${toString srv.HTTP_PORT}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [80 443];
|
||||
|
||||
# If you're using nftables (default in newer NixOS)
|
||||
extraForwardRules = ''
|
||||
ip6 saddr { ::/0 } accept
|
||||
'';
|
||||
};
|
||||
|
||||
# Ensure IPv6 is enabled
|
||||
networking.enableIPv6 = true;
|
||||
}
|
33
system/services/kanata.nix
Normal file
33
system/services/kanata.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
services.kanata = {
|
||||
enable = true;
|
||||
keyboards.default = {
|
||||
extraDefCfg = "process-unmapped-keys yes";
|
||||
config = ''
|
||||
(defsrc
|
||||
caps a s d f j k l ;
|
||||
)
|
||||
(defvar
|
||||
tap-time 150
|
||||
hold-time 200
|
||||
)
|
||||
|
||||
(defalias
|
||||
escctrl (tap-hold 100 100 esc lctl)
|
||||
a (tap-hold $tap-time $hold-time a lmet)
|
||||
s (tap-hold $tap-time $hold-time s lalt)
|
||||
d (tap-hold $tap-time $hold-time d lsft)
|
||||
f (tap-hold $tap-time $hold-time f lctl)
|
||||
j (tap-hold $tap-time $hold-time j rctl)
|
||||
k (tap-hold $tap-time $hold-time k rsft)
|
||||
l (tap-hold $tap-time $hold-time l ralt)
|
||||
; (tap-hold $tap-time $hold-time ; rmet)
|
||||
)
|
||||
|
||||
(deflayer base
|
||||
@escctrl @a @s @d @f @j @k @l @;
|
||||
)
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
_: {
|
||||
{
|
||||
hardware.pulseaudio.enable = false;
|
||||
# rtkit is optional but recommended
|
||||
security.rtkit.enable = true;
|
||||
|
|
21
system/services/portfolio.nix
Normal file
21
system/services/portfolio.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
services.caddy.enable = true;
|
||||
services.caddy.virtualHosts = {
|
||||
"www.nezia.dev" = {
|
||||
extraConfig = ''
|
||||
redir https://nezia.dev{uri}
|
||||
'';
|
||||
};
|
||||
"nezia.dev" = {
|
||||
extraConfig = ''
|
||||
root * ${inputs.portfolio.packages.${pkgs.system}.default}
|
||||
file_server
|
||||
encode gzip
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
61
system/services/searx.nix
Normal file
61
system/services/searx.nix
Normal file
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
age.secrets.searx-env-file.file = ../../secrets/searx-env-file.age;
|
||||
services = {
|
||||
searx = {
|
||||
enable = true;
|
||||
package = pkgs.searxng;
|
||||
environmentFile = config.age.secrets.searx-env-file.path;
|
||||
settings = {
|
||||
search = {
|
||||
safe_search = 1; # 0 = None, 1 = Moderate, 2 = Strict
|
||||
autocomplete = "google"; # Existing autocomplete backends: "dbpedia", "duckduckgo", "google", "startpage", "swisscows", "qwant", "wikipedia" - leave blank to turn it off by default
|
||||
default_lang = "en";
|
||||
};
|
||||
server = {
|
||||
secret_key = "@SEARX_SECRET_KEY@";
|
||||
port = 8888; # Internal port
|
||||
bind_address = "localhost"; # Only listen locally
|
||||
base_url = "https://search.nezia.dev/";
|
||||
image_proxy = true;
|
||||
default_http_headers = {
|
||||
X-Content-Type-Options = "nosniff";
|
||||
X-XSS-Protection = "1; mode=block";
|
||||
X-Download-Options = "noopen";
|
||||
X-Robots-Tag = "noindex, nofollow";
|
||||
Referrer-Policy = "no-referrer";
|
||||
};
|
||||
};
|
||||
engines = [
|
||||
{
|
||||
name = "qwant";
|
||||
disabled = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
caddy = {
|
||||
enable = true;
|
||||
virtualHosts."search.nezia.dev" = {
|
||||
extraConfig = ''
|
||||
encode gzip
|
||||
reverse_proxy localhost:8888 {
|
||||
header_up Host {host}
|
||||
header_up X-Real-IP {remote_addr}
|
||||
header_up X-Forwarded-For {remote_addr}
|
||||
header_up X-Forwarded-Proto {scheme}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Open required ports
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [80 443]; # For Caddy
|
||||
};
|
||||
}
|
12
treefmt.nix
12
treefmt.nix
|
@ -1,6 +1,10 @@
|
|||
# TODO: maybe use flake-parts
|
||||
{...}: {
|
||||
# Used to find the project root
|
||||
{pkgs, ...}: {
|
||||
projectRootFile = "flake.nix";
|
||||
programs.alejandra.enable = true;
|
||||
programs = {
|
||||
alejandra.enable = true;
|
||||
prettier = {
|
||||
enable = true;
|
||||
package = pkgs.prettierd;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue