From e3be3cf85756d7c09869bd5277ae89bee2c8d568 Mon Sep 17 00:00:00 2001 From: Dmitriy Kholkin Date: Wed, 7 Dec 2022 22:05:00 +0300 Subject: [PATCH] upgrade system --- flake.lock | 466 ++++++++++++++++++++---- flake.nix | 14 +- machines/AMD-Workstation/default.nix | 14 +- machines/Dell-Laptop/default.nix | 19 +- machines/Flakes-ISO/default.nix | 29 +- machines/NixOS-CT/default.nix | 3 + patches/zen-kernels.patch | 10 +- profiles/applications/packages.nix | 2 + profiles/boot.nix | 43 ++- profiles/mullvad.nix | 7 +- profiles/nix/default.nix | 14 +- profiles/overlay.nix | 25 +- profiles/packages/arkenfox-userjs.nix | 2 +- profiles/security.nix | 2 +- profiles/services.nix | 2 +- profiles/virtualisation.nix | 35 +- profiles/workspace/git.nix | 2 +- profiles/workspace/hyprland/default.nix | 8 +- profiles/workspace/locale.nix | 2 +- profiles/workspace/misc.nix | 3 - profiles/workspace/ssh.nix | 2 +- roles/base.nix | 3 - roles/desktop.nix | 3 +- roles/workstation.nix | 4 +- scripts/find-latest-zfs-kernel.py | 3 +- scripts/gen-patch-zen.sh | 7 +- shell.nix | 18 - todo.md | 16 +- 28 files changed, 536 insertions(+), 222 deletions(-) delete mode 100644 shell.nix diff --git a/flake.lock b/flake.lock index 06a02f4..aa8884e 100644 --- a/flake.lock +++ b/flake.lock @@ -27,11 +27,11 @@ "arkenfox-userjs": { "flake": false, "locked": { - "lastModified": 1668350246, - "narHash": "sha256-yBHOofhwXRDzuv/PeZ4J7LME42wt5Hb2+5LDd0aliYE=", + "lastModified": 1670266131, + "narHash": "sha256-hf+fLTT67YWJPTkKgLxyP6KRAhiCaxuGY7GLltTyZvc=", "owner": "arkenfox", "repo": "user.js", - "rev": "365e76bc9f2c9bf30509ce5f1aec6627ad84c84b", + "rev": "e4a85c30c129cf664cc8a39705bb070fce828d33", "type": "github" }, "original": { @@ -101,11 +101,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1666010793, - "narHash": "sha256-6zhTpR0cfaHrupOXRZAdCzLAGINgsB6h3HQnj7+qHWs=", + "lastModified": 1669471061, + "narHash": "sha256-7FdhCbyPB0ajZP/piWjyhd4bwHc9TZifY8htOjsmxt8=", "owner": "nix-community", "repo": "comma", - "rev": "691120d169189f3a9cb29b1c72bcd521ac372b2b", + "rev": "48b723b201e94958a29a35e4f64bb4391fe73464", "type": "github" }, "original": { @@ -131,6 +131,31 @@ } }, "devshell": { + "inputs": { + "flake-utils": [ + "direnv-vscode", + "flake-utils" + ], + "nixpkgs": [ + "direnv-vscode", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1667210711, + "narHash": "sha256-IoErjXZAkzYWHEpQqwu/DeRNJGFdR7X2OGbkhMqMrpw=", + "owner": "numtide", + "repo": "devshell", + "rev": "96a9dd12b8a447840cc246e17a47b81a4268bba7", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "devshell_2": { "flake": false, "locked": { "lastModified": 1653917170, @@ -146,11 +171,34 @@ "type": "github" } }, + "direnv-vscode": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1670423628, + "narHash": "sha256-LSoXnDx8j9XC3aqT5RNW+Uj8SebuxqUo1eFnOKC6t1U=", + "owner": "direnv", + "repo": "direnv-vscode", + "rev": "750a141decd7dc982f00b429cd639bee644495c2", + "type": "github" + }, + "original": { + "owner": "direnv", + "repo": "direnv-vscode", + "type": "github" + } + }, "dream2nix": { "inputs": { "alejandra": "alejandra", "crane": "crane", - "devshell": "devshell", + "devshell": "devshell_2", "flake-utils-pre-commit": "flake-utils-pre-commit", "gomod2nix": "gomod2nix", "mach-nix": "mach-nix", @@ -218,11 +266,11 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "lastModified": 1668681692, + "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "rev": "009399224d5e398d03b22badca40a37ac85412a1", "type": "github" }, "original": { @@ -234,11 +282,11 @@ "flake-compat_3": { "flake": false, "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "lastModified": 1668681692, + "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "rev": "009399224d5e398d03b22badca40a37ac85412a1", "type": "github" }, "original": { @@ -248,6 +296,22 @@ } }, "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1668681692, + "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "009399224d5e398d03b22badca40a37ac85412a1", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_5": { "flake": false, "locked": { "lastModified": 1648199409, @@ -263,6 +327,22 @@ "type": "github" } }, + "flake-registry": { + "flake": false, + "locked": { + "lastModified": 1661161594, + "narHash": "sha256-tu1KKNLw+v7ZOIUPGDE66tn9vEyhIAWiiJYZRGGev8E=", + "owner": "nixos", + "repo": "flake-registry", + "rev": "8634fb4e1db6c76ce037bc00ef80f9ebd2616476", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "flake-registry", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1644229661, @@ -298,7 +378,7 @@ }, "flake-utils-plus_2": { "inputs": { - "flake-utils": "flake-utils_2" + "flake-utils": "flake-utils_3" }, "locked": { "lastModified": 1666080932, @@ -331,11 +411,11 @@ }, "flake-utils_2": { "locked": { - "lastModified": 1644229661, - "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "owner": "numtide", "repo": "flake-utils", - "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", "type": "github" }, "original": { @@ -346,11 +426,11 @@ }, "flake-utils_3": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "type": "github" }, "original": { @@ -389,6 +469,51 @@ "type": "github" } }, + "flake-utils_6": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_7": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_8": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flakeCompat": { "flake": false, "locked": { @@ -429,11 +554,11 @@ "utils": "utils_2" }, "locked": { - "lastModified": 1668332334, - "narHash": "sha256-YT1qcE/MCqBO1Bi/Yr6GcFpNKsvmzrBKh8juyXDbxQc=", + "lastModified": 1670280307, + "narHash": "sha256-3x+0whP1nCz5adQMIsBA3L9fI/ABOpRUJdbw0AmxBnU=", "owner": "nix-community", "repo": "home-manager", - "rev": "bc90de24d898655542589237cc0a6ada7564cb6c", + "rev": "2af0d07678fc15612345e0dd55337550dcf6465f", "type": "github" }, "original": { @@ -444,17 +569,19 @@ }, "hyprland": { "inputs": { + "hyprland-protocols": "hyprland-protocols", "nixpkgs": [ "nixpkgs" ], - "wlroots": "wlroots" + "wlroots": "wlroots", + "xdph": "xdph" }, "locked": { - "lastModified": 1668612936, - "narHash": "sha256-C5p+LpueYK9tI3F+7hKBVjYxn7gk2kW4kxe/jasIbuk=", + "lastModified": 1670429324, + "narHash": "sha256-kazSw0F59iM3bVtwO5LN5zg6dr2LVNB3GevPmzb2vTs=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "c02bfc3897137439596df4670cef2441d24c8367", + "rev": "73b3bbe49bf5a059df688b389aba7f947f62626c", "type": "github" }, "original": { @@ -463,17 +590,49 @@ "type": "github" } }, + "hyprland-protocols": { + "flake": false, + "locked": { + "lastModified": 1670258048, + "narHash": "sha256-Lm2sXnDVZNE+taHqsqVibvPmSdu65VHvXI507KVX4lg=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "0dcff94fc10df2bbb66d3e1b5a1d6cfd3ada5515", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-protocols_2": { + "flake": false, + "locked": { + "lastModified": 1670185345, + "narHash": "sha256-hxWGqlPecqEsE6nOHDV29KFBKePbY2Ipeac6lrChMKY=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "4623a404c091e64743ba310199bb380ec52f1936", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, "lib-aggregate": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_7", "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1668341496, - "narHash": "sha256-RztQBdjzVOG8TRoWikG62//kPcC1JSHaqYeM+UFl46k=", + "lastModified": 1670155750, + "narHash": "sha256-42o7/LiCRPUd2eCnN576a973NfWcBrqURMTlKkOJafc=", "owner": "nix-community", "repo": "lib-aggregate", - "rev": "0d285b79d0478307e5e180161174169263bea84a", + "rev": "c0f784c05c85422cd7d532fd1a630ba5e8f2348f", "type": "github" }, "original": { @@ -551,6 +710,27 @@ "type": "github" } }, + "naersk_2": { + "inputs": { + "nixpkgs": [ + "rnix-lsp", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1655042882, + "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=", + "owner": "nix-community", + "repo": "naersk", + "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "type": "github" + } + }, "nix": { "inputs": { "lowdown-src": "lowdown-src", @@ -558,11 +738,11 @@ "nixpkgs-regression": "nixpkgs-regression" }, "locked": { - "lastModified": 1668594520, - "narHash": "sha256-/9iBitEL6mtWZDikR/T0FNlkzj5HVkduw/Nek7HjgcY=", + "lastModified": 1670428938, + "narHash": "sha256-1oeFMXsBtJuBCoBmGrUXkRfyek+DfRMbaFC/euTlMIg=", "owner": "nixos", "repo": "nix", - "rev": "62960f32915909a5104f2ca3a32b25fb3cfd34c7", + "rev": "5dce1a5af6ffd911657ee1be2403a4f694c67477", "type": "github" }, "original": { @@ -573,7 +753,7 @@ }, "nix-alien": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_4", "nixpkgs": [ "nixpkgs" ] @@ -592,20 +772,39 @@ "type": "github" } }, - "nix-eval-jobs": { + "nix-direnv": { "inputs": { "flake-utils": "flake-utils_5", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1670247922, + "narHash": "sha256-8CsdoO/59ddJxS6cI/N0CTP5hno5tSWEglQofMLO5mM=", + "owner": "nix-community", + "repo": "nix-direnv", + "rev": "22b5729f266a6d59746fdb12eb3303bb2de63896", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-direnv", + "type": "github" + } + }, + "nix-eval-jobs": { + "inputs": { + "flake-utils": "flake-utils_8", "nixpkgs": [ "nixpkgs-wayland", "nixpkgs" ] }, "locked": { - "lastModified": 1668390437, - "narHash": "sha256-NLH+7Wl/xLCBhqOPsMOXzcBv/lTGv9xFNQ1G1GShmIY=", + "lastModified": 1670203340, + "narHash": "sha256-kX8j5g09zRoSt1o53/hrGpBx8ZtRh7bqStH5b9V+ZcA=", "owner": "nix-community", "repo": "nix-eval-jobs", - "rev": "4777023e8661e320bbad87992741b7b3aeda9c86", + "rev": "100600c810b2d02de97675dd4911f98923152fc5", "type": "github" }, "original": { @@ -614,6 +813,25 @@ "type": "github" } }, + "nix-vscode-marketplace": { + "inputs": { + "flake-utils": "flake-utils_6", + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1670395808, + "narHash": "sha256-GQcqf7gNlFCL9wHSAzepAA3VPHshVksk6HxyhLN1hvo=", + "owner": "AmeerTaweel", + "repo": "nix-vscode-marketplace", + "rev": "5b773331aead58a0563b8b956dd2459d4a575982", + "type": "github" + }, + "original": { + "owner": "AmeerTaweel", + "repo": "nix-vscode-marketplace", + "type": "github" + } + }, "nixlib": { "locked": { "lastModified": 1636849918, @@ -637,11 +855,11 @@ ] }, "locked": { - "lastModified": 1666812839, - "narHash": "sha256-0nBDgjPU+iDsvz89W+cDEyhnFGSwCJmwDl/gMGqYiU0=", + "lastModified": 1669065280, + "narHash": "sha256-3+pq1oJWjGDLfd8G/vR3IIFZ+EQ/aglukA0bTiMlf3o=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "41f3518bc194389df22a3d198215eae75e6b5ab9", + "rev": "50aeec40f2072d2ab267c8ec8a345573704ec110", "type": "github" }, "original": { @@ -683,11 +901,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1668300937, - "narHash": "sha256-E9/ir9++M58btaHOqugyrE4lfVnM0gIq5M9QWhGX0aM=", + "lastModified": 1670114968, + "narHash": "sha256-2a9m6wpsGKRpQdBh3B+aMVzfKzrOpu9+HbLXO1DNy7Y=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "41386dc5b4915d0d5716e9d09dbf372ea3bd24f3", + "rev": "77e67cb65014fb75c1c8ccfec60e9bd8b7d02c94", "type": "github" }, "original": { @@ -698,11 +916,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1668634318, - "narHash": "sha256-PBJeaml9rpJl3MsXF1IwEweCRiFUIHW/amRwBS/cUN0=", + "lastModified": 1670429513, + "narHash": "sha256-vMS0osUQXaM2n0OZdPsDOweAUqtDWh9NELqarecWMHI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5d1d22047c98ab15f529ec661852961f61b5b170", + "rev": "f6a0924bd650d4d39ddf214e8fef052c610eec60", "type": "github" }, "original": { @@ -746,7 +964,7 @@ }, "nixpkgs-wayland": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "lib-aggregate": "lib-aggregate", "nix-eval-jobs": "nix-eval-jobs", "nixpkgs": [ @@ -754,11 +972,11 @@ ] }, "locked": { - "lastModified": 1668618606, - "narHash": "sha256-Jls6nqGeQNQj/W4eeYbIs7pFnH4EutHVdAo0Q01LmSI=", + "lastModified": 1670350038, + "narHash": "sha256-3iFzmg3nh83lV++6jNKLzz/wXIrRfx+h2JVRsw0viKM=", "owner": "nix-community", "repo": "nixpkgs-wayland", - "rev": "d755869ccb15201ab3c9edc600a0fa6fbbe2ffcc", + "rev": "7a9e28e2fb249bc6ff31b668ccd3b005e5157aaa", "type": "github" }, "original": { @@ -785,11 +1003,43 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1668505710, - "narHash": "sha256-DulcfsGjpSXL9Ma0iQIsb3HRbARCDcA+CNH67pPyMQ0=", + "lastModified": 1670086663, + "narHash": "sha256-hT8C8AQB74tdoCPwz4nlJypLMD7GI2F5q+vn+VE/qQk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "813836d64fa57285d108f0dbf2356457ccd304e3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1660464579, + "narHash": "sha256-kzA9rwh0wS6CwUnFHAQ7dhJCowMPfRbvixVeOKnUmjo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b02538b16f6c5e1dbfce1033b27946e25c019b3b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1670242877, + "narHash": "sha256-jBLh7dRHnbfvPPA9znOC6oQfKrCPJ0El8Zoe0BqnCjQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "85d6b3990def7eef45f4502a82496de02a02b6e8", + "rev": "6e51c97f1c849efdfd4f3b78a4870e6aa2da4198", "type": "github" }, "original": { @@ -799,7 +1049,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_6": { "locked": { "lastModified": 1664876616, "narHash": "sha256-OxZntLnFgKbGUrPJJNLMxxj4yUaN/30+LG9N81ADqZE=", @@ -816,11 +1066,11 @@ }, "nur": { "locked": { - "lastModified": 1668634603, - "narHash": "sha256-kYeXsBCH8ZV+BrgLk73lAS33peRzicRxPoob67Ggi5s=", + "lastModified": 1670387514, + "narHash": "sha256-dSsoDMyoVwy60ZaGJNoCXEzYToYfdV6XYyadnliMJnE=", "owner": "nix-community", "repo": "NUR", - "rev": "521f59ced507c5ee305787d66b1019875b645397", + "rev": "25c0b2f7f43cbe50bf17f5c190c0aa6231d3754f", "type": "github" }, "original": { @@ -848,7 +1098,7 @@ }, "polymc": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_5", "libnbtplusplus": "libnbtplusplus", "nixpkgs": [ "nixpkgs" @@ -899,11 +1149,11 @@ "qbittorrent-ee": { "flake": false, "locked": { - "lastModified": 1668147006, - "narHash": "sha256-tkge0YUKr1rLYZDI4EsWQwjfIfZPub7pmdPb3O9JWjQ=", + "lastModified": 1670167484, + "narHash": "sha256-t0B2q8V6F62SSbcIktMludJ3wOTPyOHoU0/eu0Lta0o=", "owner": "c0re100", "repo": "qBittorrent-Enhanced-Edition", - "rev": "a910c836086a781c5565257efed5ae1f51258ec0", + "rev": "c2ecddd382f9c1b60006b356bb41cd6cab6934c2", "type": "github" }, "original": { @@ -928,26 +1178,53 @@ "type": "github" } }, + "rnix-lsp": { + "inputs": { + "naersk": "naersk_2", + "nixpkgs": [ + "nixpkgs" + ], + "utils": "utils_3" + }, + "locked": { + "lastModified": 1669555118, + "narHash": "sha256-F0s0m62S5bHNVWNHLZD6SeHiLrsDx98VQbRjDyIu+qQ=", + "owner": "nix-community", + "repo": "rnix-lsp", + "rev": "95d40673fe43642e2e1144341e86d0036abd95d9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "rnix-lsp", + "type": "github" + } + }, "root": { "inputs": { "arkenfox-userjs": "arkenfox-userjs", "base16": "base16", "base16-tokyonight-scheme": "base16-tokyonight-scheme", "comma": "comma", - "flake-compat": "flake-compat_2", + "direnv-vscode": "direnv-vscode", + "flake-compat": "flake-compat_3", + "flake-registry": "flake-registry", "flake-utils-plus": "flake-utils-plus_2", "home-manager": "home-manager", "hyprland": "hyprland", "nix": "nix", "nix-alien": "nix-alien", + "nix-direnv": "nix-direnv", + "nix-vscode-marketplace": "nix-vscode-marketplace", "nixos-generators": "nixos-generators", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_5", "nixpkgs-master": "nixpkgs-master", "nixpkgs-stable": "nixpkgs-stable", "nixpkgs-wayland": "nixpkgs-wayland", "nur": "nur", "polymc": "polymc", "qbittorrent-ee": "qbittorrent-ee", + "rnix-lsp": "rnix-lsp", "rycee": "rycee", "simple-nixos-mailserver": "simple-nixos-mailserver", "vscode-server-fixup": "vscode-server-fixup", @@ -977,11 +1254,11 @@ "rycee": { "flake": false, "locked": { - "lastModified": 1668571382, - "narHash": "sha256-dqJnUFxe+KzlUXnPawWpGgeA+zdXiTnPcFJ6VYZ98c4=", + "lastModified": 1670385787, + "narHash": "sha256-CsmFEwc9cQC/gr5mePkYzh7mhGv3aiIDfJXsO/Or5Xc=", "owner": "rycee", "repo": "nur-expressions", - "rev": "5472ae54ef6a1e7ed46982e87e3130c80f2d38f7", + "rev": "f512eb653b48f499dfa58f07accf4b75101fe238", "type": "gitlab" }, "original": { @@ -997,14 +1274,14 @@ "nixpkgs" ], "nixpkgs-22_05": "nixpkgs-22_05", - "utils": "utils_3" + "utils": "utils_4" }, "locked": { - "lastModified": 1658267644, - "narHash": "sha256-NJRe1rnlF112eZwxNASlRL8/ghwD8g+lpHIYRkWQxC8=", + "lastModified": 1669807829, + "narHash": "sha256-rgQ8MYV1UD4Ynw0wzfl9hatgsV5GV7X6eM6ioSPKzls=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "004c229ca44c069d93c92abf67ff1619fb508c6a", + "rev": "694e7d34f60028f4877517e1c7c73c9527fad400", "type": "gitlab" }, "original": { @@ -1044,6 +1321,21 @@ } }, "utils_3": { + "locked": { + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_4": { "locked": { "lastModified": 1605370193, "narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=", @@ -1081,7 +1373,7 @@ "webcord": { "inputs": { "dream2nix": "dream2nix", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_6", "webcord": "webcord_2" }, "locked": { @@ -1118,11 +1410,11 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1668292512, - "narHash": "sha256-lCMnIguyZgAGq7W2IwIVPoQS8fAfZ/XFwz/1TQ53eI8=", + "lastModified": 1669925104, + "narHash": "sha256-xMHfW+/G9MieN/5tXHUA5/ztE8dkE093cNFTEUgcwxI=", "owner": "wlroots", "repo": "wlroots", - "rev": "627a5c511278e67c3c308cdc6a639cbb490f48c3", + "rev": "c8eb24d30e18c165728b8788a10716611c3b633d", "type": "gitlab" }, "original": { @@ -1132,6 +1424,28 @@ "type": "gitlab" } }, + "xdph": { + "inputs": { + "hyprland-protocols": "hyprland-protocols_2", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1670202338, + "narHash": "sha256-StTfshdAoSxO+t0wRbq1I3YESLFIQWFjGJse5ICV8rk=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "af840a9e0947a79a37a95a9f62062653721e43fa", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, "zsh-autosuggestions": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 017808b..424e09e 100644 --- a/flake.nix +++ b/flake.nix @@ -15,6 +15,10 @@ url = "github:edolstra/flake-compat"; flake = false; }; + flake-registry = { + url = "github:nixos/flake-registry"; + flake = false; + }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -40,6 +44,7 @@ url = "github:thiagokokada/nix-alien"; inputs.nixpkgs.follows = "nixpkgs"; }; + nix-direnv.url = "github:nix-community/nix-direnv"; nixos-generators = { url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgs"; @@ -106,9 +111,9 @@ channelsConfig = { allowUnfree = true; }; channels.unstable.input = nixpkgs; - channels.unstable.patches = [ ./patches/update.patch ]; + channels.unstable.patches = [ ]; channels.unstable-zfs.input = nixpkgs; - channels.unstable-zfs.patches = [ ./patches/update.patch ./patches/zen-kernels.patch ]; + channels.unstable-zfs.patches = [ ./patches/zen-kernels.patch ]; hostDefaults.system = "x86_64-linux"; hostDefaults.channelName = "unstable"; @@ -130,6 +135,7 @@ outputsBuilder = channels: let pkgs = channels.unstable; + pkgs-zfs = channels.unstable-zfs; rebuild = pkgs.writeShellScriptBin "rebuild" '' if [[ -z $1 ]]; then echo "Usage: $(basename $0) {switch|boot|test}" @@ -146,7 +152,9 @@ ''; upgrade = pkgs.writeShellScriptBin "upgrade" '' cp flake.lock flake.lock.bak && nix flake update - update-vscode + if [[ "$1" == "zfs" ]]; then + ./scripts/gen-patch-zen.sh + fi ''; upgrade-hyprland = pkgs.writeShellScriptBin "upgrade-hyprland" '' cp flake.lock flake.lock.bak diff --git a/machines/AMD-Workstation/default.nix b/machines/AMD-Workstation/default.nix index 03518ef..72450d9 100644 --- a/machines/AMD-Workstation/default.nix +++ b/machines/AMD-Workstation/default.nix @@ -1,18 +1,17 @@ { inputs, config, lib, pkgs, ... }: { - imports = [ + imports = with inputs.self; [ ./hardware-configuration.nix - inputs.self.nixosRoles.workstation + nixosRoles.workstation - inputs.self.nixosProfiles.stable-diffusion - inputs.self.nixosProfiles.a2ln-server - # inputs.self.nixosModules.passthrough + nixosProfiles.stable-diffusion + nixosProfiles.a2ln-server ]; deviceSpecific.devInfo = { cpu = { vendor = "amd"; clock = 3700; - cores = 6; + cores = 12; }; drive = { type = "ssd"; @@ -43,6 +42,9 @@ # pkgs.looking-glass-client ]; + home-manager.users.alukard.home.stateVersion = "21.11"; + system.stateVersion = "21.11"; + # VFIO Passthough # virtualisation = { # sharedMemoryFiles = { diff --git a/machines/Dell-Laptop/default.nix b/machines/Dell-Laptop/default.nix index f999307..f8e9fca 100644 --- a/machines/Dell-Laptop/default.nix +++ b/machines/Dell-Laptop/default.nix @@ -32,22 +32,6 @@ "psmouse" ]; - services.acpid.handlers = { - headphone-plugged = { - action = '' - ${pkgs.sudo}/bin/sudo -u alukard -H XDG_RUNTIME_DIR=/run/user/1000 ${pkgs.pulseaudio}/bin/pactl set-sink-port alsa_output.pci-0000_00_1f.3.analog-stereo analog-output-headphones - ${pkgs.sudo}/bin/sudo -u alukard -H XDG_RUNTIME_DIR=/run/user/1000 ${pkgs.pulseaudio}/bin/pactl set-sink-port alsa_output.pci-0000_00_1f.3.analog-stereo analog-output-headphones - ''; - event = "jack/headphone HEADPHONE plug"; - }; - headphone-unplugged = { - action = '' - ${pkgs.sudo}/bin/sudo -u alukard -H XDG_RUNTIME_DIR=/run/user/1000 ${pkgs.pulseaudio}/bin/pactl set-sink-port alsa_output.pci-0000_00_1f.3.analog-stereo analog-output-speaker - ''; - event = "jack/headphone HEADPHONE unplug"; - }; - }; - services.fwupd.enable = true; systemd.services.unbind-usb2 = { @@ -61,4 +45,7 @@ # boot.kernelParams = lib.mkIf (device == "Dell-Laptop") [ # "mem_sleep_default=deep" # ]; + + home-manager.users.alukard.home.stateVersion = "21.11"; + system.stateVersion = "21.11"; } diff --git a/machines/Flakes-ISO/default.nix b/machines/Flakes-ISO/default.nix index 8fa96c3..fe20b09 100644 --- a/machines/Flakes-ISO/default.nix +++ b/machines/Flakes-ISO/default.nix @@ -1,22 +1,17 @@ { modulesPath, lib, inputs, pkgs, ... }: { - imports = with inputs.self.nixosModules; with inputs.self.nixosProfiles; [ - "${modulesPath}/installer/cd-dvd/installation-cd-graphical-plasma5.nix" + imports = with inputs.self; [ + "${toString modulesPath}/installer/cd-dvd/installation-cd-graphical-plasma5.nix" ]; - options.device = lib.mkOption { type = lib.types.str; }; - - config = { - environment.systemPackages = [ pkgs.git ]; - nix = { - nixPath = lib.mkForce [ "self=/etc/self/compat" "nixpkgs=/etc/nixpkgs" ]; - registry.self.flake = inputs.self; - registry.nixpkgs.flake = inputs.nixpkgs; - extraOptions = '' - experimental-features = nix-command flakes - ''; - }; - environment.etc.nixpkgs.source = inputs.nixpkgs; - environment.etc.self.source = inputs.self; + environment.systemPackages = [ pkgs.git ]; + nix = { + nixPath = lib.mkForce [ "self=/etc/self/compat" "nixpkgs=/etc/nixpkgs" ]; + registry.self.flake = inputs.self; + registry.nixpkgs.flake = inputs.nixpkgs; + extraOptions = '' + experimental-features = nix-command flakes + ''; }; - # isoImage.volumeID = lib.mkForce "NIXOS_ISO"; + environment.etc.nixpkgs.source = inputs.nixpkgs; + environment.etc.self.source = inputs.self; } \ No newline at end of file diff --git a/machines/NixOS-CT/default.nix b/machines/NixOS-CT/default.nix index 891c8f8..48de522 100644 --- a/machines/NixOS-CT/default.nix +++ b/machines/NixOS-CT/default.nix @@ -57,4 +57,7 @@ prefixLength = 24; }]; }; + + home-manager.users.alukard.home.stateVersion = "21.11"; + system.stateVersion = "21.11"; } diff --git a/patches/zen-kernels.patch b/patches/zen-kernels.patch index 6390dd6..249bc44 100644 --- a/patches/zen-kernels.patch +++ b/patches/zen-kernels.patch @@ -1,17 +1,17 @@ diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix -index 2fc9d8f..a568d83 100644 +index 6ee6c38..ea55339 100644 --- a/pkgs/os-specific/linux/kernel/zen-kernels.nix +++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix @@ -11,9 +11,9 @@ let }; # ./update-zen.py lqx lqxVariant = { -- version = "6.0.7"; #lqx +- version = "6.0.10"; #lqx - suffix = "lqx1"; #lqx -- sha256 = "09h99fdzicbc4kkl51dqwgqqa9416hd7bvrghr4pdjqrw4z15557"; #lqx -+ version = "5.19.17"; #lqx +- sha256 = "0hbak9m4j259xrhbv173axbfzr13r47xqsax7s64ga9688bra1m7"; #lqx ++ version = "6.0.11"; #lqx + suffix = "lqx2"; #lqx -+ sha256 = "11ghnfh37hh4pr09na8as32l4jixvqpwhwf5cia2zsyrd1pw7cb3"; #lqx ++ sha256 = "089mhxfdfi6wv0f2jx3j30y71mrkwrw5k8a7hyga1516j17qxva1"; #lqx isLqx = true; }; zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // { diff --git a/profiles/applications/packages.nix b/profiles/applications/packages.nix index 41b970c..482a0bd 100644 --- a/profiles/applications/packages.nix +++ b/profiles/applications/packages.nix @@ -14,6 +14,7 @@ with config.deviceSpecific; { # git-filter-repo glib.out # gptfdisk + jq kitti3 libqalculate lm_sensors @@ -30,6 +31,7 @@ with config.deviceSpecific; { ripgrep ripgrep-all sd + statix tealdeer # tidal-dl unzip diff --git a/profiles/boot.nix b/profiles/boot.nix index b370404..4bdfa6c 100644 --- a/profiles/boot.nix +++ b/profiles/boot.nix @@ -37,30 +37,33 @@ with config.deviceSpecific; { cleanTmpDir = true; } else if isServer then { - kernelPackages = pkgs.linuxPackages_5_15_hardened; + kernelPackages = pkgs.linuxPackages_hardened; kernelModules = [ "tcp_bbr" ]; - kernelParams = [ "zswap.enabled=0" ]; + kernelParams = [ + "zswap.enabled=0" + "quiet" + "scsi_mod.use_blk_mq=1" + "modeset" + "nofb" + "pti=off" + "spectre_v2=off" + "kvm.ignore_msrs=1" + ]; kernel.sysctl = { - "kernel.sysrq" = 0; - "net.ipv4.icmp_echo_ignore_broadcasts" = 1; - "net.ipv4.icmp_ignore_bogus_error_responses" = 1; - "net.ipv4.conf.default.rp_filter" = 1; - "net.ipv4.conf.all.rp_filter" = 1; - "net.ipv4.tcp_syncookies" = 1; - "net.ipv4.conf.all.accept_redirects" = 0; - "net.ipv4.conf.default.accept_redirects" = 0; - "net.ipv4.conf.all.secure_redirects" = 0; - "net.ipv4.conf.default.secure_redirects" = 0; - "net.ipv6.conf.all.accept_redirects" = 0; - "net.ipv6.conf.default.accept_redirects" = 0; - "net.ipv4.conf.all.send_redirects" = 0; - "net.ipv4.conf.all.accept_source_route" = 0; - "net.ipv6.conf.all.accept_source_route" = 0; - "net.ipv4.tcp_rfc1337" = 1; - "net.ipv4.tcp_fastopen" = 3; - "net.ipv4.tcp_congestion_control" = "bbr"; + "kernel.sysrq" = false; "net.core.default_qdisc" = "cake"; + "net.ipv4.conf.all.accept_source_route" = false; + "net.ipv4.icmp_ignore_bogus_error_responses" = true; + "net.ipv4.tcp_congestion_control" = "bbr"; + "net.ipv4.tcp_fastopen" = 3; + "net.ipv4.tcp_rfc1337" = true; + "net.ipv4.tcp_syncookies" = true; + "net.ipv6.conf.all.accept_source_route" = false; }; + kernel.sysctl = { + "vm.swappiness" = if config.deviceSpecific.isSSD then 1 else 10; + }; + cleanTmpDir = true; } else { kernelPackages = lib.mkForce pkgs.linuxPackages_latest; kernelParams = lib.mkForce [ "zswap.enabled=0" ]; diff --git a/profiles/mullvad.nix b/profiles/mullvad.nix index 5fa3459..3bd5025 100644 --- a/profiles/mullvad.nix +++ b/profiles/mullvad.nix @@ -4,13 +4,8 @@ let in { config = lib.mkIf vpn.enable { services.mullvad-vpn.enable = true; + services.mullvad-vpn.enableExcludeWrapper = true; home-manager.users.alukard.home.packages = [ pkgs.mullvad-vpn ]; startupApplications = [ "${pkgs.mullvad-vpn}/share/mullvad/mullvad-gui" ]; - security.wrappers.mullvad-exclude = { - setuid = true; - owner = "root"; - group = "root"; - source = "${pkgs.mullvad-vpn}/bin/mullvad-exclude"; - }; }; } \ No newline at end of file diff --git a/profiles/nix/default.nix b/profiles/nix/default.nix index b12eb53..ef0c6dc 100644 --- a/profiles/nix/default.nix +++ b/profiles/nix/default.nix @@ -9,8 +9,10 @@ with config.deviceSpecific; { optimise.automatic = true; extraOptions = '' - experimental-features = nix-command flakes builders-use-substitutes = true + experimental-features = nix-command flakes + # Prevent Nix from fetching the registry every time + flake-registry = ${inputs.flake-registry}/flake-registry.json ''; settings = { @@ -21,16 +23,16 @@ with config.deviceSpecific; { "https://nix-community.cachix.org" "https://nixpkgs-wayland.cachix.org" "https://hyprland.cachix.org" - "https://nixos-rocm.cachix.org" - "https://webcord.cachix.org" + # "https://nixos-rocm.cachix.org" + # "https://webcord.cachix.org" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" - "nixos-rocm.cachix.org-1:VEpsf7pRIijjd8csKjFNBGzkBqOmw8H9PRmgAq14LnE=" - "webcord.cachix.org-1:l555jqOZGHd2C9+vS8ccdh8FhqnGe8L78QrHNn+EFEs=" + # "nixos-rocm.cachix.org-1:VEpsf7pRIijjd8csKjFNBGzkBqOmw8H9PRmgAq14LnE=" + # "webcord.cachix.org-1:l555jqOZGHd2C9+vS8ccdh8FhqnGe8L78QrHNn+EFEs=" ]; trusted-users = [ "root" "alukard" "@wheel" ]; }; @@ -41,7 +43,7 @@ with config.deviceSpecific; { maxJobs = 8; sshUser = "alukard"; sshKey = config.secrets.ssh-builder.decrypted; - systems = [ "x86_64-linux" ]; + systems = [ "x86_64-linux" "i686-linux" ]; supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; } ]; diff --git a/profiles/overlay.nix b/profiles/overlay.nix index d14efdd..d357d3d 100644 --- a/profiles/overlay.nix +++ b/profiles/overlay.nix @@ -19,11 +19,11 @@ with lib; { inputs.polymc.overlay # inputs.nixos-rocm.overlay roundcube-plugins - (self: super: + (final: prev: rec { inherit inputs; - android-emulator = self.callPackage ./packages/android-emulator.nix { }; + android-emulator = final.callPackage ./packages/android-emulator.nix { }; arkenfox-userjs = pkgs.callPackage ./packages/arkenfox-userjs.nix { arkenfox-repo = inputs.arkenfox-userjs; }; a2ln = pkgs.callPackage ./packages/a2ln.nix { }; bibata-cursors-tokyonight = pkgs.callPackage ./packages/bibata-cursors-tokyonight.nix { }; @@ -32,6 +32,8 @@ with lib; { kitti3 = pkgs.python3Packages.callPackage ./packages/kitti3.nix { }; microbin = pkgs.callPackage ./packages/microbin-pkg { }; mpris-ctl = pkgs.callPackage ./packages/mpris-ctl.nix { }; + mullvad = master.mullvad; + mullvad-vpn = master.mullvad-vpn; parsec = pkgs.callPackage ./packages/parsec.nix { }; reshade-shaders = pkgs.callPackage ./packages/reshade-shaders.nix { }; rosepine-gtk-theme = pkgs.callPackage ./packages/rosepine-gtk-theme.nix { }; @@ -46,17 +48,20 @@ with lib; { # xray-core = pkgs.callPackage ./packages/xray-core.nix { }; youtube-to-mpv = pkgs.callPackage ./packages/youtube-to-mpv.nix { term = config.defaultApplications.term.cmd; }; vivaldi = master.vivaldi; - # steam = stable.steam.override { - # extraPkgs = pkgs: with pkgs; [ libkrb5 keyutils ]; - # }; + steam = prev.steam.override { + extraPkgs = pkgs: with pkgs; [ mono libkrb5 keyutils ]; + }; waybar = inputs.nixpkgs-wayland.packages.${system}.waybar.overrideAttrs (old: { + preBuildPhase = '' + sed -i 's/zext_workspace_handle_v1_activate(workspace_handle_);/const std::string command = "hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());/g' src/modules/wlr/workspace_manager.cpp + ''; mesonFlags = old.mesonFlags ++ [ "-Dexperimental=true" ]; }); waydroid-script = pkgs.callPackage ./packages/waydroid-script.nix { }; - wine = super.wineWowPackages.staging; - qbittorrent = super.qbittorrent.overrideAttrs (old: rec { + wine = prev.wineWowPackages.staging; + qbittorrent = prev.qbittorrent.overrideAttrs (old: rec { version = "enchanced-edition"; src = inputs.qbittorrent-ee; }); @@ -66,7 +71,11 @@ with lib; { patches = [ ./nix/nix.patch ] ++ oa.patches or [ ]; }); - pass-secret-service = super.pass-secret-service.overrideAttrs (_: { + nix-direnv = inputs.nix-direnv.packages.${system}.default.override { pkgs = final; }; + # For nix-direnv + nixFlakes = final.nix; + + pass-secret-service = prev.pass-secret-service.overrideAttrs (_: { installCheckPhase = null; postInstall = '' mkdir -p $out/share/{dbus-1/services,xdg-desktop-portal/portals} diff --git a/profiles/packages/arkenfox-userjs.nix b/profiles/packages/arkenfox-userjs.nix index 90145a9..158d8d6 100755 --- a/profiles/packages/arkenfox-userjs.nix +++ b/profiles/packages/arkenfox-userjs.nix @@ -1,6 +1,6 @@ { stdenv, lib, arkenfox-repo }: stdenv.mkDerivation { - pname = "arknefox"; + pname = "arkenfox-userjs"; version = "master"; src = arkenfox-repo; diff --git a/profiles/security.nix b/profiles/security.nix index ea58668..24b9f55 100644 --- a/profiles/security.nix +++ b/profiles/security.nix @@ -29,7 +29,7 @@ with config.deviceSpecific; { "video" "wheel" ]; - description = "Dmitriy Kholkin"; + description = "AtaraxiaDev"; uid = 1000; hashedPassword = "$6$kDBGyd99tto$9LjQwixa7NYB9Kaey002MD94zHob1MmNbVz9kx3yX6Q4AmVgsFMGUyNuHozXprxyuXHIbOlTcf8nd4rK8MWfI/"; shell = pkgs.zsh; diff --git a/profiles/services.nix b/profiles/services.nix index 9731fc5..93258cf 100644 --- a/profiles/services.nix +++ b/profiles/services.nix @@ -92,7 +92,7 @@ with config.deviceSpecific; { owner = "alukard"; }; services.seadrive = { - enable = true; + enable = !isServer; settingsFile = config.secrets.seadrive.decrypted; mountPoint = "/media/seadrive"; }; diff --git a/profiles/virtualisation.nix b/profiles/virtualisation.nix index 0e40f72..bd5a550 100644 --- a/profiles/virtualisation.nix +++ b/profiles/virtualisation.nix @@ -16,24 +16,34 @@ with config.deviceSpecific; { virtualisation.oci-containers.backend = "docker"; virtualisation.libvirtd = { - enable = !isServer; + enable = true; qemu = { - # ovmf.enable = true; - runAsRoot = true; - # package = pkgs.qemu; + ovmf.enable = true; + ovmf.packages = [ pkgs.OVMFFull.fd ]; + runAsRoot = false; }; onBoot = "ignore"; onShutdown = "shutdown"; }; - virtualisation.lxd = { - enable = !isContainer; + home-manager.users.alukard = { + home.file.".config/libvirt/libvirt.conf".text = '' + uri_default = "qemu:///system" + ''; + home.packages = with pkgs; [ + docker-compose + virt-manager + ]; + }; + + virtualisation.lxd = lib.mkIf (!isContainer) { + enable = true; zfsSupport = (devInfo.fileSystem == "zfs"); recommendedSysctlSettings = true; }; - virtualisation.lxc = { - enable = !isContainer; - lxcfs.enable = !isContainer; + virtualisation.lxc = lib.mkIf (!isContainer) { + enable = true; + lxcfs.enable = true; systemConfig = '' lxc.lxcpath = /var/lib/lxd/containers ${if devInfo.fileSystem == "zfs" then '' @@ -52,12 +62,7 @@ with config.deviceSpecific; { networking.nat = { enable = true; internalInterfaces = [ "ve-+" ]; + # externalInterface = "enp8s0"; }; - - environment.systemPackages = with pkgs; if isServer then [ - ] else [ - docker-compose - virt-manager - ]; }; } \ No newline at end of file diff --git a/profiles/workspace/git.nix b/profiles/workspace/git.nix index 68c577f..6a5da2a 100644 --- a/profiles/workspace/git.nix +++ b/profiles/workspace/git.nix @@ -3,7 +3,7 @@ programs.git = { enable = true; lfs.enable = true; - userEmail = "AlukardBF@users.noreply.github.com"; + userEmail = "ataraxiadev@ataraxiadev.com"; userName = "Dmitriy Kholkin"; signing = { signByDefault = true; diff --git a/profiles/workspace/hyprland/default.nix b/profiles/workspace/hyprland/default.nix index 7476f9e..01b8836 100644 --- a/profiles/workspace/hyprland/default.nix +++ b/profiles/workspace/hyprland/default.nix @@ -16,6 +16,10 @@ let ${gsettings} set ${gnomeSchema} cursor-theme "$cursor_theme" ${gsettings} set ${gnomeSchema} font-name "$font_name" ''; + + screen-ocr = pkgs.writeShellScriptBin "screen-ocr" '' + ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp) - | ${pkgs.tesseract5}/bin/tesseract -l eng - - | ${pkgs.wl-clipboard}/bin/wl-copy" + ''; in with config.deviceSpecific; with lib; { imports = [ inputs.hyprland.nixosModules.default ]; @@ -92,7 +96,8 @@ in with config.deviceSpecific; with lib; { sensitivity=1 } decoration { - rounding=8 + # rounding=8 + rounding=0 multisample_edges=true active_opacity=0.92 inactive_opacity=0.75 @@ -207,6 +212,7 @@ in with config.deviceSpecific; with lib; { bind=${modifier},x,togglesplit, bind=${modifier},c,changegroupactive,b bind=${modifier},v,changegroupactive,f + bindr=${modifier},insert,exec,${screen-ocr}/bin/screen-ocr bind=${modifier},1,workspace,1 bind=${modifier},2,workspace,2 diff --git a/profiles/workspace/locale.nix b/profiles/workspace/locale.nix index dbc1806..736c9d1 100644 --- a/profiles/workspace/locale.nix +++ b/profiles/workspace/locale.nix @@ -13,7 +13,7 @@ with config.deviceSpecific; { time.timeZone = "Europe/Moscow"; - location = lib.mkIf (!isServer) { + location = { provider = "manual"; latitude = 48.79; longitude = 44.78; diff --git a/profiles/workspace/misc.nix b/profiles/workspace/misc.nix index 417ac6f..cb92237 100644 --- a/profiles/workspace/misc.nix +++ b/profiles/workspace/misc.nix @@ -15,7 +15,6 @@ home-manager.users.alukard = { news.display = "silent"; systemd.user.startServices = true; - home.stateVersion = "21.11"; nixpkgs.config.allowUnfree = true; @@ -35,8 +34,6 @@ }; }; - system.stateVersion = "21.11"; - systemd.services.systemd-timesyncd.wantedBy = [ "multi-user.target" ]; systemd.timers.systemd-timesyncd = { timerConfig.OnCalendar = "hourly"; }; } diff --git a/profiles/workspace/ssh.nix b/profiles/workspace/ssh.nix index f11400c..6c2c9c8 100644 --- a/profiles/workspace/ssh.nix +++ b/profiles/workspace/ssh.nix @@ -15,7 +15,7 @@ with config.deviceSpecific; { ]; secrets.ssh-builder = { - services = []; + permissions = "644"; decrypted = "/root/.ssh/ssh-builder"; }; diff --git a/roles/base.nix b/roles/base.nix index 7236e32..6fd139c 100644 --- a/roles/base.nix +++ b/roles/base.nix @@ -6,7 +6,6 @@ } applications - # auto-run boot devices git @@ -16,12 +15,10 @@ network nix overlay - seadrive secrets secrets-envsubst security ssh - xdg zsh ]; } diff --git a/roles/desktop.nix b/roles/desktop.nix index 72d1f15..51c1c33 100644 --- a/roles/desktop.nix +++ b/roles/desktop.nix @@ -39,16 +39,15 @@ direnv fonts gtk - # i3status-rust kde light mako nix-index print-scan proxy - # sway hyprland waybar + xdg vscode-server ]; diff --git a/roles/workstation.nix b/roles/workstation.nix index b7adad6..f148ec4 100644 --- a/roles/workstation.nix +++ b/roles/workstation.nix @@ -1,5 +1,5 @@ { inputs, ... }: { - imports = with inputs.self.nixosModules; with inputs.self.nixosProfiles; [ - ./desktop.nix + imports = with inputs.self; with inputs.self.nixosProfiles; [ + inputs.self.nixosRoles.desktop ]; } diff --git a/scripts/find-latest-zfs-kernel.py b/scripts/find-latest-zfs-kernel.py index 42482fd..dfa6f72 100755 --- a/scripts/find-latest-zfs-kernel.py +++ b/scripts/find-latest-zfs-kernel.py @@ -15,7 +15,6 @@ if __name__ == "__main__": pattern = re.compile(r"\d\.\d{1,2}") version = pattern.search(line).group(0) major, minor = version.split('.') - if int(minor) > 1: - minor = int(minor) - 1 + minor = int(minor) - 1 version = f"{major}.{minor}" print(version) \ No newline at end of file diff --git a/scripts/gen-patch-zen.sh b/scripts/gen-patch-zen.sh index 3aff225..9dc3341 100755 --- a/scripts/gen-patch-zen.sh +++ b/scripts/gen-patch-zen.sh @@ -6,8 +6,7 @@ kCONFIG="$(pwd)" kNIXPKGS=$(nix flake metadata --json --inputs-from . nixpkgs | jq -r '.path') kMAX_VER=`python $kCONFIG/scripts/find-latest-zfs-kernel.py $kNIXPKGS/pkgs/os-specific/linux/zfs/default.nix` -echo $kMAX_VER -# read -p "> Press any key to continue...1" -n 1 -r +echo "found version: $kMAX_VER" mkdir -p /tmp/nixpkgs/pkgs/os-specific/linux/kernel/ mkdir -p ./patches @@ -18,12 +17,8 @@ git init git add -A git commit -m "temp" -# read -p "> Press any key to continue...2" -n 1 -r - python $kCONFIG/scripts/update-zen.py lqx $kMAX_VER /tmp/nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix -# read -p "> Press any key to continue...3" -n 1 -r - git add -A git diff --cached > $kCONFIG/patches/zen-kernels.patch cd $kCONFIG diff --git a/shell.nix b/shell.nix deleted file mode 100644 index 3f5ce1f..0000000 --- a/shell.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs ? import { } }: -let - rebuild = pkgs.writeShellScriptBin "rebuild" '' - if [[ -z $1 ]]; then - echo "Usage: $(basename $0) {switch|boot|test}" - else - sudo nixos-rebuild $1 --flake . - fi - ''; -in -pkgs.mkShell { - name = "nixflk"; - nativeBuildInputs = with pkgs; [ - git - git-crypt - rebuild - ]; -} diff --git a/todo.md b/todo.md index b7f7144..121fd6a 100644 --- a/todo.md +++ b/todo.md @@ -3,4 +3,18 @@ * config qbittorrent * telegram theme * use theme engine from https://github.com/SenchoPens/senixos -* update waybar \ No newline at end of file +* update waybar + +## Tips: + +* Copy sparse files + +```bash +dd if=srcFile of=dstFile iflag=direct oflag=direct bs=64K conv=sparse +``` + +* swap on zfs zvol (on encrypted dataset only!) + +```bash +zfs create -V 2G -b $(getconf PAGESIZE) -o logbias=throughput -o sync=always -o primarycache=metadata -o secondarycache=none -o com.sun:auto-snapshot=false -o compression=zle zroot/enc/swap +``` \ No newline at end of file