Compare commits
360 Commits
ddf5af23b2
...
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 |
@@ -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 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ in
|
|||||||
flavor = "${variant}";
|
flavor = "${variant}";
|
||||||
vscode.profiles.default.enable = false;
|
vscode.profiles.default.enable = false;
|
||||||
cursors.enable = true;
|
cursors.enable = true;
|
||||||
|
thunderbird.profile = "default";
|
||||||
};
|
};
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ in
|
|||||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
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"
|
||||||
|
|||||||
@@ -23,16 +23,19 @@ in
|
|||||||
# 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;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ in
|
|||||||
wayland.windowManager.hyprland = lib.mkIf (cfg.enable && cfg.hyprland.enable) {
|
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,9 +1,6 @@
|
|||||||
{ pkgs, nixosConfig, lib, ... }: {
|
{ nixosConfig, lib, ... }: {
|
||||||
programs.kitty = lib.mkIf nixosConfig.my.desktop.enable {
|
programs.kitty = lib.mkIf nixosConfig.my.desktop.enable {
|
||||||
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;
|
||||||
111
home/desktop/nixcord.nix
Normal file
111
home/desktop/nixcord.nix
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
|
||||||
|
{ nixosConfig, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = nixosConfig.my.desktop.nixcord;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
programs.nixcord = {
|
||||||
|
enable = true; # Enable Nixcord (It also installs Discord)
|
||||||
|
discord = {
|
||||||
|
vencord.enable = false; # Use Vencord (default)
|
||||||
|
equicord.enable = true; # Or use Equicord instead (cannot enable both)
|
||||||
|
};
|
||||||
|
vesktop.enable = false; # Vesktop
|
||||||
|
equibop = {
|
||||||
|
enable = true;
|
||||||
|
}; # 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 = {
|
||||||
|
AlwaysTrust.enabled = true;
|
||||||
|
BetterSessions.enabled = true;
|
||||||
|
BetterSettings.enabled = true;
|
||||||
|
BiggerStreamPreview.enabled = true;
|
||||||
|
CallTimer.enabled = true;
|
||||||
|
ClearURLs.enabled = true;
|
||||||
|
CopyEmojiMarkdown.enabled = true;
|
||||||
|
CopyFileContents.enabled = true;
|
||||||
|
CopyUserURLs.enabled = true;
|
||||||
|
CrashHandler.enabled = true;
|
||||||
|
CustomIdle = {
|
||||||
|
enabled = true;
|
||||||
|
idleTimeout = 0;
|
||||||
|
remainInIdle = false;
|
||||||
|
};
|
||||||
|
Dearrow.enabled = true;
|
||||||
|
DisableCallIdle.enabled = true;
|
||||||
|
ExpressionCloner.enabled = true;
|
||||||
|
FavoriteEmojiFirst.enabled = true;
|
||||||
|
FixSpotifyEmbeds.enabled = true;
|
||||||
|
FixYoutubeEmbeds.enabled = true;
|
||||||
|
FullSearchContext.enabled = true;
|
||||||
|
GameActivityToggle.enabled = true;
|
||||||
|
GifPaste.enabled = true;
|
||||||
|
ImageZoom.enabled = true;
|
||||||
|
LoadingQuotes.enabled = true;
|
||||||
|
MemberCount.enabled = true;
|
||||||
|
MentionAvatars.enabled = true;
|
||||||
|
MessageLinkEmbeds.enabled = true;
|
||||||
|
MessageLogger = {
|
||||||
|
enabled = true;
|
||||||
|
inlineEdits = false;
|
||||||
|
};
|
||||||
|
NewGuildSettings.enabled = true;
|
||||||
|
NoF1.enabled = true;
|
||||||
|
NoOnboardingDelay.enabled = true;
|
||||||
|
NormalizeMessageLinks.enabled = true;
|
||||||
|
NoUnblockToJump.enabled = true;
|
||||||
|
OnePingPerDm.enabled = true;
|
||||||
|
OpenInApp.enabled = true;
|
||||||
|
PetPet.enabled = true;
|
||||||
|
ReadAllNotificationsButton.enabled = true;
|
||||||
|
RelationshipNotifier.enabled = true;
|
||||||
|
ReverseImageSearch.enabled = true;
|
||||||
|
ServerInfo.enabled = true;
|
||||||
|
ServerListIndicators.enabled = false;
|
||||||
|
ShowHiddenChannels.enabled = true;
|
||||||
|
ShowHiddenThings.enabled = true;
|
||||||
|
MusicControls = {
|
||||||
|
enabled = true;
|
||||||
|
showSpotifyControls = true;
|
||||||
|
};
|
||||||
|
ThemeAttributes.enabled = true;
|
||||||
|
TypingIndicator.enabled = true;
|
||||||
|
TypingTweaks.enabled = true;
|
||||||
|
UnlockedAvatarZoom.enabled = true;
|
||||||
|
UnsuppressEmbeds.enabled = true;
|
||||||
|
UserVoiceShow.enabled = true;
|
||||||
|
ValidUser.enabled = true;
|
||||||
|
ViewIcons.enabled = true;
|
||||||
|
ViewRaw.enabled = true;
|
||||||
|
VoiceChatDoubleClick.enabled = true;
|
||||||
|
VoiceDownload.enabled = true;
|
||||||
|
VoiceMessages.enabled = true;
|
||||||
|
WebKeybinds.enabled = true;
|
||||||
|
WebScreenShareFixes.enabled = true;
|
||||||
|
WhoReacted.enabled = true;
|
||||||
|
YoutubeAdblock.enabled = true;
|
||||||
|
DisableDeepLinks.enabled = true;
|
||||||
|
NoTrack.enabled = true;
|
||||||
|
Settings.enabled = true;
|
||||||
|
SupportHelper.enabled = true;
|
||||||
|
WebContextMenus.enabled = true;
|
||||||
|
"WebRichPresence (arRPC)".enabled = true;
|
||||||
|
KeyboardSounds = {
|
||||||
|
enabled = false;
|
||||||
|
soundPack = "operagxnoch ";
|
||||||
|
};
|
||||||
|
HomeTyping.enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraConfig = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -24,7 +24,6 @@ in
|
|||||||
aiBandBlocker
|
aiBandBlocker
|
||||||
];
|
];
|
||||||
enabledCustomApps = with spicePkgs.apps; [
|
enabledCustomApps = with spicePkgs.apps; [
|
||||||
lyricsPlus
|
|
||||||
betterLibrary
|
betterLibrary
|
||||||
newReleases
|
newReleases
|
||||||
];
|
];
|
||||||
|
|||||||
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,109 +0,0 @@
|
|||||||
{ nixosConfig, lib, pkgs, username, ... }:
|
|
||||||
let
|
|
||||||
cfg = nixosConfig.my.desktop.vesktop;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
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 = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.vesktop.override {
|
|
||||||
withMiddleClickScroll = true;
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
arRPC = true;
|
|
||||||
tray = true;
|
|
||||||
minimizeToTray = true;
|
|
||||||
};
|
|
||||||
vencord = {
|
|
||||||
settings = {
|
|
||||||
plugins = {
|
|
||||||
AlwaysTrust.enabled = true;
|
|
||||||
BetterSessions.enabled = true;
|
|
||||||
BetterSettings.enabled = true;
|
|
||||||
BiggerStreamPreview.enabled = true;
|
|
||||||
CallTimer.enabled = true;
|
|
||||||
ClearURLs.enabled = true;
|
|
||||||
CopyEmojiMarkdown.enabled = true;
|
|
||||||
CopyFileContents.enabled = true;
|
|
||||||
CopyUserURLs.enabled = true;
|
|
||||||
CrashHandler.enabled = true;
|
|
||||||
CustomIdle = {
|
|
||||||
enabled = true;
|
|
||||||
idleTimeout = 0;
|
|
||||||
remainInIdle = false;
|
|
||||||
};
|
|
||||||
Dearrow.enabled = true;
|
|
||||||
DisableCallIdle.enabled = true;
|
|
||||||
ExpressionCloner.enabled = true;
|
|
||||||
FavoriteEmojiFirst.enabled = true;
|
|
||||||
FixSpotifyEmbeds.enabled = true;
|
|
||||||
FixYoutubeEmbeds.enabled = true;
|
|
||||||
FullSearchContext.enabled = true;
|
|
||||||
GameActivityToggle.enabled = true;
|
|
||||||
GifPaste.enabled = true;
|
|
||||||
ImageZoom.enabled = true;
|
|
||||||
LoadingQuotes.enabled = true;
|
|
||||||
MemberCount.enabled = true;
|
|
||||||
MentionAvatars.enabled = true;
|
|
||||||
MessageLinkEmbeds.enabled = true;
|
|
||||||
MessageLogger = {
|
|
||||||
enabled = true;
|
|
||||||
inlineEdits = false;
|
|
||||||
};
|
|
||||||
NewGuildSettings.enabled = true;
|
|
||||||
NoF1.enabled = true;
|
|
||||||
NoOnboardingDelay.enabled = true;
|
|
||||||
NormalizeMessageLinks.enabled = true;
|
|
||||||
NoUnblockToJump.enabled = true;
|
|
||||||
OnePingPerDm.enabled = true;
|
|
||||||
OpenInApp.enabled = true;
|
|
||||||
petpet.enabled = true;
|
|
||||||
ReadAllNotificationsButton.enabled = true;
|
|
||||||
RelationshipNotifier.enabled = true;
|
|
||||||
ReverseImageSearch.enabled = true;
|
|
||||||
ServerInfo.enabled = true;
|
|
||||||
ServerListIndicators.enabled = false;
|
|
||||||
ShowHiddenChannels.enabled = true;
|
|
||||||
ShowHiddenThings.enabled = true;
|
|
||||||
SpotifyControls.enabled = true;
|
|
||||||
ThemeAttributes.enabled = true;
|
|
||||||
TypingIndicator.enabled = true;
|
|
||||||
TypingTweaks.enabled = true;
|
|
||||||
UnlockedAvatarZoom.enabled = true;
|
|
||||||
UnsuppressEmbeds.enabled = true;
|
|
||||||
UserVoiceShow.enabled = true;
|
|
||||||
ValidUser.enabled = true;
|
|
||||||
ViewIcons.enabled = true;
|
|
||||||
ViewRaw.enabled = true;
|
|
||||||
VoiceChatDoubleClick.enabled = true;
|
|
||||||
VoiceDownload.enabled = true;
|
|
||||||
VoiceMessages.enabled = true;
|
|
||||||
WebKeybinds.enabled = true;
|
|
||||||
WebScreenShareFixes.enabled = true;
|
|
||||||
WhoReacted.enabled = true;
|
|
||||||
YoutubeAdblock.enabled = true;
|
|
||||||
DisableDeepLinks.enabled = true;
|
|
||||||
NoTrack.enabled = true;
|
|
||||||
Settings.enabled = true;
|
|
||||||
SupportHelper.enabled = true;
|
|
||||||
WebContextMenus.enabled = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,8 @@
|
|||||||
programs.fish = lib.mkIf nixosConfig.my.desktop.enable {
|
programs.fish = lib.mkIf nixosConfig.my.desktop.enable {
|
||||||
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
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
options = [
|
options = [
|
||||||
"--cmd cd"
|
"--cmd cd"
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{ nixosConfig, lib, ... }:
|
{ 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)
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ export XCURSOR_SIZE=16
|
|||||||
|
|
||||||
${lib.optionalString nixosConfig.my.desktop.hyprland.enable "export XDG_SESSION_DESKTOP=Hyprland"}
|
${lib.optionalString nixosConfig.my.desktop.hyprland.enable "export XDG_SESSION_DESKTOP=Hyprland"}
|
||||||
'';
|
'';
|
||||||
xdg.configFile."uwsm/env-hyprland".text = lib.optionalString nixosConfig.my.desktop.hyprland.enable ''
|
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
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,14 +5,10 @@
|
|||||||
|
|
||||||
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;
|
spicetify.enable = true;
|
||||||
vesktop.enable = true;
|
nixcord.enable = true;
|
||||||
gaming.enable = true;
|
gaming.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -20,6 +16,4 @@
|
|||||||
openlinkhub.enable = true;
|
openlinkhub.enable = true;
|
||||||
rgb.enable = true;
|
rgb.enable = true;
|
||||||
};
|
};
|
||||||
openlinkhub.enable = true;
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|||||||
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" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -33,5 +33,7 @@
|
|||||||
curl
|
curl
|
||||||
jq
|
jq
|
||||||
lsb-release
|
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"
|
||||||
|
];
|
||||||
|
}
|
||||||
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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -10,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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
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 = [
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ in
|
|||||||
thunderbird
|
thunderbird
|
||||||
bitwarden-desktop
|
bitwarden-desktop
|
||||||
pwvucontrol
|
pwvucontrol
|
||||||
|
pavucontrol
|
||||||
gedit
|
gedit
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
brightnessctl
|
brightnessctl
|
||||||
@@ -18,12 +19,12 @@ in
|
|||||||
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
|
||||||
@@ -38,8 +39,17 @@ in
|
|||||||
gsettings-desktop-schemas
|
gsettings-desktop-schemas
|
||||||
gnome-tweaks
|
gnome-tweaks
|
||||||
appimage-run
|
appimage-run
|
||||||
|
firefoxpwa
|
||||||
|
papirus-icon-theme
|
||||||
|
tuigreet
|
||||||
|
arrpc
|
||||||
]
|
]
|
||||||
++ lib.optionalAttrs cfg.spicetify.enable [
|
++ lib.optionals cfg.hyprland.enable [
|
||||||
|
hyprpolkitagent
|
||||||
|
hypridle
|
||||||
|
hyprpicker
|
||||||
|
]
|
||||||
|
++ lib.optionals cfg.spicetify.enable [
|
||||||
spotify
|
spotify
|
||||||
];
|
];
|
||||||
programs.seahorse.enable = true;
|
programs.seahorse.enable = true;
|
||||||
@@ -49,5 +59,8 @@ in
|
|||||||
binfmt = true;
|
binfmt = true;
|
||||||
};
|
};
|
||||||
programs.yubikey-manager.enable = true;
|
programs.yubikey-manager.enable = true;
|
||||||
|
systemd.user.targets.graphical-session = {
|
||||||
|
wants = [ "arrpc.service" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
{ pkgs, lib, username, config, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.my.desktop;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
services.displayManager.sddm = {
|
|
||||||
enable = cfg.sddm.enable;
|
|
||||||
theme = "catppuccin-mocha-mauve";
|
|
||||||
package = pkgs.kdePackages.sddm;
|
|
||||||
wayland.enable = true;
|
|
||||||
settings = {
|
|
||||||
Autologin = lib.optionalAttrs cfg.sddm.autoLogin.enable {
|
|
||||||
User = "${username}";
|
|
||||||
Session = cfg.sddm.autoLogin.session;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages =
|
|
||||||
lib.optionals cfg.sddm.enable [(
|
|
||||||
pkgs.catppuccin-sddm.override {
|
|
||||||
flavor = "mocha";
|
|
||||||
accent = "mauve";
|
|
||||||
font = "Noto Sans";
|
|
||||||
fontSize = "9";
|
|
||||||
background = "${./sddm-background/wallpaper.png}";
|
|
||||||
loginBackground = true;
|
|
||||||
}
|
|
||||||
)];
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,23 @@
|
|||||||
{ pkgs, inputs, ...}:
|
{ pkgs, inputs, config, lib, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.my.desktop;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
xdg = {
|
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,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,15 +0,0 @@
|
|||||||
{ options, host, ... }:
|
|
||||||
{
|
|
||||||
networking = {
|
|
||||||
hostName = "${host}";
|
|
||||||
networkmanager.enable = true;
|
|
||||||
timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
|
|
||||||
firewall = {
|
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
useRoutingFeatures = "client";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{ pkgs, ...}:
|
|
||||||
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
firefoxpwa
|
|
||||||
hyprpolkitagent
|
|
||||||
hypridle
|
|
||||||
hyprpicker
|
|
||||||
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,45 +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;le = true; # Bluetooth Support
|
|
||||||
tumbler.enable = true; # Image/video preview
|
|
||||||
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
35
options.nix
35
options.nix
@@ -12,22 +12,25 @@
|
|||||||
|
|
||||||
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 = {
|
|
||||||
enable = lib.mkEnableOption "SDDM";
|
|
||||||
autoLogin = {
|
|
||||||
enable = lib.mkEnableOption "SDDM AutoLogin";
|
|
||||||
session = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "hyprland-uwsm.desktop";
|
|
||||||
example = "hyprland-uwsm.desktop";
|
|
||||||
description = "Name of the autologin session desktop file";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gaming.enable = lib.mkEnableOption "Gaming";
|
gaming.enable = lib.mkEnableOption "Gaming";
|
||||||
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
@@ -46,9 +49,11 @@
|
|||||||
enable = lib.mkEnableOption "Install Spotify/Spicetify";
|
enable = lib.mkEnableOption "Install Spotify/Spicetify";
|
||||||
};
|
};
|
||||||
|
|
||||||
vesktop = {
|
nixcord = {
|
||||||
enable = lib.mkEnableOption "Install Vesktop";
|
enable = lib.mkEnableOption "Install Nixcord/Equibop";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cockpit.enable = lib.mkEnableOption "Install Cockpit";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, config, ... }:
|
{ pkgs, config, inputs, lib, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.my.cachyosKernel;
|
cfg = config.my.cachyosKernel;
|
||||||
in
|
in
|
||||||
@@ -13,7 +13,7 @@ in
|
|||||||
};
|
};
|
||||||
ports = [22];
|
ports = [22];
|
||||||
};
|
};
|
||||||
blueman.enab
|
blueman.enable = true; # Bluetooth Support
|
||||||
};
|
};
|
||||||
nix = {
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
@@ -38,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 =
|
||||||
@@ -51,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;
|
||||||
@@ -62,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