Compare commits
459 Commits
0459a4755e
...
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 |
@@ -2,10 +2,9 @@
|
|||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{ inputs, host, ... }:
|
{ host, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
./hosts/${host}
|
./hosts/${host}
|
||||||
@@ -13,60 +12,4 @@
|
|||||||
./system
|
./system
|
||||||
./modules
|
./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:
|
|
||||||
|
|
||||||
# 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"
|
"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": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
@@ -252,6 +266,24 @@
|
|||||||
"type": "github"
|
"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": {
|
"gitignore": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -653,6 +685,26 @@
|
|||||||
"type": "github"
|
"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": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744536153,
|
"lastModified": 1744536153,
|
||||||
@@ -684,6 +736,37 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-lib_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765674936,
|
||||||
|
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-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": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767047869,
|
"lastModified": 1767047869,
|
||||||
@@ -749,6 +832,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"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": {
|
"locked": {
|
||||||
"lastModified": 1767081933,
|
"lastModified": 1767081933,
|
||||||
"narHash": "sha256-aFw7KQeFeAZ8Nz0uzHtpR3nykKxcDs7UxS5+Vknq0O4=",
|
"narHash": "sha256-aFw7KQeFeAZ8Nz0uzHtpR3nykKxcDs7UxS5+Vknq0O4=",
|
||||||
@@ -764,7 +863,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767047869,
|
"lastModified": 1767047869,
|
||||||
"narHash": "sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo=",
|
"narHash": "sha256-tzYsEzXEVa7op1LTnrLSiPGrcCY6948iD0EcNLWcmzo=",
|
||||||
@@ -780,7 +879,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_8": {
|
"nixpkgs_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766651565,
|
"lastModified": 1766651565,
|
||||||
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
|
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
|
||||||
@@ -798,7 +897,7 @@
|
|||||||
},
|
},
|
||||||
"openlinkhub": {
|
"openlinkhub": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": "nixpkgs_8"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"path": "./services/openlinkhub",
|
"path": "./services/openlinkhub",
|
||||||
@@ -866,7 +965,9 @@
|
|||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixcord": "nixcord",
|
||||||
|
"nixpkgs": "nixpkgs_7",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"openlinkhub": "openlinkhub",
|
"openlinkhub": "openlinkhub",
|
||||||
"spicetify-nix": "spicetify-nix",
|
"spicetify-nix": "spicetify-nix",
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
@@ -892,7 +993,7 @@
|
|||||||
},
|
},
|
||||||
"spicetify-nix": {
|
"spicetify-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_8",
|
"nixpkgs": "nixpkgs_9",
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|||||||
13
flake.nix
13
flake.nix
@@ -3,6 +3,9 @@
|
|||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/release-25.11";
|
nixpkgs.url = "github:nixos/nixpkgs/release-25.11";
|
||||||
|
nixpkgs-unstable = {
|
||||||
|
url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-25.11";
|
url = "github:nix-community/home-manager/release-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -31,15 +34,17 @@
|
|||||||
url = "github:ezKEa/aagl-gtk-on-nix/release-25.11";
|
url = "github:ezKEa/aagl-gtk-on-nix/release-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
nixcord = {
|
||||||
|
url = "github:kaylorben/nixcord";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
self,
|
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
hyprland,
|
|
||||||
nix-flatpak,
|
nix-flatpak,
|
||||||
catppuccin,
|
catppuccin,
|
||||||
|
nixcord,
|
||||||
...
|
...
|
||||||
} @inputs:
|
} @inputs:
|
||||||
let
|
let
|
||||||
@@ -50,7 +55,7 @@
|
|||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations.lillypc = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.${host} = nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs host username prettyUsername;
|
inherit inputs host username prettyUsername;
|
||||||
@@ -73,6 +78,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./home
|
./home
|
||||||
catppuccin.homeModules.catppuccin
|
catppuccin.homeModules.catppuccin
|
||||||
|
nixcord.homeModules.nixcord
|
||||||
];
|
];
|
||||||
home = {
|
home = {
|
||||||
username = "${username}";
|
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
|
in
|
||||||
{
|
{
|
||||||
imports = module_files;
|
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;
|
cfg = nixosConfig.my.desktop;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.kitty.enable = cfg.enable; # required for the default Hyprland config
|
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||||
wayland.windowManager.hyprland = lib.mkIf cfg.hyprland.enable {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
# set the flake package
|
# set the flake package
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
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 = {
|
settings = {
|
||||||
animations = {
|
animations = {
|
||||||
enabled = true;
|
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 = {
|
settings = {
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"sleep 2; uwsm-app -- vesktop-portable"
|
"sleep 2; uwsm-app -- equibop"
|
||||||
# todo openrgb
|
# todo openrgb
|
||||||
"sleep 5; uwsm-app -- spotify"
|
"sleep 10; uwsm-app -- spotify"
|
||||||
# "uwsm-app -- dms run"
|
# "uwsm-app -- dms run"
|
||||||
"sleep 5; uwsm-app -- Artemis.UI.Linux --minimized"
|
"sleep 5; uwsm-app -- Artemis.UI.Linux --minimized"
|
||||||
"sleep 10; bash /home/lilly/Scripts/rgb-on.sh"
|
"sleep 10; bash /home/lilly/Scripts/rgb-on.sh"
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
|
{ lib, nixosConfig, ... }:
|
||||||
|
let
|
||||||
|
cfg = nixosConfig.my.desktop;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
wayland.windowManager.hyprland =
|
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
||||||
{
|
settings = {
|
||||||
settings =
|
|
||||||
{
|
|
||||||
general = {
|
general = {
|
||||||
no_focus_fallback = true;
|
no_focus_fallback = true;
|
||||||
allow_tearing = true;
|
allow_tearing = true;
|
||||||
@@ -14,7 +16,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
dwindle = {
|
dwindle = {
|
||||||
preserve_split = true;
|
preserve_split = true;
|
||||||
smart_split = false;
|
smart_split = false;
|
||||||
@@ -22,16 +23,19 @@
|
|||||||
# precise_mouse_move = true;
|
# precise_mouse_move = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
render = {
|
source = [
|
||||||
cm_enabled = true;
|
"hdr.conf"
|
||||||
cm_fs_passthrough = 2;
|
];
|
||||||
direct_scanout = 2;
|
# render = {
|
||||||
cm_auto_hdr = 1;
|
# cm_enabled = true;
|
||||||
};
|
# cm_fs_passthrough = 2;
|
||||||
|
# direct_scanout = 2;
|
||||||
|
# cm_auto_hdr = 1;
|
||||||
|
# };
|
||||||
|
|
||||||
quirks = {
|
# quirks = {
|
||||||
prefer_hdr = 2;
|
# prefer_hdr = 1;
|
||||||
};
|
# };
|
||||||
|
|
||||||
debug = {
|
debug = {
|
||||||
disable_logs = false;
|
disable_logs = false;
|
||||||
@@ -42,4 +46,4 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -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;
|
enable = true;
|
||||||
systemdTarget = "hyprland-session.target";
|
systemdTarget = "hyprland-session.target";
|
||||||
settings = {
|
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 = {
|
settings = {
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "us";
|
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 = {
|
settings = {
|
||||||
"$mod" = "SUPER";
|
"$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 = {
|
settings = {
|
||||||
misc = {
|
misc = {
|
||||||
disable_hyprland_logo = true;
|
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 = {
|
settings = {
|
||||||
monitor = [
|
monitor = [
|
||||||
",preferred,auto,1"
|
",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 = {
|
settings = {
|
||||||
"$games" = "^(steam_app_.*|gamescope|starrail.exe|.*\.exe)$";
|
"$games" = "^(steam_app_.*|gamescope|starrail.exe|.*\.exe)$";
|
||||||
"$launch_on_second_monitor" = "^(vesktop|spotify)$";
|
"$launch_on_second_monitor" = "^(vesktop|spotify|equibop)$";
|
||||||
"$utility_workspace" = 10;
|
"$utility_workspace" = 10;
|
||||||
|
|
||||||
windowrule = [
|
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 = {
|
settings = {
|
||||||
"$altscreenworkspace" = "11";
|
"$altscreenworkspace" = "11";
|
||||||
"$mainmonitor" = "GIGA-BYTE TECHNOLOGY CO. LTD. AORUS FO32U2 24210B000546";
|
"$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 = {
|
settings = {
|
||||||
general = {
|
general = {
|
||||||
gaps_in = 5;
|
gaps_in = 5;
|
||||||
@@ -1,12 +1,6 @@
|
|||||||
{
|
{ nixosConfig, lib, ... }: {
|
||||||
pkgs,
|
programs.kitty = lib.mkIf nixosConfig.my.desktop.enable {
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.kitty = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
# Upstream test failures resolved; use default kitty package (>= 0.44).
|
|
||||||
package = pkgs.kitty;
|
|
||||||
settings = {
|
settings = {
|
||||||
font_family = "Maple Mono NF";
|
font_family = "Maple Mono NF";
|
||||||
font_size = 11;
|
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, ... }:
|
||||||
enable = true;
|
let
|
||||||
package = pkgs.vesktop.override {
|
cfg = nixosConfig.my.desktop.nixcord;
|
||||||
withMiddleClickScroll = true;
|
in
|
||||||
};
|
{
|
||||||
settings = {
|
config = lib.mkIf cfg.enable {
|
||||||
arRPC = true;
|
programs.nixcord = {
|
||||||
tray = true;
|
enable = true; # Enable Nixcord (It also installs Discord)
|
||||||
minimizeToTray = true;
|
discord = {
|
||||||
};
|
vencord.enable = false; # Use Vencord (default)
|
||||||
vencord = {
|
equicord.enable = true; # Or use Equicord instead (cannot enable both)
|
||||||
settings = {
|
};
|
||||||
|
vesktop.enable = false; # Vesktop
|
||||||
|
equibop = {
|
||||||
|
enable = 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
|
||||||
|
};
|
||||||
|
equibopConfig = {
|
||||||
plugins = {
|
plugins = {
|
||||||
AlwaysTrust.enabled = true;
|
AlwaysTrust.enabled = true;
|
||||||
BetterSessions.enabled = true;
|
BetterSessions.enabled = true;
|
||||||
@@ -67,7 +63,7 @@
|
|||||||
NoUnblockToJump.enabled = true;
|
NoUnblockToJump.enabled = true;
|
||||||
OnePingPerDm.enabled = true;
|
OnePingPerDm.enabled = true;
|
||||||
OpenInApp.enabled = true;
|
OpenInApp.enabled = true;
|
||||||
petpet.enabled = true;
|
PetPet.enabled = true;
|
||||||
ReadAllNotificationsButton.enabled = true;
|
ReadAllNotificationsButton.enabled = true;
|
||||||
RelationshipNotifier.enabled = true;
|
RelationshipNotifier.enabled = true;
|
||||||
ReverseImageSearch.enabled = true;
|
ReverseImageSearch.enabled = true;
|
||||||
@@ -75,7 +71,10 @@
|
|||||||
ServerListIndicators.enabled = false;
|
ServerListIndicators.enabled = false;
|
||||||
ShowHiddenChannels.enabled = true;
|
ShowHiddenChannels.enabled = true;
|
||||||
ShowHiddenThings.enabled = true;
|
ShowHiddenThings.enabled = true;
|
||||||
SpotifyControls.enabled = true;
|
MusicControls = {
|
||||||
|
enabled = true;
|
||||||
|
showSpotifyControls = true;
|
||||||
|
};
|
||||||
ThemeAttributes.enabled = true;
|
ThemeAttributes.enabled = true;
|
||||||
TypingIndicator.enabled = true;
|
TypingIndicator.enabled = true;
|
||||||
TypingTweaks.enabled = true;
|
TypingTweaks.enabled = true;
|
||||||
@@ -97,8 +96,16 @@
|
|||||||
Settings.enabled = true;
|
Settings.enabled = true;
|
||||||
SupportHelper.enabled = true;
|
SupportHelper.enabled = true;
|
||||||
WebContextMenus.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;
|
enable = true;
|
||||||
profiles.default.extensions = with pkgs.vscode-extensions; [
|
profiles.default.extensions = with pkgs.vscode-extensions; [
|
||||||
jnoortheen.nix-ide
|
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 @@
|
|||||||
_: {
|
{ lib, ... }:
|
||||||
imports = [
|
let
|
||||||
./mangohud.nix
|
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;
|
enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
{ pkgs, ...}:
|
|
||||||
{
|
{
|
||||||
services.gnome-keyring.enable = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
services.easyeffects = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
home.packages = [ pkgs.gcr ]; # Provides org.gnome.keyring.SystemPrompter
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
in
|
||||||
{
|
{
|
||||||
imports = module_files;
|
imports = module_files;
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,9 @@
|
|||||||
{
|
{ pkgs, host, nixosConfig, lib, ... }: {
|
||||||
pkgs,
|
programs.fish = lib.mkIf nixosConfig.my.desktop.enable {
|
||||||
host,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
shellAliases = {
|
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 = ''
|
interactiveShellInit = ''
|
||||||
set fish_greeting # Disable greeting
|
set fish_greeting # Disable greeting
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ email, prettyUsername, ... }:
|
{ email, prettyUsername, username, ... }:
|
||||||
{
|
{
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
# Conflict resolution style for readable diffs
|
# Conflict resolution style for readable diffs
|
||||||
merge.conflictStyle = "diff3";
|
merge.conflictStyle = "diff3";
|
||||||
safe = {
|
safe = {
|
||||||
directory = [ "/home/LillyOS" ];
|
directory = [ "/home/${username}/LillyOS" "/home/${username}/.config" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
_: {
|
{
|
||||||
programs = {
|
programs = {
|
||||||
zoxide = {
|
zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
options = [
|
options = [
|
||||||
"--cmd cd"
|
"--cmd cd"
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -16,5 +16,4 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = module_files;
|
imports = module_files;
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
|
{ nixosConfig, lib, ... }:
|
||||||
{
|
{
|
||||||
xdg.configFile."electron-flags.conf".text = ''
|
config = lib.mkIf nixosConfig.my.desktop.enable {
|
||||||
|
xdg.configFile."electron-flags.conf".text = ''
|
||||||
--enable-features=WaylandWindowDecorations
|
--enable-features=WaylandWindowDecorations
|
||||||
--ozone-platform-hint=wayland
|
--ozone-platform-hint=wayland
|
||||||
--enable-blink-features=MiddleClickAutoscroll
|
--enable-blink-features=MiddleClickAutoscroll
|
||||||
--ozone-platform=wayland
|
--ozone-platform=wayland
|
||||||
'';
|
'';
|
||||||
xdg.configFile."code-flags.conf".text = ''
|
xdg.configFile."code-flags.conf".text = ''
|
||||||
--ozone-platform-hint=wayland
|
--ozone-platform-hint=wayland
|
||||||
--ozone-platform=wayland
|
--ozone-platform=wayland
|
||||||
--gtk-version=4
|
--gtk-version=4
|
||||||
@@ -13,5 +15,6 @@
|
|||||||
--enable-features=TouchpadOverscrollHistoryNavigation
|
--enable-features=TouchpadOverscrollHistoryNavigation
|
||||||
--enable-wayland-ime
|
--enable-wayland-ime
|
||||||
--password-store=gnome-libsecret
|
--password-store=gnome-libsecret
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
{ nixosConfig, lib, ... }:
|
||||||
let
|
let
|
||||||
gwenview_desktop_file = "org.kde.gwenview.desktop";
|
gwenview_desktop_file = "org.kde.gwenview.desktop";
|
||||||
in
|
in
|
||||||
@@ -7,7 +8,8 @@ in
|
|||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
xdg.mimeApps = {
|
xdg.mimeApps = lib.mkIf nixosConfig.my.desktop.enable {
|
||||||
|
enable = true;
|
||||||
associations.added = associations;
|
associations.added = associations;
|
||||||
defaultApplications = 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_BACKEND=wayland,x11,*
|
||||||
export GDK_SCALE=2 # GDK Scaling Factor (no fractional scaling)
|
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 LIBVA_DRIVER_NAME=nvidia
|
||||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||||
export XDG_SESSION_DESKTOP=Hyprland
|
|
||||||
export GBM_BACKEND=nvidia-drm
|
export GBM_BACKEND=nvidia-drm
|
||||||
export TERMINAL=kitty
|
export TERMINAL=kitty
|
||||||
|
|
||||||
@@ -33,8 +33,10 @@ export EDITOR=code
|
|||||||
export STLEDITOR=code
|
export STLEDITOR=code
|
||||||
|
|
||||||
export XCURSOR_SIZE=16
|
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
|
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 = {
|
my = {
|
||||||
|
|
||||||
gaming.enable = true;
|
|
||||||
|
|
||||||
cachyosKernel.enable = true;
|
cachyosKernel.enable = true;
|
||||||
|
|
||||||
desktop = {
|
desktop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
sddm = {
|
|
||||||
enable = true;
|
|
||||||
autoLogin.enable = true;
|
|
||||||
};
|
|
||||||
hyprland.enable = true;
|
hyprland.enable = true;
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
|
spicetify.enable = true;
|
||||||
|
nixcord.enable = true;
|
||||||
|
gaming.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nvidia.enable = true;
|
nvidia.enable = true;
|
||||||
openlinkhub.enable = true;
|
openlinkhub.enable = true;
|
||||||
rgb.enable = true;
|
rgb.enable = true;
|
||||||
};
|
};
|
||||||
openlinkhub.enable = true;
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,21 +20,21 @@
|
|||||||
"EXCLUDE_PATTERN" = "";
|
"EXCLUDE_PATTERN" = "";
|
||||||
"GIT_BRANCH" = "main";
|
"GIT_BRANCH" = "main";
|
||||||
"GIT_REMOTE" = "origin";
|
"GIT_REMOTE" = "origin";
|
||||||
"GIT_WATCH_DIR" = "/home/LillyOS";
|
"GIT_WATCH_DIR" = "/home/lilly/LillyOS";
|
||||||
"PULL_BEFORE_PUSH" = "true";
|
"PULL_BEFORE_PUSH" = "true";
|
||||||
"SKIP_IF_MERGING" = "false";
|
"SKIP_IF_MERGING" = "false";
|
||||||
"SLEEP_TIME" = "10";
|
"SLEEP_TIME" = "2";
|
||||||
"VERBOSE" = "false";
|
"VERBOSE" = "false";
|
||||||
};
|
};
|
||||||
volumes = [
|
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/known_hosts:/root/.ssh/known_hosts"
|
||||||
"/home/lilly/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro"
|
"/home/lilly/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro"
|
||||||
"/home/lilly/LillyOS:/home/LillyOS:rw"
|
"/home/lilly/LillyOS:/home/lilly/LillyOS:rw"
|
||||||
];
|
];
|
||||||
log-driver = "journald";
|
log-driver = "journald";
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
"--network-alias=gitwatch"
|
"--network-alias=gitwatch-LillyOS"
|
||||||
"--network=gitwatch_default"
|
"--network=gitwatch_default"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -59,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
|
# Networks
|
||||||
systemd.services."docker-network-gitwatch_default" = {
|
systemd.services."docker-network-gitwatch_default" = {
|
||||||
path = [ pkgs.docker ];
|
path = [ pkgs.docker ];
|
||||||
@@ -83,4 +131,4 @@
|
|||||||
};
|
};
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,13 +14,13 @@
|
|||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/8ef1b753-7a4a-4062-a906-6a01ce7b6111";
|
{ device = "/dev/disk/by-uuid/8ef1b753-7a4a-4062-a906-6a01ce7b6111";
|
||||||
fsType = "btrfs";
|
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" =
|
fileSystems."/home" =
|
||||||
{ device = "/dev/disk/by-uuid/8ef1b753-7a4a-4062-a906-6a01ce7b6111";
|
{ device = "/dev/disk/by-uuid/8ef1b753-7a4a-4062-a906-6a01ce7b6111";
|
||||||
fsType = "btrfs";
|
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" =
|
fileSystems."/boot" =
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
fileSystems."/data" =
|
fileSystems."/data" =
|
||||||
{ device = "/dev/disk/by-uuid/5c58c3c4-2ce8-4ad9-8277-ff7503462f88";
|
{ device = "/dev/disk/by-uuid/5c58c3c4-2ce8-4ad9-8277-ff7503462f88";
|
||||||
fsType = "btrfs";
|
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 =
|
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}"
|
"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
|
p7zip
|
||||||
curl
|
curl
|
||||||
jq
|
jq
|
||||||
|
lsb-release
|
||||||
|
file
|
||||||
|
pkg-config
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
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 = {
|
hardware = {
|
||||||
sane = {
|
sane = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
};
|
};
|
||||||
logitech.wireless.enable = true;
|
logitech.wireless.enable = true;
|
||||||
logitech.wireless.enableGraphical = true;
|
logitech.wireless.enableGraphical = true;
|
||||||
graphics = {
|
graphics = lib.mkIf config.my.desktop.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
};
|
};
|
||||||
amdgpu.opencl.enable = true;
|
amdgpu.opencl.enable = config.my.desktop.enable;
|
||||||
enableRedistributableFirmware = true;
|
enableRedistributableFirmware = true;
|
||||||
keyboard.qmk.enable = true;
|
keyboard.qmk.enable = true;
|
||||||
bluetooth.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
|
let
|
||||||
cfg = config.my;
|
cfg = config.my;
|
||||||
in
|
in
|
||||||
@@ -15,9 +10,18 @@ in
|
|||||||
powerManagement.enable = true;
|
powerManagement.enable = true;
|
||||||
powerManagement.finegrained = false;
|
powerManagement.finegrained = false;
|
||||||
open = true;
|
open = true;
|
||||||
nvidiaSettings = cfg.desktop.enable;
|
nvidiaSettings = true;
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
# 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;
|
hardware.nvidia-container-toolkit.enable = config.virtualisation.docker.enable;
|
||||||
environment.systemPackages = with pkgs; [
|
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 = [
|
imports = module_files;
|
||||||
./cli
|
|
||||||
./packages.nix
|
|
||||||
./desktop
|
|
||||||
./gaming
|
|
||||||
./hardware.nix
|
|
||||||
./network.nix
|
|
||||||
./services.nix
|
|
||||||
./fonts.nix
|
|
||||||
./ld.nix
|
|
||||||
./nvidia.nix
|
|
||||||
./corsairLink.nix
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
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)
|
enableSystemMonitoring = true; # System monitoring widgets (dgop)
|
||||||
enableClipboard = true; # Clipboard history manager
|
enableClipboard = true; # Clipboard history manager
|
||||||
enableVPN = true; # VPN management widget
|
enableVPN = true; # VPN management widget
|
||||||
enableDynamicTheming = true; # Wallpaper-based theming (matugen)
|
enableDynamicTheming = false; # Wallpaper-based theming (matugen)
|
||||||
enableAudioWavelength = true; # Audio visualizer (cava)
|
enableAudioWavelength = true; # Audio visualizer (cava)
|
||||||
enableCalendarEvents = true; # Calendar integration (khal)
|
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;
|
enable = true;
|
||||||
enableVirtualCamera = true;
|
enableVirtualCamera = true;
|
||||||
plugins = [
|
plugins = [
|
||||||
|
|||||||
@@ -1,50 +1,66 @@
|
|||||||
{ pkgs, ...}:
|
{ pkgs, config, lib, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.my.desktop;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
config = lib.mkIf cfg.enable {
|
||||||
kitty
|
environment.systemPackages = with pkgs; [
|
||||||
thunderbird
|
kitty
|
||||||
bitwarden-desktop
|
thunderbird
|
||||||
pwvucontrol
|
bitwarden-desktop
|
||||||
firefox
|
pwvucontrol
|
||||||
gedit
|
pavucontrol
|
||||||
wl-clipboard
|
gedit
|
||||||
tuigreet
|
wl-clipboard
|
||||||
brightnessctl
|
brightnessctl
|
||||||
spotify
|
hyprshot
|
||||||
hyprshot
|
mpv
|
||||||
mpv
|
#jellyfin-media-player
|
||||||
#jellyfin-media-player
|
gedit
|
||||||
gedit
|
nixfmt
|
||||||
nixfmt
|
nixd
|
||||||
nixd
|
gtk4
|
||||||
xfce.thunar
|
xfce.thunar
|
||||||
xfce.thunar-archive-plugin
|
xfce.thunar-archive-plugin
|
||||||
xfce.thunar-media-tags-plugin
|
xfce.thunar-media-tags-plugin
|
||||||
droidcam
|
droidcam
|
||||||
rustdesk
|
rustdesk
|
||||||
mailspring
|
rquickshare
|
||||||
rquickshare
|
btrfs-assistant
|
||||||
btrfs-assistant
|
ungoogled-chromium
|
||||||
ungoogled-chromium
|
gparted
|
||||||
gparted
|
veracrypt
|
||||||
veracrypt
|
syncplay
|
||||||
lshw
|
tigervnc
|
||||||
syncplay
|
solaar
|
||||||
tigervnc
|
logitech-udev-rules
|
||||||
solaar
|
yubioath-flutter
|
||||||
logitech-udev-rules
|
kdePackages.gwenview
|
||||||
yubioath-flutter
|
gsettings-desktop-schemas
|
||||||
kdePackages.gwenview
|
gnome-tweaks
|
||||||
gsettings-desktop-schemas
|
appimage-run
|
||||||
gnome-tweaks
|
firefoxpwa
|
||||||
appimage-run
|
papirus-icon-theme
|
||||||
];
|
tuigreet
|
||||||
programs.seahorse.enable = true;
|
arrpc
|
||||||
programs.streamcontroller.enable = true;
|
]
|
||||||
programs.appimage = {
|
++ lib.optionals cfg.hyprland.enable [
|
||||||
enable = true;
|
hyprpolkitagent
|
||||||
binfmt = true;
|
hypridle
|
||||||
|
hyprpicker
|
||||||
|
]
|
||||||
|
++ lib.optionals cfg.spicetify.enable [
|
||||||
|
spotify
|
||||||
|
];
|
||||||
|
programs.seahorse.enable = true;
|
||||||
|
programs.streamcontroller.enable = true;
|
||||||
|
programs.appimage = {
|
||||||
|
enable = true;
|
||||||
|
binfmt = true;
|
||||||
|
};
|
||||||
|
programs.yubikey-manager.enable = true;
|
||||||
|
systemd.user.targets.graphical-session = {
|
||||||
|
wants = [ "arrpc.service" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
programs.yubikey-manager.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 = {
|
xdg = {
|
||||||
mime.enable = true;
|
mime.enable = true;
|
||||||
menus.enable = true;
|
menus.enable = true;
|
||||||
portal = {
|
portal = lib.mkIf cfg.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPortals = [
|
extraPortals = [
|
||||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
|
||||||
pkgs.xdg-desktop-portal-gtk
|
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, ... }:
|
{ lib, config, inputs, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.my.gaming;
|
cfg = config.my.desktop.gaming;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
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 = {
|
programs = {
|
||||||
steam = {
|
steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgsUnstable.steam;
|
||||||
remotePlay.openFirewall = true;
|
remotePlay.openFirewall = true;
|
||||||
dedicatedServer.openFirewall = false;
|
dedicatedServer.openFirewall = true;
|
||||||
gamescopeSession.enable = false;
|
gamescopeSession.enable = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
steamtinkerlaunch
|
steamtinkerlaunch
|
||||||
];
|
];
|
||||||
@@ -16,6 +25,7 @@
|
|||||||
gamescope = {
|
gamescope = {
|
||||||
enable = true;
|
enable = true;
|
||||||
capSysNice = true;
|
capSysNice = true;
|
||||||
|
package = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system}.gamescope;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
environment.systemPackages = with pkgs; [
|
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";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
45
options.nix
45
options.nix
@@ -2,8 +2,6 @@
|
|||||||
{
|
{
|
||||||
options.my = {
|
options.my = {
|
||||||
|
|
||||||
gaming.enable = lib.mkEnableOption "Gaming";
|
|
||||||
|
|
||||||
cachyosKernel.enable = lib.mkEnableOption "CachyOS Kernel";
|
cachyosKernel.enable = lib.mkEnableOption "CachyOS Kernel";
|
||||||
|
|
||||||
nvidia = {
|
nvidia = {
|
||||||
@@ -14,33 +12,48 @@
|
|||||||
|
|
||||||
rgb.enable = lib.mkEnableOption "Has RGB";
|
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 = {
|
desktop = {
|
||||||
enable = lib.mkEnableOption "Is a Desktop System";
|
enable = lib.mkEnableOption "Is a Desktop System";
|
||||||
|
|
||||||
sddm = {
|
gaming.enable = lib.mkEnableOption "Gaming";
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
enable = lib.mkEnableOption "Hyprland";
|
enable = lib.mkEnableOption "Hyprland";
|
||||||
};
|
};
|
||||||
|
|
||||||
kdePlasma = {
|
kdePlasma = {
|
||||||
enable = lib.mkEnableOption "Hyprland";
|
enable = lib.mkEnableOption "KDE Plasma";
|
||||||
};
|
};
|
||||||
|
|
||||||
flatpak = {
|
flatpak = {
|
||||||
enable = lib.mkEnableOption "Flatpak Support";
|
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
|
let
|
||||||
cfg = config.my.cachyosKernel;
|
cfg = config.my.cachyosKernel;
|
||||||
in
|
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 = {
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
download-buffer-size = 200000000;
|
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/Kernel Stuff
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages =
|
kernelPackages =
|
||||||
@@ -39,6 +58,9 @@ in
|
|||||||
kernel.sysctl = {"vm.max_map_count" = 2147483642;};
|
kernel.sysctl = {"vm.max_map_count" = 2147483642;};
|
||||||
loader.systemd-boot.enable = true;
|
loader.systemd-boot.enable = true;
|
||||||
loader.efi.canTouchEfiVariables = true;
|
loader.efi.canTouchEfiVariables = true;
|
||||||
|
initrd = {
|
||||||
|
systemd.enable = true;
|
||||||
|
};
|
||||||
# Appimage Support
|
# Appimage Support
|
||||||
binfmt.registrations.appimage = {
|
binfmt.registrations.appimage = {
|
||||||
wrapInterpreterInShell = false;
|
wrapInterpreterInShell = false;
|
||||||
@@ -50,4 +72,44 @@ in
|
|||||||
};
|
};
|
||||||
plymouth.enable = true;
|
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