Compare commits
462 Commits
e48e85efca
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| f731b09c9b | |||
| 681d580834 | |||
| c16f619732 | |||
| 8b704ca9f7 | |||
| bf87002d91 | |||
| 3a33b46f52 | |||
| a7fc2ee976 | |||
| c8f3ce3768 | |||
| abaca53989 | |||
| 1151945f18 | |||
| b4bf8b0093 | |||
| 71386af8da | |||
| 2700cd34a5 | |||
| 22f37bfba9 | |||
| b71546481c | |||
| d1dd875ea8 | |||
| 970d45a75c | |||
| b35cac26b1 | |||
| ff9ee23ee0 | |||
| 8fff664b55 | |||
| d0159eecdf | |||
| 5e43ddadaa | |||
| 985b5ce8e4 | |||
| 79bd87da9a | |||
| f17fce3866 | |||
| 514aa05d05 | |||
| 3f0d7c3806 | |||
| abbcf54489 | |||
| fe5e30596b | |||
| 11dc4b4490 | |||
| ac59282517 | |||
| 8661fdfad5 | |||
| 14d3ae83dd | |||
| 81aae9ac71 | |||
| 18a57c160b | |||
| b5c985ad08 | |||
| 7c089142bc | |||
| 4f23e5e540 | |||
| bdeb797391 | |||
| 02004ea3d0 | |||
| a2f8af6802 | |||
| 60cfe95bda | |||
| 80ea189629 | |||
| 9cf0f7a230 | |||
| acc61a7228 | |||
| 7cd3810565 | |||
| 03056d2f70 | |||
| 7a2abdb6e6 | |||
| 223723d018 | |||
| 6e7f3a5d95 | |||
| 5bb9a90538 | |||
| f44d248da3 | |||
| 577436b45c | |||
| b8892ed62c | |||
| f123f301f6 | |||
| b52d3b3904 | |||
| f2f386c021 | |||
| cd44bb5c93 | |||
| 99878eef4e | |||
| 149519399e | |||
| 72179ba9ed | |||
| 3aeaa1eb72 | |||
| 28c9d241b7 | |||
| c107f00dd9 | |||
| a100df6827 | |||
| 4d522d6b34 | |||
| 942aa6a08f | |||
| 2f24f34fad | |||
| 680d1b5014 | |||
| 66f2bc265a | |||
| 9eecf8dd33 | |||
| ea0c93c27c | |||
| 1f1874f3d8 | |||
| 4c720b7341 | |||
| 3497d430db | |||
| ded59b96a0 | |||
| ad60805ef3 | |||
| d7efbe459b | |||
| a348819906 | |||
| 236a245e11 | |||
| 15231fdc2c | |||
| 62e50610dd | |||
| 38aad253de | |||
| 8c077381e6 | |||
| a9e162ca29 | |||
| 914c83839a | |||
| f932e1df89 | |||
| 89e585b0ba | |||
| 2a1e72ec02 | |||
| 51efebc661 | |||
| 05082b23cc | |||
| 1b5af5d9e1 | |||
| 78522881ad | |||
| 4a9b4141d8 | |||
| 4a8ab57d91 | |||
| a7b3973e14 | |||
| 839b763ac8 | |||
| 1779e0f2f1 | |||
| d918eefd8e | |||
| be8d82cbc1 | |||
| ca34858d79 | |||
| 00489e0b65 | |||
| ab11d3afcf | |||
| 402e1351c8 | |||
| 3aeb4f763c | |||
| 255a72f0c6 | |||
| 7301b06df0 | |||
| f77b606463 | |||
| b18041558f | |||
| 65755ba208 | |||
| 3a0d2fb32a | |||
| f674fb4244 | |||
| 830e08314e | |||
| 5c79d887db | |||
| ee8109a578 | |||
| 9bc6a50799 | |||
| 950c3c93e1 | |||
| 169a89283a | |||
| e12fee69be | |||
| 2e205175e0 | |||
| 826b5834ad | |||
| c59237ba6a | |||
| 21aa4df148 | |||
| 49cb0fa388 | |||
| f66536fa65 | |||
| 80aa9866eb | |||
| 4195d45169 | |||
| 8b2dcdc255 | |||
| c6c6e163b6 | |||
| 6c84702908 | |||
| 5f7ea8218a | |||
| e95157acb8 | |||
| b4b1780e5c | |||
| 1f37bc474f | |||
| 3c73b9be9a | |||
| f14c2db34a | |||
| f996cdc518 | |||
| 511dfe18d1 | |||
| 1032bc1a8a | |||
| 5be123c258 | |||
| c34f19a9ad | |||
| 0550465b4e | |||
| 15e321df75 | |||
| d93fcf03bc | |||
| 4d9b7dc578 | |||
| d2890cdb0e | |||
| b3cd80e40d | |||
| 38d1b36c56 | |||
| 4acf430c11 | |||
| 11b6180c03 | |||
| 6459fa40de | |||
| ca4d0c6ce9 | |||
| 2e18a7cef8 | |||
| 1f29634174 | |||
| 07b49a8ea3 | |||
| 1669c21e69 | |||
| a9363a7c6a | |||
| 85baa243c2 | |||
| ecb5298ac9 | |||
| ea9e42843d | |||
| 9504aab38d | |||
| 7deef50f28 | |||
| e30d3aca0f | |||
| 09b31ff2a9 | |||
| 52203fb390 | |||
| c1038aeaf9 | |||
| bd73ab5ea2 | |||
| 47c13bf42f | |||
| 924e656e7c | |||
| a9bba6edb1 | |||
| 1995ed3b4c | |||
| 7072b991a4 | |||
| 156306f77a | |||
| 25004024ef | |||
| b75173e02a | |||
| 004e7244e5 | |||
| 05eff2d296 | |||
| 9368396927 | |||
| 6508c0af5c | |||
| 432746ab89 | |||
| 102207c4b2 | |||
| f7397c191e | |||
| 0b22548972 | |||
| dc90430ac9 | |||
| 5508140536 | |||
| 6014717d82 | |||
| 72061292be | |||
| eb804d950a | |||
| a11f7c7ed2 | |||
| 1aef145c74 | |||
| ded4f02ae2 | |||
| 12c31a6443 | |||
| 82ff663adc | |||
| 1c98437c50 | |||
| 693170f170 | |||
| 3cdef114eb | |||
| 98a97f2bd2 | |||
| b6d112514f | |||
| 6f045c7820 | |||
| e5338ce7e7 | |||
| 908fd78e3c | |||
| 00c6d3c0d2 | |||
| 42b6e81bbe | |||
| 4404a8da3b | |||
| fe69c7b3bd | |||
| 861b4ba82e | |||
| 5ddfbef79b | |||
| cb4f275043 | |||
| a04b534194 | |||
| 7966c798b0 | |||
| bcdba72e23 | |||
| ef2d572918 | |||
| 4fbc15d482 | |||
| 8dfc5a1691 | |||
| df5f893639 | |||
| a9c70b54ed | |||
| f22a7fcf21 | |||
| 74d0293047 | |||
| d6c1fe387d | |||
| 1dabb3688b | |||
| c8a3e09c98 | |||
| 57ed27b782 | |||
| 0325e39e77 | |||
| 90ae7f7660 | |||
| 99612fa060 | |||
| 823e50e122 | |||
| 5c56e790c5 | |||
| 8a3a2c3296 | |||
| 309e00caae | |||
| ad65da5344 | |||
| 4663f2c702 | |||
| 54f42f75bf | |||
| f282c9b067 | |||
| 93dcfe5361 | |||
| 5924efab66 | |||
| 5858f26273 | |||
| 91a1c2f265 | |||
| 02277ba080 | |||
| 1d643e1e27 | |||
| df11503237 | |||
| 82ac43a6b2 | |||
| adb3d38970 | |||
| 12c0cb0983 | |||
| a24e4bc933 | |||
| e849c6737b | |||
| 86b149de22 | |||
| e388ee79b6 | |||
| 211e83a64a | |||
| a3079990aa | |||
| db441a8151 | |||
| fd21e28d4f | |||
| e4e2b20fbc | |||
| 676cd4ef1c | |||
| a9ce7df11d | |||
| 046161444a | |||
| 7e2b63cf2f | |||
| dd19adbafb | |||
| ca9b76724d | |||
| c429081566 | |||
| d2f87fb26a | |||
| 5c6711ba46 | |||
| cddd8f43f2 | |||
| 098c3a4483 | |||
| 994569f12d | |||
| 87e02959d1 | |||
| a668492f9f | |||
| 1c2ce115a4 | |||
| 9805e3674f | |||
| 3d7dbec00f | |||
| 101d77182a | |||
| c8db211964 | |||
| 9fbed91f32 | |||
| 2e6c2c0bb2 | |||
| 5a07cefaac | |||
| e940b7bcd5 | |||
| 68565d5eb0 | |||
| 080ccb6066 | |||
| a6f776537f | |||
| 2ebc9f2670 | |||
| 2f03301125 | |||
| 4e440e59b9 | |||
| 73c0da3c7f | |||
| 30f85b0c8e | |||
| e9f2dd44fd | |||
| 28f0072084 | |||
| 743b6748df | |||
| 0b622f9f3e | |||
| 279d5329c2 | |||
| 992c3a3233 | |||
| 63bbb6b74a | |||
| b3ae1030f3 | |||
| 7b09deb45d | |||
| 326c52c3be | |||
| fa6aa344b5 | |||
| 49307e3671 | |||
| c5586a3aca | |||
| ad0b9de089 | |||
| c91e5e46e6 | |||
| 53f8ae9436 | |||
| 208646bb3d | |||
| a9a7a35e8c | |||
| 709a2c24a6 | |||
| 7c556a4375 | |||
| c1352dfc36 | |||
| f2eaeb48e5 | |||
| 0937077ffe | |||
| bfffad16e6 | |||
| aaebadeda5 | |||
| dcee405e69 | |||
| 14294a0870 | |||
| d7cd75bc26 | |||
| 144b383837 | |||
| 7523de6d8a | |||
| 38339d4d7b | |||
| ae62cdb34b | |||
| b8a14763eb | |||
| 87d2097e5e | |||
| 55d2d39237 | |||
| 607cd51eae | |||
| 368d942dfd | |||
| e2b695278c | |||
| 28041ef4a0 | |||
| 0bba8ad1ff | |||
| 94d77499e8 | |||
| a57bff7e9b | |||
| 303caf5da3 | |||
| ec46b6a380 | |||
| 44c1f2eecb | |||
| 503d693da9 | |||
| ce78bff838 | |||
| cbbb9e70dc | |||
| 53008fadc2 | |||
| 9658439aee | |||
| 01746a3d64 | |||
| 898b33c7ab | |||
| 6d687deb90 | |||
| c02b4eb858 | |||
| f7c0a96b63 | |||
| ea7fd8994c | |||
| 0d355ba4cc | |||
| 936d5af07a | |||
| 487698bfe7 | |||
| 5edbd7a654 | |||
| 053d48de33 | |||
| 848a1dd388 | |||
| 0860c70087 | |||
| 2ae6a40c56 | |||
| bcf75fbf56 | |||
| ae0b1cc2b9 | |||
| 0b8b9e9d27 | |||
| 359aa59ac7 | |||
| d4ed4128f7 | |||
| 5fab564f5e | |||
| 581d587499 | |||
| 01cdb4d9fd | |||
| 11e28964ce | |||
| 4c47b2d5d5 | |||
| 34f08c047e | |||
| 98358e964c | |||
| 27dd68f86b | |||
| ddf5af23b2 | |||
| 05787b17f9 | |||
| 90952ea6ab | |||
| 67a3f35d3b | |||
| d8ff1c2003 | |||
| a50b9f4146 | |||
| 059ba969af | |||
| a9cb316e55 | |||
| 86a740d239 | |||
| 503e8788b1 | |||
| be8a390029 | |||
| 7e5f59ae68 | |||
| cbf3449c58 | |||
| ed09519f93 | |||
| 14bfd2b18e | |||
| e774dde521 | |||
| 051482176a | |||
| 6e5c02f4bb | |||
| cb11bba9b2 | |||
| 93c9ff36dc | |||
| 7314a42514 | |||
| 94f1b73f32 | |||
| 9b85bd2bb0 | |||
| 54e0aa1093 | |||
| 176254bdcf | |||
| d8adc80512 | |||
| d20a5bb54f | |||
| 959b137017 | |||
| 0f0d5b02fe | |||
| 28466cd72a | |||
| 17036c15b1 | |||
| 8254aa7225 | |||
| 16c8c98e7e | |||
| 18b5f4bc87 | |||
| 64178d9cf1 | |||
| 036707ac6d | |||
| 5c3669d477 | |||
| 2d253e5fa4 | |||
| 905e876f15 | |||
| b94845a582 | |||
| 23a470748f | |||
| 6a615b94fd | |||
| 1823007db9 | |||
| 5f48e9d607 | |||
| ea95f0d717 | |||
| df61c8841d | |||
| 4d4df196e1 | |||
| 79f39be5fb | |||
| b3180e3517 | |||
| 3bba8674cd | |||
| d0902cecc2 | |||
| 568e16e1b8 | |||
| f3791ad3a2 | |||
| 9378feecd9 | |||
| 0b93c7bcb0 | |||
| 62b925b646 | |||
| 4bf1eadb56 | |||
| e33bdf286f | |||
| 45d2bd160e | |||
| ea4b14da53 | |||
| d691c8dc8a | |||
| 60ec9959a2 | |||
| 65122c4910 | |||
| 56e669cecb | |||
| 7bc6e333f1 | |||
| 21cdd1df02 | |||
| 9240be928f | |||
| de98b076f3 | |||
| 4f0dd589cd | |||
| 03ad957d4c | |||
| cf9d54ec91 | |||
| a72a6f515b | |||
| da52e491c0 | |||
| 5ab2d7b6a4 | |||
| 4173078f9e | |||
| ac3345c4fb | |||
| 5e7b2eac2d | |||
| 30d9c22feb | |||
| 06e0b6108d | |||
| 434fa47145 | |||
| 2787ee7094 | |||
| e328a6f197 | |||
| ce334f1208 | |||
| 15585399f4 | |||
| 3befbe289a | |||
| cf3b18b362 | |||
| c621e40ae9 | |||
| 9dff259050 | |||
| 184fd1b0aa | |||
| bb9c21dc4e | |||
| 29fb042eba | |||
| 82627ba5fa | |||
| c204ac3c06 | |||
| 6b0a2c5ef0 | |||
| 9722db72bb | |||
| 038e533085 | |||
| 010163beef | |||
| bc171619cd | |||
| e845064423 | |||
| 0459a4755e | |||
| cc685690f5 | |||
| bafc844394 |
@@ -2,10 +2,9 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ inputs, host, ... }:
|
||||
{ host, ... }:
|
||||
|
||||
{
|
||||
|
||||
imports =
|
||||
[
|
||||
./hosts/${host}
|
||||
@@ -13,63 +12,4 @@
|
||||
./system
|
||||
./modules
|
||||
];
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "euro";
|
||||
};
|
||||
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.overlays = [
|
||||
inputs.nix-cachyos-kernel.overlays.pinned
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.11"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
||||
111
flake.lock
generated
111
flake.lock
generated
@@ -234,6 +234,20 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_4": {
|
||||
"locked": {
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"revCount": 69,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
@@ -252,6 +266,24 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765835352,
|
||||
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -653,6 +685,26 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixcord": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_4",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767660167,
|
||||
"narHash": "sha256-g6buDZWOlKB1iWnFHIXiokRalDOXI7Ha0urMIOwCCow=",
|
||||
"owner": "kaylorben",
|
||||
"repo": "nixcord",
|
||||
"rev": "166863303743fc0f07026bbcd5d6be2d7850ddcf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "kaylorben",
|
||||
"repo": "nixcord",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1744536153,
|
||||
@@ -684,6 +736,37 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib_2": {
|
||||
"locked": {
|
||||
"lastModified": 1765674936,
|
||||
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1767767207,
|
||||
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5912c1772a44e31bf1c63c0390b90501e5026886",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1767047869,
|
||||
@@ -749,6 +832,22 @@
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1766885793,
|
||||
"narHash": "sha256-P6RVkrM9JLCW6xBjSwHfgTOQ1JwBUma5xe5LI8xAPC0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9ef261221d1e72399f2036786498d78c38185c46",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1767081933,
|
||||
"narHash": "sha256-aFw7KQeFeAZ8Nz0uzHtpR3nykKxcDs7UxS5+Vknq0O4=",
|
||||
@@ -764,7 +863,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_7": {
|
||||
"nixpkgs_8": {
|
||||
"locked": {
|
||||
"lastModified": 1767047869,
|
||||
"narHash": "sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo=",
|
||||
@@ -780,7 +879,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_8": {
|
||||
"nixpkgs_9": {
|
||||
"locked": {
|
||||
"lastModified": 1766651565,
|
||||
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
|
||||
@@ -798,7 +897,7 @@
|
||||
},
|
||||
"openlinkhub": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_7"
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
},
|
||||
"locked": {
|
||||
"path": "./services/openlinkhub",
|
||||
@@ -866,7 +965,9 @@
|
||||
"hyprland": "hyprland",
|
||||
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"nixcord": "nixcord",
|
||||
"nixpkgs": "nixpkgs_7",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"openlinkhub": "openlinkhub",
|
||||
"spicetify-nix": "spicetify-nix",
|
||||
"zen-browser": "zen-browser"
|
||||
@@ -892,7 +993,7 @@
|
||||
},
|
||||
"spicetify-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_8",
|
||||
"nixpkgs": "nixpkgs_9",
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
|
||||
13
flake.nix
13
flake.nix
@@ -3,6 +3,9 @@
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/release-25.11";
|
||||
nixpkgs-unstable = {
|
||||
url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -31,15 +34,17 @@
|
||||
url = "github:ezKEa/aagl-gtk-on-nix/release-25.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nixcord = {
|
||||
url = "github:kaylorben/nixcord";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
hyprland,
|
||||
nix-flatpak,
|
||||
catppuccin,
|
||||
nixcord,
|
||||
...
|
||||
} @inputs:
|
||||
let
|
||||
@@ -50,7 +55,7 @@
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
{
|
||||
nixosConfigurations.lillypc = nixpkgs.lib.nixosSystem {
|
||||
nixosConfigurations.${host} = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit inputs host username prettyUsername;
|
||||
@@ -73,6 +78,7 @@
|
||||
imports = [
|
||||
./home
|
||||
catppuccin.homeModules.catppuccin
|
||||
nixcord.homeModules.nixcord
|
||||
];
|
||||
home = {
|
||||
username = "${username}";
|
||||
@@ -86,4 +92,3 @@
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
variant = "mocha";
|
||||
accent = "mauve";
|
||||
in
|
||||
{
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
accent = "${accent}";
|
||||
flavor = "${variant}";
|
||||
vscode.profiles.default.enable = false;
|
||||
cursors.enable = true;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Catppuccin-GTK-Dark";
|
||||
package = pkgs.magnetic-catppuccin-gtk;
|
||||
};
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "ct";
|
||||
style.name = "kvantum";
|
||||
};
|
||||
}
|
||||
@@ -16,5 +16,4 @@ let
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
}
|
||||
32
home/desktop/catppuccin.nix
Normal file
32
home/desktop/catppuccin.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ pkgs, nixosConfig, lib, ... }:
|
||||
let
|
||||
variant = "mocha";
|
||||
accent = "mauve";
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
accent = "${accent}";
|
||||
flavor = "${variant}";
|
||||
vscode.profiles.default.enable = false;
|
||||
cursors.enable = true;
|
||||
thunderbird.profile = "default";
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Catppuccin-GTK-Dark";
|
||||
package = pkgs.magnetic-catppuccin-gtk;
|
||||
};
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "ct";
|
||||
style.name = "kvantum";
|
||||
};
|
||||
};
|
||||
}
|
||||
13
home/desktop/general.nix
Normal file
13
home/desktop/general.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ nixosConfig, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.gnome-keyring.enable = true;
|
||||
services.easyeffects = {
|
||||
enable = true;
|
||||
};
|
||||
home.packages = [ pkgs.gcr ]; # Provides org.gnome.keyring.SystemPrompter
|
||||
};
|
||||
}
|
||||
@@ -3,8 +3,7 @@ let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
programs.kitty.enable = cfg.enable; # required for the default Hyprland config
|
||||
wayland.windowManager.hyprland = lib.mkIf cfg.hyprland.enable {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
enable = true;
|
||||
# set the flake package
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
@@ -1,5 +1,9 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
animations = {
|
||||
enabled = true;
|
||||
19
home/desktop/hyprland/default.nix
Normal file
19
home/desktop/hyprland/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
b = builtins;
|
||||
|
||||
module_files =
|
||||
b.readDir ./. |>
|
||||
lib.filterAttrs (name: type:
|
||||
( (lib.strings.hasSuffix ".nix" name
|
||||
&& name != "default.nix"
|
||||
&& type == "regular" )
|
||||
|| ( type == "directory"
|
||||
&& b.pathExists ./${name}/default.nix))
|
||||
) |>
|
||||
b.attrNames |>
|
||||
b.map (f: ./${f});
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
}
|
||||
@@ -1,10 +1,14 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
exec-once = [
|
||||
"sleep 2; uwsm-app -- vesktop-portable"
|
||||
"sleep 2; uwsm-app -- equibop"
|
||||
# todo openrgb
|
||||
"sleep 5; uwsm-app -- spotify"
|
||||
"sleep 10; uwsm-app -- spotify"
|
||||
# "uwsm-app -- dms run"
|
||||
"sleep 5; uwsm-app -- Artemis.UI.Linux --minimized"
|
||||
"sleep 10; bash /home/lilly/Scripts/rgb-on.sh"
|
||||
@@ -1,8 +1,10 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland =
|
||||
{
|
||||
settings =
|
||||
{
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
general = {
|
||||
no_focus_fallback = true;
|
||||
allow_tearing = true;
|
||||
@@ -14,7 +16,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true;
|
||||
smart_split = false;
|
||||
@@ -22,16 +23,19 @@
|
||||
# precise_mouse_move = true;
|
||||
};
|
||||
|
||||
render = {
|
||||
cm_enabled = true;
|
||||
cm_fs_passthrough = 2;
|
||||
direct_scanout = 2;
|
||||
cm_auto_hdr = 1;
|
||||
};
|
||||
source = [
|
||||
"hdr.conf"
|
||||
];
|
||||
# render = {
|
||||
# cm_enabled = true;
|
||||
# cm_fs_passthrough = 2;
|
||||
# direct_scanout = 2;
|
||||
# cm_auto_hdr = 1;
|
||||
# };
|
||||
|
||||
quirks = {
|
||||
prefer_hdr = 2;
|
||||
};
|
||||
# quirks = {
|
||||
# prefer_hdr = 1;
|
||||
# };
|
||||
|
||||
debug = {
|
||||
disable_logs = false;
|
||||
@@ -1,5 +1,9 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
services.hypridle = {
|
||||
services.hypridle = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
enable = true;
|
||||
systemdTarget = "hyprland-session.target";
|
||||
settings = {
|
||||
@@ -1,5 +1,9 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
@@ -1,5 +1,9 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
misc = {
|
||||
disable_hyprland_logo = true;
|
||||
@@ -1,5 +1,9 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
monitor = [
|
||||
",preferred,auto,1"
|
||||
@@ -1,8 +1,12 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
"$games" = "^(steam_app_.*|gamescope|starrail.exe|.*\.exe)$";
|
||||
"$launch_on_second_monitor" = "^(vesktop|spotify)$";
|
||||
"$launch_on_second_monitor" = "^(vesktop|spotify|equibop)$";
|
||||
"$utility_workspace" = 10;
|
||||
|
||||
windowrule = [
|
||||
@@ -1,5 +1,9 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
"$altscreenworkspace" = "11";
|
||||
"$mainmonitor" = "GIGA-BYTE TECHNOLOGY CO. LTD. AORUS FO32U2 24210B000546";
|
||||
@@ -1,5 +1,9 @@
|
||||
{ lib, nixosConfig, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||
settings = {
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
@@ -1,12 +1,6 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.kitty = {
|
||||
{ nixosConfig, lib, ... }: {
|
||||
programs.kitty = lib.mkIf nixosConfig.my.desktop.enable {
|
||||
enable = true;
|
||||
|
||||
# Upstream test failures resolved; use default kitty package (>= 0.44).
|
||||
package = pkgs.kitty;
|
||||
settings = {
|
||||
font_family = "Maple Mono NF";
|
||||
font_size = 11;
|
||||
@@ -1,31 +1,27 @@
|
||||
{ pkgs, username, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
(pkgs.writeShellScriptBin "vesktop-portable" ''
|
||||
exec /home/${username}/vesktop/vesktop --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true --enable-blink-features=MiddleClickAutoscroll "$@"
|
||||
'')
|
||||
];
|
||||
xdg.desktopEntries.vesktop = {
|
||||
name = "Vesktop";
|
||||
genericName = "Discord Client";
|
||||
exec = "vesktop-portable %U";
|
||||
icon = "vesktop";
|
||||
terminal = false;
|
||||
categories = [ "Network" "InstantMessaging" "Chat" ];
|
||||
};
|
||||
|
||||
programs.vesktop = {
|
||||
{ nixosConfig, lib, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop.nixcord;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.nixcord = {
|
||||
enable = true; # Enable Nixcord (It also installs Discord)
|
||||
discord = {
|
||||
vencord.enable = false; # Use Vencord (default)
|
||||
equicord.enable = true; # Or use Equicord instead (cannot enable both)
|
||||
};
|
||||
vesktop.enable = false; # Vesktop
|
||||
equibop = {
|
||||
enable = true;
|
||||
package = pkgs.vesktop.override {
|
||||
withMiddleClickScroll = true;
|
||||
}; # Equibop
|
||||
dorion.enable = false; # Dorion
|
||||
quickCss = "@import url(\"https://catppuccin.github.io/discord/dist/catppuccin-mocha-mauve.theme.css\");"; # quickCSS file
|
||||
config = {
|
||||
useQuickCss = true; # use out quickCSS
|
||||
frameless = true; # Set some Vencord/Equicord options
|
||||
};
|
||||
settings = {
|
||||
arRPC = true;
|
||||
tray = true;
|
||||
minimizeToTray = true;
|
||||
};
|
||||
vencord = {
|
||||
settings = {
|
||||
equibopConfig = {
|
||||
plugins = {
|
||||
AlwaysTrust.enabled = true;
|
||||
BetterSessions.enabled = true;
|
||||
@@ -67,7 +63,7 @@
|
||||
NoUnblockToJump.enabled = true;
|
||||
OnePingPerDm.enabled = true;
|
||||
OpenInApp.enabled = true;
|
||||
petpet.enabled = true;
|
||||
PetPet.enabled = true;
|
||||
ReadAllNotificationsButton.enabled = true;
|
||||
RelationshipNotifier.enabled = true;
|
||||
ReverseImageSearch.enabled = true;
|
||||
@@ -75,7 +71,10 @@
|
||||
ServerListIndicators.enabled = false;
|
||||
ShowHiddenChannels.enabled = true;
|
||||
ShowHiddenThings.enabled = true;
|
||||
SpotifyControls.enabled = true;
|
||||
MusicControls = {
|
||||
enabled = true;
|
||||
showSpotifyControls = true;
|
||||
};
|
||||
ThemeAttributes.enabled = true;
|
||||
TypingIndicator.enabled = true;
|
||||
TypingTweaks.enabled = true;
|
||||
@@ -97,7 +96,15 @@
|
||||
Settings.enabled = true;
|
||||
SupportHelper.enabled = true;
|
||||
WebContextMenus.enabled = true;
|
||||
"WebRichPresence (arRPC)".enabled = true;
|
||||
KeyboardSounds = {
|
||||
enabled = false;
|
||||
soundPack = "operagxnoch ";
|
||||
};
|
||||
HomeTyping.enabled = true;
|
||||
};
|
||||
};
|
||||
extraConfig = {
|
||||
};
|
||||
};
|
||||
};
|
||||
37
home/desktop/spicetify.nix
Normal file
37
home/desktop/spicetify.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{ inputs, pkgs, nixosConfig, lib, ... }:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop.spicetify;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.spicetify-nix.homeManagerModules.default
|
||||
];
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.spicetify =
|
||||
let
|
||||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
hidePodcasts
|
||||
shuffle # shuffle+ (special characters are sanitized out of extension names)
|
||||
betterGenres
|
||||
lastfm
|
||||
adblock
|
||||
beautifulLyrics
|
||||
aiBandBlocker
|
||||
];
|
||||
enabledCustomApps = with spicePkgs.apps; [
|
||||
betterLibrary
|
||||
newReleases
|
||||
];
|
||||
enabledSnippets = with spicePkgs.snippets; [
|
||||
pointer
|
||||
];
|
||||
theme = spicePkgs.themes.catppuccin;
|
||||
colorScheme = "mocha";
|
||||
};
|
||||
};
|
||||
}
|
||||
11
home/desktop/thunderbird.nix
Normal file
11
home/desktop/thunderbird.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ nixosConfig, lib, ... }:
|
||||
{
|
||||
programs.thunderbird = lib.mkIf nixosConfig.my.desktop.enable {
|
||||
enable = true;
|
||||
profiles = {
|
||||
default = {
|
||||
isDefault = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, nixosConfig, lib, ... }:
|
||||
{
|
||||
programs.vscode = {
|
||||
programs.vscode = lib.mkIf nixosConfig.my.desktop.enable {
|
||||
enable = true;
|
||||
profiles.default.extensions = with pkgs.vscode-extensions; [
|
||||
jnoortheen.nix-ide
|
||||
100
home/desktop/zen-browser.nix
Normal file
100
home/desktop/zen-browser.nix
Normal file
@@ -0,0 +1,100 @@
|
||||
{ inputs, pkgs, nixosConfig, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.zen-browser.homeModules.beta
|
||||
];
|
||||
config = lib.mkIf nixosConfig.my.desktop.enable {
|
||||
home.file."catppuccin-zen" = {
|
||||
target = ".zen/default/chrome/catppuccin-zen";
|
||||
source = (
|
||||
fetchTarball {
|
||||
url = "https://github.com/catppuccin/zen-browser/tarball/c855685442c6040c4dda9c8d3ddc7b708de1cbaa";
|
||||
sha256 = "sha256:03ky8s5h9vkw4cp3nm86b0bk5qbjmqgyqq9a95xqzard4wppn3p4";
|
||||
});
|
||||
};
|
||||
programs.zen-browser = {
|
||||
enable = true;
|
||||
nativeMessagingHosts = [pkgs.firefoxpwa];
|
||||
policies = {
|
||||
AutofillAddressEnabled = false;
|
||||
AutofillCreditCardEnabled = false;
|
||||
DisableAppUpdate = true;
|
||||
DisableFeedbackCommands = true;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
DisableTelemetry = true;
|
||||
DontCheckDefaultBrowser = true;
|
||||
NoDefaultBookmarks = true;
|
||||
OfferToSaveLogins = false;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
};
|
||||
profiles.default.settings = {
|
||||
"zen.view.use-single-toolbar" = false;
|
||||
"zen.urlbar.replace-newtab" = false;
|
||||
"identity.fxaccounts.autoconfig.uri" = "https://www.fxa.hibana.me";
|
||||
"general.autoScroll" = true;
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
};
|
||||
profiles.default.extensions.packages =
|
||||
with inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}; [
|
||||
ublock-origin
|
||||
dearrow
|
||||
bitwarden
|
||||
istilldontcareaboutcookies
|
||||
return-youtube-dislikes
|
||||
sponsorblock
|
||||
youtube-nonstop
|
||||
youtube-high-definition
|
||||
absolute-enable-right-click
|
||||
augmented-steam
|
||||
clearurls
|
||||
darkreader
|
||||
karakeep
|
||||
newtab-adapter
|
||||
steam-database
|
||||
unpaywall
|
||||
violentmonkey
|
||||
];
|
||||
profiles.default.userChrome = ''
|
||||
@import "catppuccin-zen/themes/Mocha/Mauve/userChrome.css";
|
||||
'';
|
||||
profiles.default.userContent = ''
|
||||
@import "catppuccin-zen/themes/Mocha/Mauve/userContent.css";
|
||||
'';
|
||||
};
|
||||
xdg.mimeApps = let
|
||||
value = let
|
||||
zen-browser = inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.beta; # or twilight
|
||||
in
|
||||
zen-browser.meta.desktopFileName;
|
||||
|
||||
associations = builtins.listToAttrs (map (name: {
|
||||
inherit name value;
|
||||
}) [
|
||||
"application/x-extension-shtml"
|
||||
"application/x-extension-xhtml"
|
||||
"application/x-extension-html"
|
||||
"application/x-extension-xht"
|
||||
"application/x-extension-htm"
|
||||
"x-scheme-handler/unknown"
|
||||
"x-scheme-handler/mailto"
|
||||
"x-scheme-handler/chrome"
|
||||
"x-scheme-handler/about"
|
||||
"x-scheme-handler/https"
|
||||
"x-scheme-handler/http"
|
||||
"application/xhtml+xml"
|
||||
"application/json"
|
||||
"text/plain"
|
||||
"text/html"
|
||||
]);
|
||||
in {
|
||||
associations.added = associations;
|
||||
defaultApplications = associations;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,19 @@
|
||||
_: {
|
||||
imports = [
|
||||
./mangohud.nix
|
||||
];
|
||||
{ lib, ... }:
|
||||
let
|
||||
b = builtins;
|
||||
|
||||
module_files =
|
||||
b.readDir ./. |>
|
||||
lib.filterAttrs (name: type:
|
||||
( (lib.strings.hasSuffix ".nix" name
|
||||
&& name != "default.nix"
|
||||
&& type == "regular" )
|
||||
|| ( type == "directory"
|
||||
&& b.pathExists ./${name}/default.nix))
|
||||
) |>
|
||||
b.attrNames |>
|
||||
b.map (f: ./${f});
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{ nixosConfig, lib, ... }:
|
||||
{
|
||||
programs.mangohud = {
|
||||
programs.mangohud = lib.mkIf nixosConfig.my.desktop.gaming.enable {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
{ pkgs, ...}:
|
||||
{
|
||||
services.gnome-keyring.enable = true;
|
||||
services.easyeffects = {
|
||||
enable = true;
|
||||
};
|
||||
home.packages = [ pkgs.gcr ]; # Provides org.gnome.keyring.SystemPrompter
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.spicetify-nix.homeManagerModules.default
|
||||
];
|
||||
programs.spicetify =
|
||||
let
|
||||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
hidePodcasts
|
||||
shuffle # shuffle+ (special characters are sanitized out of extension names)
|
||||
betterGenres
|
||||
lastfm
|
||||
adblock
|
||||
beautifulLyrics
|
||||
aiBandBlocker
|
||||
];
|
||||
enabledCustomApps = with spicePkgs.apps; [
|
||||
lyricsPlus
|
||||
betterLibrary
|
||||
newReleases
|
||||
];
|
||||
enabledSnippets = with spicePkgs.snippets; [
|
||||
pointer
|
||||
];
|
||||
theme = spicePkgs.themes.catppuccin;
|
||||
colorScheme = "mocha";
|
||||
};
|
||||
}
|
||||
@@ -16,5 +16,4 @@ let
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
}
|
||||
@@ -1,12 +1,9 @@
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.fish = {
|
||||
{ pkgs, host, nixosConfig, lib, ... }: {
|
||||
programs.fish = lib.mkIf nixosConfig.my.desktop.enable {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
fr = "sudo nixos-rebuild switch --flake ~/LillyOS/#${host}";
|
||||
fr = "sudo nixos-rebuild switch --flake ~/LillyOS/#${host} --fallback";
|
||||
br = "sudo nixos-rebuild boot --flake ~/LillyOS/#${host} --fallback";
|
||||
};
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting # Disable greeting
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ email, prettyUsername, ... }:
|
||||
{ email, prettyUsername, username, ... }:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
@@ -17,6 +17,9 @@
|
||||
log.date = "iso"; # ISO 8601 date format
|
||||
# Conflict resolution style for readable diffs
|
||||
merge.conflictStyle = "diff3";
|
||||
safe = {
|
||||
directory = [ "/home/${username}/LillyOS" "/home/${username}/.config" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
_: {
|
||||
{
|
||||
programs = {
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
options = [
|
||||
"--cmd cd"
|
||||
];
|
||||
|
||||
@@ -16,5 +16,4 @@ let
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
{ nixosConfig, lib, ... }:
|
||||
{
|
||||
config = lib.mkIf nixosConfig.my.desktop.enable {
|
||||
xdg.configFile."electron-flags.conf".text = ''
|
||||
--enable-features=WaylandWindowDecorations
|
||||
--ozone-platform-hint=wayland
|
||||
--enable-blink-features=MiddleClickAutoscroll
|
||||
--ozone-platform=wayland
|
||||
'';
|
||||
'';
|
||||
xdg.configFile."code-flags.conf".text = ''
|
||||
--ozone-platform-hint=wayland
|
||||
--ozone-platform=wayland
|
||||
@@ -13,5 +15,6 @@
|
||||
--enable-features=TouchpadOverscrollHistoryNavigation
|
||||
--enable-wayland-ime
|
||||
--password-store=gnome-libsecret
|
||||
'';
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
{ nixosConfig, lib, ... }:
|
||||
let
|
||||
gwenview_desktop_file = "org.kde.gwenview.desktop";
|
||||
in
|
||||
@@ -7,7 +8,8 @@ in
|
||||
};
|
||||
in
|
||||
{
|
||||
xdg.mimeApps = {
|
||||
xdg.mimeApps = lib.mkIf nixosConfig.my.desktop.enable {
|
||||
enable = true;
|
||||
associations.added = associations;
|
||||
defaultApplications = associations;
|
||||
};
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{ nixosConfig, lib, ... }:
|
||||
{
|
||||
xdg.configFile."uwsm/env".text = ''
|
||||
xdg.configFile."uwsm/env".text = lib.mkIf nixosConfig.my.desktop.enable ''
|
||||
export GDK_BACKEND=wayland,x11,*
|
||||
export GDK_SCALE=2 # GDK Scaling Factor (no fractional scaling)
|
||||
|
||||
@@ -22,7 +23,6 @@ export QS_ICON_THEME=Papirus-Dark
|
||||
|
||||
export LIBVA_DRIVER_NAME=nvidia
|
||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||
export XDG_SESSION_DESKTOP=Hyprland
|
||||
export GBM_BACKEND=nvidia-drm
|
||||
export TERMINAL=kitty
|
||||
|
||||
@@ -33,8 +33,10 @@ export EDITOR=code
|
||||
export STLEDITOR=code
|
||||
|
||||
export XCURSOR_SIZE=16
|
||||
|
||||
${lib.optionalString nixosConfig.my.desktop.hyprland.enable "export XDG_SESSION_DESKTOP=Hyprland"}
|
||||
'';
|
||||
xdg.configFile."uwsm/env-hyprland".text = ''
|
||||
xdg.configFile."uwsm/env-hyprland".text = lib.mkIf nixosConfig.my.desktop.hyprland.enable ''
|
||||
export AQ_DRM_DEVICES=/dev/dri/nvidia-dgpu
|
||||
'';
|
||||
}
|
||||
|
||||
24
home/xdg-config/xdg.nix
Normal file
24
home/xdg-config/xdg.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ pkgs, inputs, nixosConfig, lib, ...}:
|
||||
let
|
||||
cfg = nixosConfig.my.desktop;
|
||||
in
|
||||
{
|
||||
xdg = {
|
||||
enable = true;
|
||||
mime.enable = cfg.enable;
|
||||
mimeApps.enable = cfg.enable;
|
||||
portal = lib.mkIf cfg.enable {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
]
|
||||
++ lib.optionalAttrs cfg.hyprland.enable [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||
];
|
||||
configPackages = []
|
||||
++ lib.optionalAttrs cfg.hyprland.enable [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
17
home/xdg.nix
17
home/xdg.nix
@@ -1,17 +0,0 @@
|
||||
{ pkgs, inputs, ...}:
|
||||
|
||||
{
|
||||
xdg = {
|
||||
enable = true;
|
||||
mime.enable = true;
|
||||
mimeApps.enable = true;
|
||||
portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
configPackages = [inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.zen-browser.homeModules.beta
|
||||
];
|
||||
home.file."catppuccin-zen" = {
|
||||
target = ".zen/default/chrome/catppuccin-zen";
|
||||
source = (
|
||||
fetchTarball {
|
||||
url = "https://github.com/catppuccin/zen-browser/tarball/c855685442c6040c4dda9c8d3ddc7b708de1cbaa";
|
||||
sha256 = "sha256:03ky8s5h9vkw4cp3nm86b0bk5qbjmqgyqq9a95xqzard4wppn3p4";
|
||||
});
|
||||
};
|
||||
programs.zen-browser = {
|
||||
enable = true;
|
||||
nativeMessagingHosts = [pkgs.firefoxpwa];
|
||||
policies = {
|
||||
AutofillAddressEnabled = false;
|
||||
AutofillCreditCardEnabled = false;
|
||||
DisableAppUpdate = true;
|
||||
DisableFeedbackCommands = true;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
DisableTelemetry = true;
|
||||
DontCheckDefaultBrowser = true;
|
||||
NoDefaultBookmarks = true;
|
||||
OfferToSaveLogins = false;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
};
|
||||
profiles.default.settings = {
|
||||
"zen.view.use-single-toolbar" = false;
|
||||
"zen.urlbar.replace-newtab" = false;
|
||||
"identity.fxaccounts.autoconfig.uri" = "https://www.fxa.hibana.me";
|
||||
"general.autoScroll" = true;
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
};
|
||||
profiles.default.extensions.packages =
|
||||
with inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}; [
|
||||
ublock-origin
|
||||
dearrow
|
||||
bitwarden
|
||||
istilldontcareaboutcookies
|
||||
return-youtube-dislikes
|
||||
sponsorblock
|
||||
youtube-nonstop
|
||||
youtube-high-definition
|
||||
absolute-enable-right-click
|
||||
augmented-steam
|
||||
clearurls
|
||||
darkreader
|
||||
karakeep
|
||||
newtab-adapter
|
||||
steam-database
|
||||
unpaywall
|
||||
violentmonkey
|
||||
];
|
||||
profiles.default.userChrome = ''
|
||||
@import "catppuccin-zen/themes/Mocha/Mauve/userChrome.css";
|
||||
'';
|
||||
profiles.default.userContent = ''
|
||||
@import "catppuccin-zen/themes/Mocha/Mauve/userContent.css";
|
||||
'';
|
||||
};
|
||||
xdg.mimeApps = let
|
||||
value = let
|
||||
zen-browser = inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.beta; # or twilight
|
||||
in
|
||||
zen-browser.meta.desktopFileName;
|
||||
|
||||
associations = builtins.listToAttrs (map (name: {
|
||||
inherit name value;
|
||||
}) [
|
||||
"application/x-extension-shtml"
|
||||
"application/x-extension-xhtml"
|
||||
"application/x-extension-html"
|
||||
"application/x-extension-xht"
|
||||
"application/x-extension-htm"
|
||||
"x-scheme-handler/unknown"
|
||||
"x-scheme-handler/mailto"
|
||||
"x-scheme-handler/chrome"
|
||||
"x-scheme-handler/about"
|
||||
"x-scheme-handler/https"
|
||||
"x-scheme-handler/http"
|
||||
"application/xhtml+xml"
|
||||
"application/json"
|
||||
"text/plain"
|
||||
"text/html"
|
||||
]);
|
||||
in {
|
||||
associations.added = associations;
|
||||
defaultApplications = associations;
|
||||
};
|
||||
}
|
||||
@@ -1,24 +1,19 @@
|
||||
{
|
||||
my = {
|
||||
|
||||
gaming.enable = true;
|
||||
|
||||
cachyosKernel.enable = true;
|
||||
|
||||
desktop = {
|
||||
enable = true;
|
||||
sddm = {
|
||||
enable = true;
|
||||
autoLogin.enable = true;
|
||||
};
|
||||
hyprland.enable = true;
|
||||
flatpak.enable = true;
|
||||
spicetify.enable = true;
|
||||
nixcord.enable = true;
|
||||
gaming.enable = true;
|
||||
};
|
||||
|
||||
nvidia.enable = true;
|
||||
openlinkhub.enable = true;
|
||||
rgb.enable = true;
|
||||
};
|
||||
openlinkhub.enable = true;
|
||||
virtualisation.docker.enable = true;
|
||||
}
|
||||
|
||||
@@ -20,20 +20,21 @@
|
||||
"EXCLUDE_PATTERN" = "";
|
||||
"GIT_BRANCH" = "main";
|
||||
"GIT_REMOTE" = "origin";
|
||||
"GIT_WATCH_DIR" = "/app/LillyOS";
|
||||
"GIT_WATCH_DIR" = "/home/lilly/LillyOS";
|
||||
"PULL_BEFORE_PUSH" = "true";
|
||||
"SKIP_IF_MERGING" = "false";
|
||||
"SLEEP_TIME" = "10";
|
||||
"SLEEP_TIME" = "2";
|
||||
"VERBOSE" = "false";
|
||||
};
|
||||
volumes = [
|
||||
"${/home/lilly/.config/git/config}:/root/.gitconfig:ro"
|
||||
"/home/lilly/.config/git/config:/root/.gitconfig:ro"
|
||||
"/home/lilly/.ssh/known_hosts:/root/.ssh/known_hosts"
|
||||
"/home/lilly/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro"
|
||||
"/home/lilly/LillyOS:/app/LillyOS:rw"
|
||||
"/home/lilly/LillyOS:/home/lilly/LillyOS:rw"
|
||||
];
|
||||
log-driver = "journald";
|
||||
extraOptions = [
|
||||
"--network-alias=gitwatch"
|
||||
"--network-alias=gitwatch-LillyOS"
|
||||
"--network=gitwatch_default"
|
||||
];
|
||||
};
|
||||
@@ -58,6 +59,54 @@
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.containers."gitwatch-lilly-config" = {
|
||||
image = "ghcr.io/gitwatch/gitwatch:latest";
|
||||
environment = {
|
||||
"COMMIT_MSG" = "Auto-commit: %d";
|
||||
"COMMIT_ON_START" = "false";
|
||||
"DATE_FMT" = "+%Y-%m-%d %H:%M:%S";
|
||||
"EXCLUDE_PATTERN" = "vesktop/sessionData/*, Code/User/History/*";
|
||||
"GIT_BRANCH" = "main";
|
||||
"GIT_REMOTE" = "origin";
|
||||
"GIT_WATCH_DIR" = "/home/lilly/.config";
|
||||
"PULL_BEFORE_PUSH" = "true";
|
||||
"SKIP_IF_MERGING" = "false";
|
||||
"SLEEP_TIME" = "60";
|
||||
"VERBOSE" = "false";
|
||||
};
|
||||
volumes = [
|
||||
"/home/lilly/.config/git/config:/root/.gitconfig:ro"
|
||||
"/home/lilly/.ssh/known_hosts:/root/.ssh/known_hosts"
|
||||
"/home/lilly/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro"
|
||||
"/home/lilly/.config:/home/lilly/.config:rw"
|
||||
];
|
||||
log-driver = "journald";
|
||||
extraOptions = [
|
||||
"--network-alias=gitwatch-lilly-config"
|
||||
"--network=gitwatch_default"
|
||||
];
|
||||
};
|
||||
systemd.services."docker-gitwatch-lilly-config" = {
|
||||
serviceConfig = {
|
||||
Restart = lib.mkOverride 90 "always";
|
||||
RestartMaxDelaySec = lib.mkOverride 90 "1m";
|
||||
RestartSec = lib.mkOverride 90 "100ms";
|
||||
RestartSteps = lib.mkOverride 90 9;
|
||||
};
|
||||
after = [
|
||||
"docker-network-gitwatch_default.service"
|
||||
];
|
||||
requires = [
|
||||
"docker-network-gitwatch_default.service"
|
||||
];
|
||||
partOf = [
|
||||
"docker-compose-gitwatch-root.target"
|
||||
];
|
||||
wantedBy = [
|
||||
"docker-compose-gitwatch-root.target"
|
||||
];
|
||||
};
|
||||
|
||||
# Networks
|
||||
systemd.services."docker-network-gitwatch_default" = {
|
||||
path = [ pkgs.docker ];
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/8ef1b753-7a4a-4062-a906-6a01ce7b6111";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" "rw" "relatime" "compress=zstd:3" "ssd" "discard=async" "space_cache=v2" ];
|
||||
options = [ "subvol=@" "rw" "relatime" "compress=zstd:3" "ssd" "space_cache=v2" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/8ef1b753-7a4a-4062-a906-6a01ce7b6111";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@home" "rw" "relatime" "compress=zstd:3" "ssd" "discard=async" "space_cache=v2" ];
|
||||
options = [ "subvol=@home" "rw" "relatime" "compress=zstd:3" "ssd" "space_cache=v2" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
@@ -32,7 +32,7 @@
|
||||
fileSystems."/data" =
|
||||
{ device = "/dev/disk/by-uuid/5c58c3c4-2ce8-4ad9-8277-ff7503462f88";
|
||||
fsType = "btrfs";
|
||||
options = [ "rw" "relatime" "compress=zstd:3" "ssd" "discard=async" "space_cache=v2" ];
|
||||
options = [ "rw" "relatime" "compress=zstd:3" "ssd" "space_cache=v2" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{ lib, config, ... }:
|
||||
{
|
||||
systemd.tmpfiles.rules = [
|
||||
systemd.tmpfiles.rules = lib.mkIf config.my.rgb.enable [
|
||||
"L+ /var/lib/OpenRGB/sizes.ors - - - - ${./openrgb/sizes.ors}"
|
||||
];
|
||||
}
|
||||
29
hosts/lillyserver/config.nix
Normal file
29
hosts/lillyserver/config.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
my = {
|
||||
|
||||
cachyosKernel.enable = false;
|
||||
|
||||
desktop = {
|
||||
enable = true;
|
||||
hyprland.enable = false;
|
||||
kdePlasma.enable = true;
|
||||
flatpak.enable = true;
|
||||
spicetify.enable = false;
|
||||
nixcord.enable = false;
|
||||
gaming.enable = true;
|
||||
};
|
||||
|
||||
nvidia.enable = true;
|
||||
openlinkhub.enable = false;
|
||||
rgb.enable = false;
|
||||
cockpit.enable = true;
|
||||
virtualisation.enable = true;
|
||||
amd = {
|
||||
boost.disable = true;
|
||||
performancePreference = "power";
|
||||
};
|
||||
gpu = {
|
||||
powersave = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
19
hosts/lillyserver/default.nix
Normal file
19
hosts/lillyserver/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
b = builtins;
|
||||
|
||||
module_files =
|
||||
b.readDir ./. |>
|
||||
lib.filterAttrs (name: type:
|
||||
( (lib.strings.hasSuffix ".nix" name
|
||||
&& name != "default.nix"
|
||||
&& type == "regular" )
|
||||
|| ( type == "directory"
|
||||
&& b.pathExists ./${name}/default.nix))
|
||||
) |>
|
||||
b.attrNames |>
|
||||
b.map (f: ./${f});
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
}
|
||||
51
hosts/lillyserver/network.nix
Normal file
51
hosts/lillyserver/network.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
systemd.network = {
|
||||
|
||||
netdevs = {
|
||||
|
||||
iot = {
|
||||
netdevConfig = {
|
||||
Name = "iot";
|
||||
Kind = "vlan";
|
||||
};
|
||||
vlanConfig.Id = "2";
|
||||
};
|
||||
|
||||
macvtaphost = {
|
||||
netdevConfig = {
|
||||
Name = "macvtaphost";
|
||||
Kind = "macvtap";
|
||||
MACAddress = "18:C0:4D:04:DE:0B";
|
||||
};
|
||||
extraConfig = ''
|
||||
[MACVTAP]
|
||||
Mode=bridge
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
networks = {
|
||||
|
||||
physicalinterface = {
|
||||
matchConfig.PermanentMACAddress = "18:C0:4D:04:DE:0B";
|
||||
linkConfig.MACAddress = "18:C0:4D:04:DE:0C";
|
||||
macvtap = [ "macvtaphost" ];
|
||||
vlan = [ "iot" ];
|
||||
networkConfig.IPv6AcceptRA = false;
|
||||
};
|
||||
|
||||
macvtaphost = {
|
||||
name = "macvtaphost";
|
||||
address = [ "10.0.10.5/16" ];
|
||||
DHCP = "ipv6";
|
||||
DNS = [ "10.0.0.1" ];
|
||||
Gateway = [ "10.0.0.1" ];
|
||||
networkConfig = {
|
||||
IPv6AcceptRA = true;
|
||||
};
|
||||
dhcpV4Config.UseDNS = false;
|
||||
dhcpV6Config.UseDNS = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
59
hosts/lillyserver/samba-shares.nix
Normal file
59
hosts/lillyserver/samba-shares.nix
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
services.samba = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
smbd.enable = true;
|
||||
settings = ''
|
||||
[global]
|
||||
workgroup = LILLY
|
||||
server string = LillyServer Samba
|
||||
server role = standalone server
|
||||
log file = /var/log/samba/%m.log
|
||||
max log size = 50
|
||||
|
||||
[LillyNAS]
|
||||
path = /mnt/lilly-storage/LillyNAS
|
||||
guest ok = no
|
||||
comment =
|
||||
read only = no
|
||||
shadow:snapdir = .zfs/snapshot
|
||||
shadow:sort = desc
|
||||
shadow:format = %Y-%m-%d-%H%M%S
|
||||
valid users = "@lilly" "lilly"
|
||||
vfs objects = shadow_copy2
|
||||
browseable = no
|
||||
|
||||
[LillyPhoneSync]
|
||||
path = /mnt/lilly-storage/LillyPhoneSync
|
||||
guest ok = no
|
||||
comment = Phone Data Sync
|
||||
valid users = "lilly"
|
||||
read only = no
|
||||
browseable = no
|
||||
|
||||
[PaperlessConsume]
|
||||
path = /mnt/lilly-storage/PaperlessConsume
|
||||
guest ok = no
|
||||
comment =
|
||||
read only = no
|
||||
browseable = no
|
||||
valid users = "lilly" "paperless-consume"
|
||||
|
||||
[3D-Printing]
|
||||
path = /mnt/lilly-storage/3D-Printing
|
||||
guest ok = no
|
||||
comment =
|
||||
valid users = "lilly"
|
||||
read only = no
|
||||
browseable = no
|
||||
|
||||
[Media]
|
||||
path = /mnt/lilly-storage/Media
|
||||
guest ok = no
|
||||
comment =
|
||||
valid users = "lilly"
|
||||
read only = no
|
||||
browseable = no
|
||||
'';
|
||||
};
|
||||
}
|
||||
83
hosts/lillyserver/systemd.nix
Normal file
83
hosts/lillyserver/systemd.nix
Normal file
@@ -0,0 +1,83 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
crowdsec-service = "crowdsec-prefix";
|
||||
tailscale-cloudflare-dns-sync-service = "tailscale-cloudflare-dns-sync";
|
||||
certbot-generic-cert-service = "certbot-renew";
|
||||
in
|
||||
{
|
||||
systemd.services = {
|
||||
|
||||
${crowdsec-service} = {
|
||||
enable = true;
|
||||
description = "Get IPv6 Prefix to add to Crowdsec Whitelist";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "/mnt/lilly-ssd/appdata/crowdsec/crowdsec-prefix-change-script/checkprefix.sh";
|
||||
WorkingDirectory = "/mnt/lilly-ssd/appdata/crowdsec/crowdsec-prefix-change-script";
|
||||
};
|
||||
};
|
||||
|
||||
${tailscale-cloudflare-dns-sync-service} = {
|
||||
enable = true;
|
||||
description = "Start the tailscale-cloudflare-dns-sync Docker container";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.docker}/bin/docker start tailscale-cloudflare-dns-sync";
|
||||
};
|
||||
};
|
||||
|
||||
${certbot-generic-cert-service} = {
|
||||
enable = true;
|
||||
description = "Renew Let's Encrypt certificates using Certbot in Docker";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = ''${pkgs.docker}/bin/docker \
|
||||
run --rm --name certbot-renew \
|
||||
-v /mnt/lilly-ssd/secrets/certificates/etc:/etc/letsencrypt \
|
||||
-v /mnt/lilly-ssd/secrets/certificates/var:/var/lib/letsencrypt \
|
||||
-v /mnt/lilly-ssd/secrets/certificates/cf-credentials:/cf-credentials:ro \
|
||||
-v /mnt/lilly-ssd/secrets/certificates/id_ed25519_certshare:/openwrt_private_key:ro \
|
||||
certbot/dns-cloudflare renew \
|
||||
--dns-cloudflare \
|
||||
--dns-cloudflare-credentials /cf-credentials
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.timers = {
|
||||
|
||||
${crowdsec-service} = {
|
||||
enable = true;
|
||||
description = "Run Crowdsec-Prefix check regularly.";
|
||||
timerConfig = {
|
||||
OnCalendar = "*:0/5";
|
||||
Persistent = true;
|
||||
};
|
||||
wantedBy = [ "timers.target" ];
|
||||
};
|
||||
|
||||
${tailscale-cloudflare-dns-sync-service} = {
|
||||
enable = true;
|
||||
description = "Run tailscale-cloudflare-dns-sync every 10 minutes";
|
||||
timerConfig = {
|
||||
OnBootSec = "10min";
|
||||
OnUnitActiveSec = "10min";
|
||||
Persistent = true;
|
||||
};
|
||||
wantedBy = [ "timers.target" ];
|
||||
};
|
||||
|
||||
${certbot-generic-cert-service} = {
|
||||
enable = true;
|
||||
description = "Weekly renewal of Let's Encrypt certificates";
|
||||
timerConfig = {
|
||||
OnCalendar = "weekly";
|
||||
Persistent = true;
|
||||
};
|
||||
wantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -32,5 +32,8 @@
|
||||
p7zip
|
||||
curl
|
||||
jq
|
||||
lsb-release
|
||||
file
|
||||
pkg-config
|
||||
];
|
||||
}
|
||||
|
||||
4
modules/cli/ssh.nix
Normal file
4
modules/cli/ssh.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
}
|
||||
8
modules/core/amd-cpu-tweaks.nix
Normal file
8
modules/core/amd-cpu-tweaks.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
systemd.tmpfiles.rules = [
|
||||
"w /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference - - - - ${config.my.amd.performancePreference}"
|
||||
]
|
||||
++ lib.optionals config.my.amd.boost.disable
|
||||
[ "w /sys/devices/system/cpu/cpufreq/boost - - - - 0" ];
|
||||
}
|
||||
19
modules/core/default.nix
Normal file
19
modules/core/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
b = builtins;
|
||||
|
||||
module_files =
|
||||
b.readDir ./. |>
|
||||
lib.filterAttrs (name: type:
|
||||
( (lib.strings.hasSuffix ".nix" name
|
||||
&& name != "default.nix"
|
||||
&& type == "regular" )
|
||||
|| ( type == "directory"
|
||||
&& b.pathExists ./${name}/default.nix))
|
||||
) |>
|
||||
b.attrNames |>
|
||||
b.map (f: ./${f});
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
}
|
||||
6
modules/core/gpu-powersave.nix
Normal file
6
modules/core/gpu-powersave.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
systemd.tmpfiles.rules = lib.mkIf config.my.gpu.powersave [
|
||||
"w /sys/module/pcie_aspm/parameters/policy - - - - powersave"
|
||||
];
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{pkgs, ...}: {
|
||||
{pkgs, config, lib, ...}: {
|
||||
hardware = {
|
||||
sane = {
|
||||
enable = true;
|
||||
@@ -7,11 +7,11 @@
|
||||
};
|
||||
logitech.wireless.enable = true;
|
||||
logitech.wireless.enableGraphical = true;
|
||||
graphics = {
|
||||
graphics = lib.mkIf config.my.desktop.enable {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
amdgpu.opencl.enable = true;
|
||||
amdgpu.opencl.enable = config.my.desktop.enable;
|
||||
enableRedistributableFirmware = true;
|
||||
keyboard.qmk.enable = true;
|
||||
bluetooth.enable = true;
|
||||
40
modules/core/ld.nix
Normal file
40
modules/core/ld.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{ pkgs, config, lib, ... }:
|
||||
let
|
||||
cfg = config.my;
|
||||
in
|
||||
{
|
||||
programs.nix-ld = lib.mkIf (cfg.rgb.enable || cfg.openlinkhub.enable ) {
|
||||
enable = true;
|
||||
libraries = with pkgs; [
|
||||
stdenv.cc.cc
|
||||
glibc
|
||||
xorg.libX11
|
||||
xorg.libXcursor
|
||||
xorg.libXrandr
|
||||
xorg.libXinerama
|
||||
xorg.libXi
|
||||
wayland
|
||||
libGL
|
||||
libdrm
|
||||
alsa-lib
|
||||
pulseaudio
|
||||
glib
|
||||
nspr.out
|
||||
nss.out
|
||||
dbus.lib
|
||||
at-spi2-atk
|
||||
cups.lib
|
||||
cairo.out
|
||||
gtk3.out
|
||||
pango.out
|
||||
libxcomposite.out
|
||||
libxdamage.out
|
||||
libxext.out
|
||||
libxfixes.out
|
||||
libgbm.out
|
||||
expat.out
|
||||
libxcb.out
|
||||
libxkbcommon.out
|
||||
];
|
||||
};
|
||||
}
|
||||
38
modules/core/network.nix
Normal file
38
modules/core/network.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{ options, host, lib, ... }:
|
||||
{
|
||||
networking = {
|
||||
hostName = "${host}";
|
||||
networkmanager.enable = false;
|
||||
useNetworkd = true;
|
||||
timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
|
||||
dhcpcd.enable = false;
|
||||
firewall = {
|
||||
enable = lib.mkDefault false;
|
||||
autoLoadConntrackHelpers = true;
|
||||
};
|
||||
nftables.enable = true;
|
||||
};
|
||||
boot.initrd.systemd = {
|
||||
network.enable = true;
|
||||
|
||||
};
|
||||
systemd.network.enable = true;
|
||||
services.resolved = {
|
||||
enable = true;
|
||||
fallbackDns = [
|
||||
"2a07:a8c0::18:7be4"
|
||||
"2a07:a8c1::18:7be4"
|
||||
"79.198.199.184"
|
||||
];
|
||||
};
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
useRoutingFeatures = "both";
|
||||
openFirewall = true;
|
||||
extraSetFlags = [
|
||||
"--ssh"
|
||||
"--accept-dns=false"
|
||||
"--accept-routes"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,4 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
cfg = config.my;
|
||||
in
|
||||
@@ -15,9 +10,18 @@ in
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = true;
|
||||
nvidiaSettings = cfg.desktop.enable;
|
||||
nvidiaSettings = true;
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
# package =
|
||||
# config.boot.kernelPackages.nvidiaPackages.mkDriver {
|
||||
# version = "590.48.01";
|
||||
# sha256_64bit = "sha256-ueL4BpN4FDHMh/TNKRCeEz3Oy1ClDWto1LO/LWlr1ok=";
|
||||
# sha256_aarch64 = "sha256-xctt4TPRlOJ6r5S54h5W6PT6/3Zy2R4ASNFPu8TSHKM=";
|
||||
# openSha256 = "sha256-ZpuVZybW6CFN/gz9rx+UJvQ715FZnAOYfHn5jt5Z2C8=";
|
||||
# settingsSha256 = "sha256-ZpuVZybW6CFN/gz9rx+UJvQ715FZnAOYfHn5jt5Z2C8=";
|
||||
# persistencedSha256 = lib.fakeSha256;
|
||||
# };
|
||||
};
|
||||
hardware.nvidia-container-toolkit.enable = config.virtualisation.docker.enable;
|
||||
environment.systemPackages = with pkgs; [
|
||||
16
modules/core/services.nix
Normal file
16
modules/core/services.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
# Services to start
|
||||
services = {
|
||||
upower.enable = true;
|
||||
libinput.enable = true; # Input Handling
|
||||
fstrim.enable = true; # SSD Optimizer
|
||||
gvfs.enable = true; # For Mounting USB & More
|
||||
power-profiles-daemon.enable = true;
|
||||
tumbler.enable = true; # Image/video preview
|
||||
|
||||
smartd = {
|
||||
enable = true;
|
||||
autodetect = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,15 +1,19 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
b = builtins;
|
||||
|
||||
module_files =
|
||||
b.readDir ./. |>
|
||||
lib.filterAttrs (name: type:
|
||||
( (lib.strings.hasSuffix ".nix" name
|
||||
&& name != "default.nix"
|
||||
&& type == "regular" )
|
||||
|| ( type == "directory"
|
||||
&& b.pathExists ./${name}/default.nix))
|
||||
) |>
|
||||
b.attrNames |>
|
||||
b.map (f: ./${f});
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./cli
|
||||
./packages.nix
|
||||
./desktop
|
||||
./gaming
|
||||
./hardware.nix
|
||||
./network.nix
|
||||
./services.nix
|
||||
./fonts.nix
|
||||
./ld.nix
|
||||
./nvidia.nix
|
||||
./corsairLink.nix
|
||||
];
|
||||
imports = module_files;
|
||||
}
|
||||
|
||||
32
modules/desktop/audio.nix
Normal file
32
modules/desktop/audio.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
services.pipewire = lib.mkIf config.my.desktop.enable {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
extraConfig.pipewire."92-low-latency" = {
|
||||
"context.properties" = {
|
||||
"default.clock.rate" = 48000;
|
||||
"default.clock.quantum" = 256;
|
||||
"default.clock.min-quantum" = 256;
|
||||
"default.clock.max-quantum" = 256;
|
||||
};
|
||||
};
|
||||
extraConfig.pipewire-pulse."92-low-latency" = {
|
||||
context.modules = [
|
||||
{
|
||||
name = "libpipewire-module-protocol-pulse";
|
||||
args = {
|
||||
pulse.min.req = "256/48000";
|
||||
pulse.default.req = "256/48000";
|
||||
pulse.max.req = "256/48000";
|
||||
pulse.min.quantum = "256/48000";
|
||||
pulse.max.quantum = "256/48000";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -19,7 +19,7 @@ in
|
||||
enableSystemMonitoring = true; # System monitoring widgets (dgop)
|
||||
enableClipboard = true; # Clipboard history manager
|
||||
enableVPN = true; # VPN management widget
|
||||
enableDynamicTheming = true; # Wallpaper-based theming (matugen)
|
||||
enableDynamicTheming = false; # Wallpaper-based theming (matugen)
|
||||
enableAudioWavelength = true; # Audio visualizer (cava)
|
||||
enableCalendarEvents = true; # Calendar integration (khal)
|
||||
};
|
||||
|
||||
@@ -1,3 +1,43 @@
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
cfg = config.my.desktop;
|
||||
in
|
||||
{
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GDK_BACKEND = "wayland,x11,*";
|
||||
GDK_SCALE = "2"; # GDK Scaling Factor (no fractional scaling)
|
||||
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
MOZ_DISABLE_RDD_SANDBOX = "1";
|
||||
|
||||
OZONE_PLATFORM = "wayland";
|
||||
|
||||
ELECTRON_OZONE_PLATFORM_HINT = "auto";
|
||||
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
XDG_MENU_PREFIX = "plasma-";
|
||||
QT_QPA_PLATFORMTHEME_QT6 = "qt5ct";
|
||||
GTK_THEME = "Adwaita:dark";
|
||||
QS_ICON_THEME = "Papirus-Dark";
|
||||
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
TERMINAL = "kitty";
|
||||
|
||||
__GL_GSYNC_ALLOWED = "1";
|
||||
__GL_VRR_ALLOWED = "1";
|
||||
|
||||
EDITOR = "code";
|
||||
STLEDITOR = "code";
|
||||
|
||||
XCURSOR_SIZE = "16";
|
||||
|
||||
XDG_SESSION_DESKTOP = lib.optionalString cfg.hyprland.enable "Hyprland";
|
||||
AQ_DRM_DEVICES = lib.optionalString cfg.hyprland.enable "/dev/dri/nvidia-dgpu";
|
||||
};
|
||||
}
|
||||
16
modules/desktop/greeter.nix
Normal file
16
modules/desktop/greeter.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ pkgs, inputs, username, config, ... }:
|
||||
{
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = rec {
|
||||
default_session = {
|
||||
command =
|
||||
if config.my.desktop.hyprland.enable
|
||||
then "${pkgs.uwsm}/bin/uwsm start -e -D Hyprland ${inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland}/bin/start-hyprland"
|
||||
else "";
|
||||
user = "${username}";
|
||||
};
|
||||
initial_session = default_session;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, config, lib, ... }:
|
||||
{
|
||||
programs.obs-studio = {
|
||||
programs.obs-studio = lib.mkIf config.my.desktop.enable {
|
||||
enable = true;
|
||||
enableVirtualCamera = true;
|
||||
plugins = [
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
{ pkgs, ...}:
|
||||
|
||||
{ pkgs, config, lib, ...}:
|
||||
let
|
||||
cfg = config.my.desktop;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
kitty
|
||||
thunderbird
|
||||
bitwarden-desktop
|
||||
pwvucontrol
|
||||
firefox
|
||||
pavucontrol
|
||||
gedit
|
||||
wl-clipboard
|
||||
tuigreet
|
||||
brightnessctl
|
||||
spotify
|
||||
hyprshot
|
||||
mpv
|
||||
#jellyfin-media-player
|
||||
gedit
|
||||
nixfmt
|
||||
nixd
|
||||
gtk4
|
||||
xfce.thunar
|
||||
xfce.thunar-archive-plugin
|
||||
xfce.thunar-media-tags-plugin
|
||||
droidcam
|
||||
rustdesk
|
||||
mailspring
|
||||
rquickshare
|
||||
btrfs-assistant
|
||||
ungoogled-chromium
|
||||
gparted
|
||||
veracrypt
|
||||
lshw
|
||||
syncplay
|
||||
tigervnc
|
||||
solaar
|
||||
@@ -39,6 +39,18 @@
|
||||
gsettings-desktop-schemas
|
||||
gnome-tweaks
|
||||
appimage-run
|
||||
firefoxpwa
|
||||
papirus-icon-theme
|
||||
tuigreet
|
||||
arrpc
|
||||
]
|
||||
++ lib.optionals cfg.hyprland.enable [
|
||||
hyprpolkitagent
|
||||
hypridle
|
||||
hyprpicker
|
||||
]
|
||||
++ lib.optionals cfg.spicetify.enable [
|
||||
spotify
|
||||
];
|
||||
programs.seahorse.enable = true;
|
||||
programs.streamcontroller.enable = true;
|
||||
@@ -47,4 +59,8 @@
|
||||
binfmt = true;
|
||||
};
|
||||
programs.yubikey-manager.enable = true;
|
||||
systemd.user.targets.graphical-session = {
|
||||
wants = [ "arrpc.service" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
{ pkgs, lib, username, config, ... }:
|
||||
let
|
||||
cfg = config.my.desktop;
|
||||
in
|
||||
{
|
||||
services.displayManager.sddm = {
|
||||
enable = cfg.sddm.enable;
|
||||
theme = "catppuccin-mocha-mauve";
|
||||
package = pkgs.kdePackages.sddm;
|
||||
wayland.enable = true;
|
||||
settings = {
|
||||
Autologin = lib.optionalAttrs cfg.sddm.autoLogin.enable {
|
||||
User = "${username}";
|
||||
Session = cfg.sddm.autoLogin.session;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages =
|
||||
lib.optionals cfg.sddm.enable [(
|
||||
pkgs.catppuccin-sddm.override {
|
||||
flavor = "mocha";
|
||||
accent = "mauve";
|
||||
font = "Noto Sans";
|
||||
fontSize = "9";
|
||||
background = "${./sddm-background/wallpaper.png}";
|
||||
loginBackground = true;
|
||||
}
|
||||
)];
|
||||
}
|
||||
@@ -1,16 +1,23 @@
|
||||
{ pkgs, inputs, ...}:
|
||||
|
||||
{ pkgs, inputs, config, lib, ...}:
|
||||
let
|
||||
cfg = config.my.desktop;
|
||||
in
|
||||
{
|
||||
xdg = {
|
||||
mime.enable = true;
|
||||
menus.enable = true;
|
||||
portal = {
|
||||
portal = lib.mkIf cfg.enable {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
]
|
||||
++ lib.optionalAttrs cfg.hyprland.enable [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||
];
|
||||
configPackages = []
|
||||
++ lib.optionalAttrs cfg.hyprland.enable [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
|
||||
];
|
||||
configPackages = [inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ lib, config, inputs, ... }:
|
||||
let
|
||||
cfg = config.my.gaming;
|
||||
cfg = config.my.desktop.gaming;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
|
||||
@@ -1,11 +1,20 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, inputs, ... }:
|
||||
let
|
||||
system = pkgs.stdenv.hostPlatform.system;
|
||||
|
||||
pkgsUnstable = import inputs.nixpkgs-unstable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
package = pkgsUnstable.steam;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = false;
|
||||
gamescopeSession.enable = false;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
steamtinkerlaunch
|
||||
];
|
||||
@@ -16,6 +25,7 @@
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
package = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system}.gamescope;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.nix-ld.enable = true;
|
||||
programs.nix-ld.libraries = with pkgs; [
|
||||
stdenv.cc.cc
|
||||
glibc
|
||||
xorg.libX11
|
||||
xorg.libXcursor
|
||||
xorg.libXrandr
|
||||
xorg.libXinerama
|
||||
xorg.libXi
|
||||
wayland
|
||||
libGL
|
||||
libdrm
|
||||
alsa-lib
|
||||
pulseaudio
|
||||
glib
|
||||
nspr.out
|
||||
nss.out
|
||||
dbus.lib
|
||||
at-spi2-atk
|
||||
cups.lib
|
||||
cairo.out
|
||||
gtk3.out
|
||||
pango.out
|
||||
libxcomposite.out
|
||||
libxdamage.out
|
||||
libxext.out
|
||||
libxfixes.out
|
||||
libgbm.out
|
||||
expat.out
|
||||
libxcb.out
|
||||
libxkbcommon.out
|
||||
];
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
options,
|
||||
...
|
||||
}:
|
||||
{
|
||||
networking = {
|
||||
hostName = "LillyPC";
|
||||
networkmanager.enable = true;
|
||||
timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
|
||||
firewall = {
|
||||
enable = false;
|
||||
allowedTCPPorts = [
|
||||
22
|
||||
80
|
||||
443
|
||||
59010
|
||||
59011
|
||||
8080
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
59010
|
||||
59011
|
||||
];
|
||||
};
|
||||
};
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
useRoutingFeatures = "client";
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{ pkgs, ...}:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
firefoxpwa
|
||||
hyprpolkitagent
|
||||
hypridle
|
||||
hyprpicker
|
||||
lsb-release
|
||||
papirus-icon-theme
|
||||
];
|
||||
}
|
||||
19
modules/server/default.nix
Normal file
19
modules/server/default.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
b = builtins;
|
||||
|
||||
module_files =
|
||||
b.readDir ./. |>
|
||||
lib.filterAttrs (name: type:
|
||||
( (lib.strings.hasSuffix ".nix" name
|
||||
&& name != "default.nix"
|
||||
&& type == "regular" )
|
||||
|| ( type == "directory"
|
||||
&& b.pathExists ./${name}/default.nix))
|
||||
) |>
|
||||
b.attrNames |>
|
||||
b.map (f: ./${f});
|
||||
in
|
||||
{
|
||||
imports = module_files;
|
||||
}
|
||||
16
modules/server/virtualisation.nix
Normal file
16
modules/server/virtualisation.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ config, lib, ... }:
|
||||
{
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
spiceUSBRedirection.enable = config.my.virtualisation.enable;
|
||||
libvirtd = lib.mkIf config.my.virtualisation.enable {
|
||||
enable = true;
|
||||
qemu = {
|
||||
swtpm.enable = true;
|
||||
runAsRoot = false;
|
||||
};
|
||||
onShutdown = "shutdown";
|
||||
nss.enableGuest = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
{
|
||||
# Services to start
|
||||
services = {
|
||||
upower.enable = true; # noctalia shell battery
|
||||
libinput.enable = true; # Input Handling
|
||||
fstrim.enable = true; # SSD Optimizer
|
||||
gvfs.enable = true; # For Mounting USB & More
|
||||
power-profiles-daemon.enable = true;
|
||||
openssh = {
|
||||
enable = true; # Enable SSH
|
||||
settings = {
|
||||
PermitRootLogin = "no"; # Prevent root from SSH login
|
||||
PasswordAuthentication = true; #Users can SSH using kb and password
|
||||
KbdInteractiveAuthentication = true;
|
||||
};
|
||||
ports = [22];
|
||||
};
|
||||
blueman.enable = true; # Bluetooth Support
|
||||
tumbler.enable = true; # Image/video preview
|
||||
gnome.gnome-keyring.enable = true;
|
||||
|
||||
smartd = {
|
||||
enable = true;
|
||||
autodetect = true;
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
extraConfig.pipewire."92-low-latency" = {
|
||||
"context.properties" = {
|
||||
"default.clock.rate" = 48000;
|
||||
"default.clock.quantum" = 256;
|
||||
"default.clock.min-quantum" = 256;
|
||||
"default.clock.max-quantum" = 256;
|
||||
};
|
||||
};
|
||||
extraConfig.pipewire-pulse."92-low-latency" = {
|
||||
context.modules = [
|
||||
{
|
||||
name = "libpipewire-module-protocol-pulse";
|
||||
args = {
|
||||
pulse.min.req = "256/48000";
|
||||
pulse.default.req = "256/48000";
|
||||
pulse.max.req = "256/48000";
|
||||
pulse.min.quantum = "256/48000";
|
||||
pulse.max.quantum = "256/48000";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
43
options.nix
43
options.nix
@@ -2,8 +2,6 @@
|
||||
{
|
||||
options.my = {
|
||||
|
||||
gaming.enable = lib.mkEnableOption "Gaming";
|
||||
|
||||
cachyosKernel.enable = lib.mkEnableOption "CachyOS Kernel";
|
||||
|
||||
nvidia = {
|
||||
@@ -14,33 +12,48 @@
|
||||
|
||||
rgb.enable = lib.mkEnableOption "Has RGB";
|
||||
|
||||
virtualisation.enable = lib.mkEnableOption "Enable Virualisation Tools";
|
||||
|
||||
amd = {
|
||||
boost.disable = lib.mkEnableOption "Disable CPU Boost";
|
||||
performancePreference = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "balance_performance";
|
||||
example = "balance_performance";
|
||||
description = "Performance Preference to set";
|
||||
};
|
||||
};
|
||||
|
||||
gpu = {
|
||||
powersave = lib.mkEnableOption "Set GPU ASPM to powersave";
|
||||
};
|
||||
|
||||
desktop = {
|
||||
enable = lib.mkEnableOption "Is a Desktop System";
|
||||
|
||||
sddm = {
|
||||
enable = lib.mkEnableOption "SDDM";
|
||||
autoLogin = {
|
||||
enable = lib.mkEnableOption "SDDM AutoLogin";
|
||||
session = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "hyprland-uwsm.desktop";
|
||||
example = "hyprland-uwsm.desktop";
|
||||
description = "Name of the autologin session desktop file";
|
||||
};
|
||||
};
|
||||
};
|
||||
gaming.enable = lib.mkEnableOption "Gaming";
|
||||
|
||||
hyprland = {
|
||||
enable = lib.mkEnableOption "Hyprland";
|
||||
};
|
||||
|
||||
kdePlasma = {
|
||||
enable = lib.mkEnableOption "Hyprland";
|
||||
enable = lib.mkEnableOption "KDE Plasma";
|
||||
};
|
||||
|
||||
flatpak = {
|
||||
enable = lib.mkEnableOption "Flatpak Support";
|
||||
};
|
||||
|
||||
spicetify = {
|
||||
enable = lib.mkEnableOption "Install Spotify/Spicetify";
|
||||
};
|
||||
|
||||
nixcord = {
|
||||
enable = lib.mkEnableOption "Install Nixcord/Equibop";
|
||||
};
|
||||
};
|
||||
|
||||
cockpit.enable = lib.mkEnableOption "Install Cockpit";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,20 @@
|
||||
{ pkgs, config, ... }:
|
||||
{ pkgs, config, inputs, lib, ... }:
|
||||
let
|
||||
cfg = config.my.cachyosKernel;
|
||||
in
|
||||
{
|
||||
services = {
|
||||
openssh = {
|
||||
enable = true; # Enable SSH
|
||||
settings = {
|
||||
PermitRootLogin = "no"; # Prevent root from SSH login
|
||||
PasswordAuthentication = true; #Users can SSH using kb and password
|
||||
KbdInteractiveAuthentication = true;
|
||||
};
|
||||
ports = [22];
|
||||
};
|
||||
blueman.enable = true; # Bluetooth Support
|
||||
};
|
||||
nix = {
|
||||
settings = {
|
||||
download-buffer-size = 200000000;
|
||||
@@ -26,6 +38,13 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.overlays = lib.mkIf cfg.enable [
|
||||
inputs.nix-cachyos-kernel.overlays.pinned
|
||||
];
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Boot/Kernel Stuff
|
||||
boot = {
|
||||
kernelPackages =
|
||||
@@ -39,6 +58,9 @@ in
|
||||
kernel.sysctl = {"vm.max_map_count" = 2147483642;};
|
||||
loader.systemd-boot.enable = true;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
initrd = {
|
||||
systemd.enable = true;
|
||||
};
|
||||
# Appimage Support
|
||||
binfmt.registrations.appimage = {
|
||||
wrapInterpreterInShell = false;
|
||||
@@ -50,4 +72,44 @@ in
|
||||
};
|
||||
plymouth.enable = true;
|
||||
};
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "euro";
|
||||
};
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.11"; # Did you read the comment?
|
||||
}
|
||||
Reference in New Issue
Block a user