diff options
| -rw-r--r-- | devShells/apo.nix | 2 | ||||
| -rw-r--r-- | devShells/default.nix | 2 | ||||
| -rw-r--r-- | flake.lock | 246 | ||||
| -rw-r--r-- | flake.nix | 1 | ||||
| -rw-r--r-- | nixos/configurations/binky.nix | 4 | ||||
| -rw-r--r-- | nixos/configurations/dribbler.nix | 65 | ||||
| -rw-r--r-- | nixos/configurations/lipwig.nix | 9 | ||||
| -rw-r--r-- | nixos/configurations/ridcully.nix | 45 | ||||
| -rw-r--r-- | nixos/configurations/spt-omnia.nix | 1 | ||||
| -rw-r--r-- | nixos/configurations/zd-mox.nix | 4 | ||||
| -rw-r--r-- | nixos/modules/desktop.nix | 67 | ||||
| -rw-r--r-- | nixos/modules/develop.nix | 11 | ||||
| -rw-r--r-- | nixos/modules/gaming.nix | 6 | ||||
| -rw-r--r-- | nixos/modules/hosts.nix | 4 | ||||
| -rw-r--r-- | nixos/modules/openwrtone.nix | 1 | ||||
| -rw-r--r-- | nixos/modules/packages.nix | 2 | ||||
| -rw-r--r-- | nixos/modules/router.nix | 11 | ||||
| -rw-r--r-- | nixos/modules/syncthing.nix | 4 | ||||
| -rw-r--r-- | nixos/modules/users.nix | 2 | ||||
| -rw-r--r-- | nixos/modules/wifi-client.nix | 3 | ||||
| -rw-r--r-- | pkgs/default.nix | 28 | ||||
| -rw-r--r-- | pkgs/docrstfmt/default.nix | 52 | ||||
| -rw-r--r-- | pkgs/dodo/default.nix | 6 | ||||
| -rw-r--r-- | pkgs/python.nix | 6 |
24 files changed, 378 insertions, 204 deletions
diff --git a/devShells/apo.nix b/devShells/apo.nix index 39b890a..0178214 100644 --- a/devShells/apo.nix +++ b/devShells/apo.nix @@ -11,7 +11,7 @@ in pkgs.buildPackages.mkShell { packages = with pkgs; [ qtrvsim - #glibc.static + glibc.static riscvPkgs.buildPackages.gcc pkgsCross.armv7l-hf-multiplatform.buildPackages.gcc pkgsCross.armv7l-hf-multiplatform.glibc.static diff --git a/devShells/default.nix b/devShells/default.nix index 462a791..30a62a1 100644 --- a/devShells/default.nix +++ b/devShells/default.nix @@ -3,5 +3,5 @@ pkgs: rec { #clang = import ./c.nix pkgs [pkgs.clang]; #musl = import ./c.nix pkgs.pkgsMusl; #llvm = import ./c.nix pkgs.pkgsLLVM; - #apo = import ./apo.nix pkgs c; + apo = import ./apo.nix pkgs c; } @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1762618334, - "narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=", + "lastModified": 1770165109, + "narHash": "sha256-9VnK6Oqai65puVJ4WYtCTvlJeXxMzAp/69HhQuTdl/I=", "owner": "ryantm", "repo": "agenix", - "rev": "fcdea223397448d35d9b31f798479227e80183f6", + "rev": "b027ee29d959fda4b60b57566d64c98a202e0feb", "type": "github" }, "original": { @@ -43,26 +43,6 @@ "type": "github" } }, - "ellembimages": { - "inputs": { - "flakepy": "flakepy_3", - "nixpkgs": "nixpkgs_11", - "systems": "systems_7" - }, - "locked": { - "lastModified": 1756395029, - "narHash": "sha256-ULXN3KXUPC+OajMeTkD6dZ7R2F8PoISkPyR/A7CLmss=", - "owner": "elektroline-predator", - "repo": "ellembimages", - "rev": "bb93b86186c0be2f1d96fb379be01eef468381d3", - "type": "gitlab" - }, - "original": { - "owner": "elektroline-predator", - "repo": "ellembimages", - "type": "gitlab" - } - }, "flake-utils": { "locked": { "lastModified": 1678901627, @@ -135,26 +115,7 @@ "flakepy_3": { "inputs": { "nixpkgs": "nixpkgs_10", - "systems": "systems_6" - }, - "locked": { - "lastModified": 1756370037, - "narHash": "sha256-c1FeGRrH80ZwBrIBOUbSOik9b23OmVcTOledPgAyAug=", - "owner": "Cynerd", - "repo": "flakepy", - "rev": "efba745f06b26d48e501be00deadcf4706d85b21", - "type": "gitlab" - }, - "original": { - "owner": "Cynerd", - "repo": "flakepy", - "type": "gitlab" - } - }, - "flakepy_4": { - "inputs": { - "nixpkgs": "nixpkgs_12", - "systems": "systems_8" + "systems": "systems_7" }, "locked": { "lastModified": 1762168435, @@ -191,13 +152,54 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "vpsadminos", + "impermanence", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768598210, + "narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "c47b2cc64a629f8e075de52e4742de688f930dc6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "impermanence": { + "inputs": { + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_13" + }, + "locked": { + "lastModified": 1769548169, + "narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "7b1d382faf603b6d264f58627330f9faa5cba149", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, "nixos-hardware": { "locked": { - "lastModified": 1764440730, - "narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=", + "lastModified": 1774777275, + "narHash": "sha256-qogBiYFq8hZusDPeeKRqzelBAhZvREc7Cl+qlewGUCg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3", + "rev": "b8f81636927f1af0cca812d22c876bad0a883ccd", "type": "github" }, "original": { @@ -240,13 +242,29 @@ "type": "github" } }, + "nixpkgsUnstable": { + "locked": { + "lastModified": 1774709303, + "narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_10": { "locked": { - "lastModified": 1751180975, - "narHash": "sha256-BKk4yDiXr4LdF80OTVqYJ53Q74rOcA/82EClXug8xsY=", + "lastModified": 1761880412, + "narHash": "sha256-QoJjGd4NstnyOG4mm4KXF+weBzA2AH/7gn1Pmpfcb0A=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a48741b083d4f36dd79abd9f760c84da6b4dc0e5", + "rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386", "type": "github" }, "original": { @@ -256,11 +274,11 @@ }, "nixpkgs_11": { "locked": { - "lastModified": 1756288264, - "narHash": "sha256-Om8adB1lfkU7D33VpR+/haZ2gI5r3Q+ZbIPzE5sYnwE=", + "lastModified": 1769433173, + "narHash": "sha256-Gf1dFYgD344WZ3q0LPlRoWaNdNQq8kSBDLEWulRQSEs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ddd1826f294a0ee5fdc198ab72c8306a0ea73aa9", + "rev": "13b0f9e6ac78abbbb736c635d87845c4f4bee51b", "type": "github" }, "original": { @@ -270,11 +288,11 @@ }, "nixpkgs_12": { "locked": { - "lastModified": 1761880412, - "narHash": "sha256-QoJjGd4NstnyOG4mm4KXF+weBzA2AH/7gn1Pmpfcb0A=", + "lastModified": 1707877513, + "narHash": "sha256-sp0w2apswd3wv0sAEF7StOGHkns3XUQaO5erhWFZWXk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386", + "rev": "89653a03e0915e4a872788d10680e7eec92f8600", "type": "github" }, "original": { @@ -284,30 +302,34 @@ }, "nixpkgs_13": { "locked": { - "lastModified": 1762095875, - "narHash": "sha256-2W8cwhdw5AILclhYftnUKhJK8q8XUIvNmAQbbF6KCl0=", - "owner": "NixOS", + "lastModified": 1768564909, + "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "a3e67ddfeb2e04ef6ae3fddc8aae678696b08714", + "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs_14": { "locked": { - "lastModified": 1707877513, - "narHash": "sha256-sp0w2apswd3wv0sAEF7StOGHkns3XUQaO5erhWFZWXk=", + "lastModified": 1774388614, + "narHash": "sha256-tFwzTI0DdDzovdE9+Ras6CUss0yn8P9XV4Ja6RjA+nU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "89653a03e0915e4a872788d10680e7eec92f8600", + "rev": "1073dad219cb244572b74da2b20c7fe39cb3fa9e", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs_2": { @@ -326,11 +348,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1765472234, - "narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", + "lastModified": 1774709303, + "narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", + "rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685", "type": "github" }, "original": { @@ -369,11 +391,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1764081664, - "narHash": "sha256-sUoHmPr/EwXzRMpv1u/kH+dXuvJEyyF2Q7muE+t0EU4=", + "lastModified": 1769433173, + "narHash": "sha256-Gf1dFYgD344WZ3q0LPlRoWaNdNQq8kSBDLEWulRQSEs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dc205f7b4fdb04c8b7877b43edb7b73be7730081", + "rev": "13b0f9e6ac78abbbb736c635d87845c4f4bee51b", "type": "github" }, "original": { @@ -411,11 +433,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1762095875, - "narHash": "sha256-2W8cwhdw5AILclhYftnUKhJK8q8XUIvNmAQbbF6KCl0=", + "lastModified": 1769433173, + "narHash": "sha256-Gf1dFYgD344WZ3q0LPlRoWaNdNQq8kSBDLEWulRQSEs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a3e67ddfeb2e04ef6ae3fddc8aae678696b08714", + "rev": "13b0f9e6ac78abbbb736c635d87845c4f4bee51b", "type": "github" }, "original": { @@ -443,11 +465,11 @@ }, "personal-secret": { "locked": { - "lastModified": 1765793712, - "narHash": "sha256-51X4iiVhS/yz1WRgs8Du2QeZiydpp3YQt3Oua7hN7j4=", + "lastModified": 1773235164, + "narHash": "sha256-t+F8K0zEKT2wCWUc48155yH5i5/DebXCNTmnrEKUBDg=", "ref": "refs/heads/master", - "rev": "a1acdc9edf77f615fd99bf0efa27fcc1516d97ef", - "revCount": 141, + "rev": "a063151ab272e6c700422cf8f2ab939ff6774da8", + "revCount": 148, "type": "git", "url": "ssh://git@cynerd.cz/nixos-personal-secret" }, @@ -463,11 +485,11 @@ "systems": "systems_4" }, "locked": { - "lastModified": 1764161075, - "narHash": "sha256-vF+OxWbyxcoggEnJvYbjDzXiH6yHN5HCPpOeoHa8sGk=", + "lastModified": 1774445966, + "narHash": "sha256-6PrmBH0qe4j1YQk3dZFsNOu8OFvYn6PbsOjGvYLXcqY=", "owner": "silicon-heaven", "repo": "pyshv", - "rev": "bf9cdd1b907d90f49a054ed0db9557eac47f5822", + "rev": "e6d59c5411f9b7820819838683ce99bc9b24083d", "type": "github" }, "original": { @@ -479,14 +501,15 @@ "pyshv_2": { "inputs": { "flakepy": "flakepy_2", - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_9", + "systems": "systems_6" }, "locked": { - "lastModified": 1764159447, - "narHash": "sha256-gORd4FTcvad6jte0nylVyhTbY68hlaxv/W4K0ktJ9KA=", + "lastModified": 1774445966, + "narHash": "sha256-6PrmBH0qe4j1YQk3dZFsNOu8OFvYn6PbsOjGvYLXcqY=", "owner": "silicon-heaven", "repo": "pyshv", - "rev": "b3d713fb25861d149323e99a365f3e74ce2b9415", + "rev": "e6d59c5411f9b7820819838683ce99bc9b24083d", "type": "gitlab" }, "original": { @@ -497,15 +520,16 @@ }, "pyshv_3": { "inputs": { - "flakepy": "flakepy_4", - "nixpkgs": "nixpkgs_13" + "flakepy": "flakepy_3", + "nixpkgs": "nixpkgs_11", + "systems": "systems_8" }, "locked": { - "lastModified": 1764159447, - "narHash": "sha256-gORd4FTcvad6jte0nylVyhTbY68hlaxv/W4K0ktJ9KA=", + "lastModified": 1770201747, + "narHash": "sha256-9zCrizDDVrHr7H5F8WsoKr2h/QSIbPX22+iaf0lej+E=", "owner": "silicon-heaven", "repo": "pyshv", - "rev": "b3d713fb25861d149323e99a365f3e74ce2b9415", + "rev": "c48c92ca4b0a4764aece735ef21dd1ce384693d8", "type": "gitlab" }, "original": { @@ -537,11 +561,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1765193231, - "narHash": "sha256-rpOriWkgFOD3h1N/jPaWKn2B0ZRMPMg/iWXZI9fcs6w=", + "lastModified": 1768810903, + "narHash": "sha256-VqloVMheqXREcy5Z2nxxYtwkgYVsSGCk99MEL7Jmt2w=", "ref": "refs/heads/master", - "rev": "a25793a758a4288c3f4eec39ad9b4309860c6e22", - "revCount": 118, + "rev": "30f01e0671ad7f6646e0d1fc4620d5bc69d39be0", + "revCount": 119, "type": "git", "url": "https://git.cynerd.cz/shellrc" }, @@ -555,11 +579,11 @@ "pyshv": "pyshv_2" }, "locked": { - "lastModified": 1764165304, - "narHash": "sha256-rAvPY/avM6phOp8oPmGK2GFkSXZXUu1p8HuL9ferSUs=", + "lastModified": 1774453854, + "narHash": "sha256-qRHRhlobhm7pyxR2WzaQTqo+BcFSwvyYo4mppjZTBAk=", "owner": "silicon-heaven", "repo": "shvcli", - "rev": "0b2f4350bf62c8daab69a5486da8721d5c3c45d2", + "rev": "6c32308b51405b13161291062e35d9ba9d457455", "type": "github" }, "original": { @@ -570,15 +594,14 @@ }, "shvcli-ell": { "inputs": { - "ellembimages": "ellembimages", "shvcli": "shvcli_2" }, "locked": { - "lastModified": 1764165352, - "narHash": "sha256-1Ulb2hzlhkOTvz3XImBEaY+uO+8c5KWKtsMQkHh1msA=", + "lastModified": 1770914802, + "narHash": "sha256-4H2J2xywTbGSvF6qGfo2yKGk38jDnLyLIuCex4yRLH4=", "owner": "elektroline-predator", "repo": "shvcli-ell", - "rev": "514b356c7ee6b1c5623bd3aba13ea71f54d1d04e", + "rev": "956e5a871ecc5d9a3ff5d62da08176cae5e1b9b9", "type": "gitlab" }, "original": { @@ -592,11 +615,11 @@ "pyshv": "pyshv_3" }, "locked": { - "lastModified": 1764165304, - "narHash": "sha256-rAvPY/avM6phOp8oPmGK2GFkSXZXUu1p8HuL9ferSUs=", + "lastModified": 1770909970, + "narHash": "sha256-wyxffdgZgtq5jL3d9MNu2lip5qh9sUTw+dxu1k/WMCU=", "owner": "silicon-heaven", "repo": "shvcli", - "rev": "0b2f4350bf62c8daab69a5486da8721d5c3c45d2", + "rev": "e68493c79027177faef461ed5fbef355ab9ec0a7", "type": "gitlab" }, "original": { @@ -750,7 +773,7 @@ "usbkey": { "inputs": { "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_14" + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1744029480, @@ -767,12 +790,17 @@ } }, "vpsadminos": { + "inputs": { + "impermanence": "impermanence", + "nixpkgs": "nixpkgs_14", + "nixpkgsUnstable": "nixpkgsUnstable" + }, "locked": { - "lastModified": 1765461733, - "narHash": "sha256-D50YXRtbFBrixVFzLj1jBtTcthMgzWVC0BAKOaIUsG4=", + "lastModified": 1774847484, + "narHash": "sha256-+B9RZEtOWH4gjqWavmHs04f1Fjd4Ad/m2a/uqNJYpb4=", "owner": "vpsfreecz", "repo": "vpsadminos", - "rev": "a93e299f8ca269262646847dc8b57b7e3108f8dd", + "rev": "e7d00c14ff39d4ea709cf77692508aa52f8cab6f", "type": "github" }, "original": { @@ -59,7 +59,6 @@ shellrc.overlays.default pyshv.overlays.default shvcli.overlays.packages - shvcli-ell.inputs.ellembimages.overlays.default shvcli-ell.overlays.packages usbkey.overlays.default ]; diff --git a/nixos/configurations/binky.nix b/nixos/configurations/binky.nix index dba1114..9e3866f 100644 --- a/nixos/configurations/binky.nix +++ b/nixos/configurations/binky.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{ system.stateVersion = "24.05"; nixpkgs.hostPlatform.system = "x86_64-linux"; deploy = { @@ -85,6 +85,4 @@ enable = true; dataDir = "/home/cynerd"; }; - - environment.systemPackages = [pkgs.heroic]; } diff --git a/nixos/configurations/dribbler.nix b/nixos/configurations/dribbler.nix index 306925c..038f455 100644 --- a/nixos/configurations/dribbler.nix +++ b/nixos/configurations/dribbler.nix @@ -14,31 +14,22 @@ boot = { initrd.availableKernelModules = ["nvme" "xhci_pci" "usb_storage" "sd_mod"]; kernelModules = ["kvm-intel"]; + kernelParams = ["video=eDP-1:d"]; # Disable internal display for kodi to use HDMI }; hardware.cpu.intel.updateMicrocode = true; - boot.initrd.luks.devices = { - "encroot".device = "/dev/disk/by-uuid/b317feb5-d68d-4ec3-a24f-0307c116cac8"; + cynerd.autounlock = { + "encroot" = "/dev/disk/by-uuid/f791f524-0552-487b-9bf9-5c20ca78651b"; }; fileSystems = { "/" = { device = "/dev/mapper/encroot"; fsType = "btrfs"; - options = ["compress=lzo" "subvol=@"]; - }; - "/nix" = { - device = "/dev/mapper/encroot"; - fsType = "btrfs"; - options = ["compress=lzo" "subvol=@nix"]; - }; - "/home" = { - device = "/dev/mapper/encroot"; - fsType = "btrfs"; - options = ["compress=lzo" "subvol=@home"]; + options = ["compress=lzo"]; }; "/boot" = { - device = "/dev/disk/by-uuid/8F7D-A154"; + device = "/dev/disk/by-uuid/7143-1EE7"; fsType = "vfat"; }; }; @@ -54,7 +45,7 @@ systemd.network = { networks = { "dhcp" = { - matchConfig.Name = "enp2s0f0"; + matchConfig.Name = "enp1s0"; networkConfig = { DHCP = "yes"; IPv6AcceptRA = "yes"; @@ -62,7 +53,7 @@ linkConfig.RequiredForOnline = "routable"; }; "dhcp-wlan" = { - matchConfig.Name = "wlp3s0"; + matchConfig.Name = "wlp2s0"; networkConfig = { DHCP = "yes"; IPv6AcceptRA = "yes"; @@ -75,12 +66,44 @@ }; # Kodi - nixpkgs.config.kodi.enableAdvancedLauncher = true; - users.extraUsers.kodi.isNormalUser = true; - services.cage = { - user = "kodi"; - program = "${pkgs.kodi-wayland}/bin/kodi-standalone"; + environment.systemPackages = with pkgs; [ + kodi-gbm + ]; + hardware = { + graphics = { + enable = true; + enable32Bit = true; + extraPackages = with pkgs; [ + intel-media-driver + libvdpau-va-gl + ]; + }; + bluetooth.enable = true; + }; + services.pipewire = { enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + security.rtkit.enable = true; + #nixpkgs.config.kodi.enableAdvancedLauncher = true; + users.extraUsers.kodi = { + isNormalUser = true; + extraGroups = ["audio" "video" "input"]; + }; + systemd.services.kodi = { + description = "Kodi standalone (GBM)"; + wantedBy = ["multi-user.target"]; + conflicts = ["getty@tty1.service"]; + serviceConfig = { + User = "kodi"; + TTYPath = "/dev/tty1"; + ExecStart = "${pkgs.kodi-gbm}/bin/kodi-standalone"; + Restart = "on-abort"; + StandardInput = "tty"; + StandardOutput = "journal"; + }; }; networking.firewall = { allowedTCPPorts = [8080]; diff --git a/nixos/configurations/lipwig.nix b/nixos/configurations/lipwig.nix index 0b213ec..556ca5d 100644 --- a/nixos/configurations/lipwig.nix +++ b/nixos/configurations/lipwig.nix @@ -22,6 +22,7 @@ }; wireguard = true; borgjobs = { + # TODO backup influx postgresql.dumpCommand = pkgs.writeScript "postgreqsl-backup.sh" '' /run/wrappers/bin/sudo -u postgres /run/current-system/sw/bin/pg_dumpall ''; @@ -121,7 +122,7 @@ forceSSL = true; useACMEHost = "cynerd.cz"; locations."/".extraConfig = '' - uwsgi_pass "unix:///run/searx/searx.sock"; + uwsgi_pass "unix://${config.services.searx.uwsgiConfig.socket}"; include ${config.services.nginx.package}/conf/uwsgi_params; ''; }; @@ -253,7 +254,7 @@ twofactor_webauthn ; # Additional modules can be fetched with: - # NEXTCLOUD_VERSIONS=31 nix run nixpkgs#nc4nix -- -apps "passwords,money,integration_github,integration_gitlab,fileslibreofficeedit" + # NEXTCLOUD_VERSIONS=32 nix run nixpkgs#nc4nix -- -apps "passwords,money,integration_github,integration_gitlab,fileslibreofficeedit" fileslibreofficeedit = pkgs.fetchNextcloudApp { url = "https://github.com/allotropia/nextcloud_files_libreoffice_edit/releases/download/v2.0.1/fileslibreofficeedit.tar.gz"; hash = "sha256-Xqx5snQWintYJG3Q1Crw22TkNw18DdADXkurMQqt3X8="; @@ -275,8 +276,8 @@ license = "agpl3Plus"; }; passwords = pkgs.fetchNextcloudApp { - url = "https://git.mdns.eu/api/v4/projects/45/packages/generic/passwords/2025.10.0/passwords-lsr-81.tar.gz"; - hash = "sha256-6QKbmm804BN5bANcdH1BbG2oy1nBgnLY5CLidPF44Uk="; + url = "https://git.mdns.eu/api/v4/projects/45/packages/generic/passwords/2026.3.0/passwords.tar.gz"; + hash = "sha256-YHilpFaZHNCtqLRvTCDhyVoFWLC85Qkj1mMxp08YCho="; license = "agpl3Plus"; }; }; diff --git a/nixos/configurations/ridcully.nix b/nixos/configurations/ridcully.nix index 97a0456..9f3ed57 100644 --- a/nixos/configurations/ridcully.nix +++ b/nixos/configurations/ridcully.nix @@ -10,6 +10,9 @@ openvpn = { elektroline = true; }; + borgjobs = { + hetzner-s3.paths = "/back/hetzner-s3-sync"; + }; }; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; @@ -77,8 +80,44 @@ nix.settings.max-jobs = 4; ############################################################################## - services.syncthing = { - enable = true; - dataDir = "/home/cynerd"; + services = { + syncthing = { + enable = true; + dataDir = "/home/cynerd"; + }; + + octoprint = { + enable = true; + openFirewall = true; + }; + + mjpg-streamer = { + enable = true; + inputPlugin = "input_uvc.so -d /dev/video2 -r 1920x1080 -f 30"; + outputPlugin = "output_http.so -p 5001 -w @www@"; + }; + }; + networking.firewall.allowedTCPPorts = [5001]; + + # Service to synchronize local copy of Hetzner S3 + systemd = { + services."hetzner-sync" = { + script = '' + /run/current-system/sw/bin/rclone --config /run/secrets/rclone-hetzner.conf \ + sync hetzner: /back/hetzner-s3-sync + ''; + serviceConfig = { + Type = "oneshot"; + User = "root"; + }; + }; + timers."hetzner-sync" = { + wantedBy = ["timers.target"]; + timerConfig.Unit = "hetzner-sync.service"; + timerConfig = { + OnCalendar = "daily"; + Persistent = false; + }; + }; }; } diff --git a/nixos/configurations/spt-omnia.nix b/nixos/configurations/spt-omnia.nix index c13956b..c2ef049 100644 --- a/nixos/configurations/spt-omnia.nix +++ b/nixos/configurations/spt-omnia.nix @@ -18,7 +18,6 @@ in { "7c:b0:c2:bb:9c:ca" = hosts.albert; "4c:d5:77:0d:85:d9" = hosts.binky; "b8:27:eb:57:a2:31" = hosts.mpd; - "74:bf:c0:42:82:19" = hosts.printer; }; }; wifiAP.spt = { diff --git a/nixos/configurations/zd-mox.nix b/nixos/configurations/zd-mox.nix index bba9010..6ce1b6b 100644 --- a/nixos/configurations/zd-mox.nix +++ b/nixos/configurations/zd-mox.nix @@ -18,9 +18,11 @@ in { wan = "pppoe-wan"; lanIP = hosts.mox; staticLeases = { + "4c:d5:77:0d:85:d9" = hosts.binky; "70:85:c2:4a:59:f2" = hosts.ridcully; + "74:bf:c0:42:82:19" = hosts.printer; "f8:dc:7a:79:00:e6" = hosts.tc; - "4c:d5:77:0d:85:d9" = hosts.binky; + "34:94:54:33:6b:48" = hosts.vb; }; }; wireguard = true; diff --git a/nixos/modules/desktop.nix b/nixos/modules/desktop.nix index 3d8bfb4..c39f9d2 100644 --- a/nixos/modules/desktop.nix +++ b/nixos/modules/desktop.nix @@ -47,6 +47,7 @@ in { waybar swaybackground myswaylock + brightnessctl alacritty nautilus @@ -67,6 +68,7 @@ in { resources isync + davmail msmtp notmuch dodo @@ -102,7 +104,7 @@ in { pulsemixer mpd mpc - ncmpcpp + #ncmpcpp feh shotwell id3lib @@ -146,8 +148,9 @@ in { gimp inkscape blender - #tenacity - #kdePackages.kdenlive + tenacity + kdePackages.kdenlive + qrrs # GStreamer gst_all_1.gstreamer @@ -162,7 +165,6 @@ in { # Writing typst typstyle - typst-live tinymist vale @@ -171,6 +173,7 @@ in { kicad sweethome3d.application qelectrotech + super-slicer ] ++ (optionals cnf.laptop [ # Power management @@ -185,11 +188,9 @@ in { nativeMessagingHosts.packages = with pkgs; [browserpass]; }; - light.enable = mkIf cnf.laptop true; - nix-ld = { enable = true; - libraries = with pkgs; [xorg.libXpm]; + libraries = with pkgs; [libXpm]; }; usbkey = { @@ -204,6 +205,13 @@ in { enable = true; enableSSHSupport = true; enableBrowserSocket = true; + pinentryPackage = pkgs.writeShellScriptBin "pinentry-auto" '' + if [ -n "$WAYLAND_DISPLAY" ] || [ -n "$DISPLAY" ]; then + exec ${pkgs.pinentry-gnome3}/bin/pinentry-gnome3 "$@" + else + exec ${pkgs.pinentry-gnome3}/bin/pinentry-curses "$@" + fi + ''; }; kdeconnect.enable = true; @@ -303,27 +311,30 @@ in { allowedUDPPorts = [3702]; }; - fonts.packages = with pkgs; [ - arkpandora_ttf - corefonts - dejavu_fonts - fira-code - fira-code-symbols - fira-math - fira-mono - fira-sans - font-awesome - freefont_ttf - hack-font - liberation_ttf - libertine - nerd-fonts.hack - noto-fonts - noto-fonts-color-emoji - terminus_font_ttf - ubuntu-classic - unifont - ]; + fonts = { + enableDefaultPackages = true; + packages = with pkgs; [ + arkpandora_ttf + corefonts + dejavu_fonts + fira-code + fira-code-symbols + fira-math + fira-mono + fira-sans + font-awesome + freefont_ttf + hack-font + liberation_ttf + libertine + nerd-fonts.hack + noto-fonts + noto-fonts-color-emoji + terminus_font_ttf + ubuntu-classic + unifont + ]; + }; documentation = { enable = true; diff --git a/nixos/modules/develop.nix b/nixos/modules/develop.nix index bd84a87..587477f 100644 --- a/nixos/modules/develop.nix +++ b/nixos/modules/develop.nix @@ -44,7 +44,7 @@ in { cachix nurl nil - nixfmt-rfc-style + nixfmt alejandra statix deadnix @@ -169,6 +169,9 @@ in { # Images imagemagick + + # S3 + rclone ]; programs.wireshark = { enable = true; @@ -191,6 +194,8 @@ in { SUBSYSTEMS=="usb", ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0105", MODE:="0660", GROUP="develop", SYMLINK+="jlink_%n" SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2111", MODE:="0660", GROUP="develop", SYMLINK+="cmsip_dap_%n" SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ab1", ATTRS{idProduct}=="0e11", MODE:="0660", GROUP="develop" + SUBSYSTEMS=="usb", ATTRS{idVendor}=="303a", ATTRS{idProduct}=="1001", MODE:="0660", GROUP="develop", TAG+="uaccess" + SUBSYSTEMS=="usb", ATTRS{idVendor}=="303a", ATTRS{idProduct}=="1002", MODE:="0660", GROUP="develop", TAG+="uaccess" ''; guix.enable = true; @@ -203,10 +208,6 @@ in { autoPrune.enable = true; storageDriver = "btrfs"; }; - #lxd = { - # enable = true; - # recommendedSysctlSettings = true; - #}; lxc.enable = true; libvirtd.enable = true; spiceUSBRedirection.enable = true; diff --git a/nixos/modules/gaming.nix b/nixos/modules/gaming.nix index 4f957ed..e939bf2 100644 --- a/nixos/modules/gaming.nix +++ b/nixos/modules/gaming.nix @@ -37,7 +37,7 @@ in { extraPkgs = pkgs: with pkgs; [ ncurses - xorg.libXpm + libxpm flac134 libopus ]; @@ -46,7 +46,7 @@ in { extraPkgs = pkgs: with pkgs; [ ncurses - xorg.libXpm + libxpm flac134 # For Nebuchadnezzar libopus SDL @@ -56,7 +56,7 @@ in { SDL_image SDL_mixer SDL_ttf - glew110 + glew_1_10 libdrm libidn tbb diff --git a/nixos/modules/hosts.nix b/nixos/modules/hosts.nix index 81bd844..6d901e0 100644 --- a/nixos/modules/hosts.nix +++ b/nixos/modules/hosts.nix @@ -36,7 +36,10 @@ in { "camera2" = "10.8.0.22"; # Local "ridcully" = "10.8.0.59"; + "dribbler" = "10.8.0.60"; "tc" = "10.8.0.99"; + "vb" = "10.8.0.98"; + "printer" = "10.8.0.90"; # Portable "binky" = "10.8.0.63"; }; @@ -60,7 +63,6 @@ in { # Local "mpd" = "10.8.2.51"; "errol" = "10.8.2.60"; - "printer" = "10.8.2.90"; # Portable "albert" = "10.8.2.61"; "binky" = "10.8.2.63"; diff --git a/nixos/modules/openwrtone.nix b/nixos/modules/openwrtone.nix index 85ddbd2..40c1ed6 100644 --- a/nixos/modules/openwrtone.nix +++ b/nixos/modules/openwrtone.nix @@ -60,7 +60,6 @@ in { kernelParams = [ "fw_devlink=permissive" "clk_ignore_unused" - "pcie_aspm=off" ]; initrd = { diff --git a/nixos/modules/packages.nix b/nixos/modules/packages.nix index f6961af..e97229f 100644 --- a/nixos/modules/packages.nix +++ b/nixos/modules/packages.nix @@ -70,7 +70,7 @@ in { ] ++ optionals isx86_64 [ nmap - #ltrace + ltrace pv screen ] diff --git a/nixos/modules/router.nix b/nixos/modules/router.nix index 01110ae..1c8f4cc 100644 --- a/nixos/modules/router.nix +++ b/nixos/modules/router.nix @@ -178,12 +178,11 @@ in { services.resolved = { enable = true; - #dnssec = "true"; - fallbackDns = ["1.1.1.1" "8.8.8.8"]; - extraConfig = '' - DNSStubListenerExtra=${cnf.lanIP} - DNSStubListenerExtra=192.168.1.1 - ''; + settings.Resolve = { + FallbackDNS = ["1.1.1.1" "8.8.8.8"]; + DNSStubListenerExtra=[cnf.lanIP "192.168.1.1"]; + # TODO possibly enforce DNSSEC again + }; }; }; } diff --git a/nixos/modules/syncthing.nix b/nixos/modules/syncthing.nix index 1148da6..eab61c7 100644 --- a/nixos/modules/syncthing.nix +++ b/nixos/modules/syncthing.nix @@ -58,8 +58,8 @@ in { devices = allDevices; ignorePerms = false; }; - "${baseDir}/pictures" = { - label = "Pictures"; + "${baseDir}/images" = { + label = "Images"; id = "pictures"; devices = bigStorageDevices; ignorePerms = false; diff --git a/nixos/modules/users.nix b/nixos/modules/users.nix index 9c65f8b..24eedb5 100644 --- a/nixos/modules/users.nix +++ b/nixos/modules/users.nix @@ -85,6 +85,8 @@ in { enable = !isArm; defaultEditor = !isArm; withNodeJs = true; + withPython3 = true; + withRuby = true; }; }; diff --git a/nixos/modules/wifi-client.nix b/nixos/modules/wifi-client.nix index b82633d..07eb686 100644 --- a/nixos/modules/wifi-client.nix +++ b/nixos/modules/wifi-client.nix @@ -22,7 +22,8 @@ in { enable = true; networks = config.secrets.wifiNetworks; secretsFile = "/run/secrets/wifi.secrets"; - userControlled.enable = true; + userControlled = true; }; + users.users.cynerd.extraGroups = ["wpa_supplicant"]; }; } diff --git a/pkgs/default.nix b/pkgs/default.nix index 1b6f6f5..2cd621b 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,4 +1,6 @@ final: prev: { + pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [(import ./python.nix)]; + luks-hw-password = final.callPackage ./luks-hw-password {}; dev = final.callPackage ./dev { devShells = import ../devShells final; @@ -22,6 +24,7 @@ final: prev: { dodo = final.callPackage ./dodo {}; elf-size-analyze = final.callPackage ./elf-size-analyze {}; + docstrfmt = final.callPackage ./docrstfmt {}; # OpenWrt One armTrustedFirmwareMT7981 = final.callPackage ./mtk-arm-trusted-firmware rec { @@ -73,19 +76,16 @@ final: prev: { nativeBuildInputs = [final.buildPackages.unixtools.xxd] ++ oldAttrs.nativeBuildInputs; }); linuxOpenWrtOne = final.buildLinux { - version = "6.18.0-rc1"; + version = "6.19.0-rc2"; src = final.buildPackages.fetchgit { - url = "git://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux.git"; - rev = "67ed5843a67b7ba63d79f2ba3fd21bee151d3138"; - hash = "sha256-jXBDVZOAk+/vf55cQWMlV4ZhmSwYucqMOuOGDLxSYis="; + url = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git"; + rev = "b927546677c876e26eba308550207c2ddf812a43"; + hash = "sha256-Ti4No/FUoc2RgHxat908Uy0HnETlnyF/ZAJ4JmxD+jY="; }; kernelPatches = [ { name = "openwrt-one"; - patch = ./linux-openwrt-one-mediatek.patch; - #structuredExtraConfig = with final.lib.kernel; { - # NET_MEDIATEK_SOC = yes; - #}; + patch = ./linux-openwrt-one-6_19.patch; } ]; }; @@ -102,6 +102,18 @@ final: prev: { }; # NixPkgs patches + gnutls = + if prev.stdenv.hostPlatform != prev.stdenv.buildPlatform + then + prev.gnutls.overrideAttrs (oldAttrs: { + configureFlags = oldAttrs.configureFlags ++ ["--disable-doc"]; + outputs = builtins.filter (v: v != "man" && v != "devdoc") oldAttrs.outputs; + }) + else prev.gnutls; + git = + if prev.stdenv.hostPlatform != prev.stdenv.buildPlatform + then prev.git.override {rustSupport = false;} + else prev.git; libcap = if prev.stdenv.hostPlatform != prev.stdenv.buildPlatform then diff --git a/pkgs/docrstfmt/default.nix b/pkgs/docrstfmt/default.nix new file mode 100644 index 0000000..9d2761a --- /dev/null +++ b/pkgs/docrstfmt/default.nix @@ -0,0 +1,52 @@ +{ + lib, + python3, + fetchFromGitHub, +}: +python3.pkgs.buildPythonApplication rec { + pname = "docstrfmt"; + version = "2.0.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "LilSpazJoekp"; + repo = "docstrfmt"; + tag = "v${version}"; + hash = "sha256-DoxRBRCHl/F7nvUiA4+c3DtxggzH9hHtHuoJsyPCA94="; + }; + + build-system = [ + python3.pkgs.flit-core + ]; + + dependencies = with python3.pkgs; [ + black + click + coverage + docutils + libcst + platformdirs + roman + sphinx + tabulate + types-docutils + ]; + + nativeCheckInputs = with python3.pkgs; [ + pytestCheckHook + pytest-aiohttp + ]; + + pythonImportsCheck = [ + "docstrfmt" + ]; + + meta = { + description = "Formatter for reStructuredText"; + homepage = "https://github.com/LilSpazJoekp/docstrfmt"; + changelog = "https://github.com/LilSpazJoekp/docstrfmt/blob/${src.tag}/CHANGES.rst"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [doronbehar]; + mainProgram = "docstrfmt"; + }; +} diff --git a/pkgs/dodo/default.nix b/pkgs/dodo/default.nix index 242f4a4..627635e 100644 --- a/pkgs/dodo/default.nix +++ b/pkgs/dodo/default.nix @@ -6,14 +6,14 @@ }: python3Packages.buildPythonApplication { pname = "dodo"; - version = "250806"; + version = "20250926"; pyproject = true; src = fetchFromGitHub { owner = "akissinger"; repo = "dodo"; - rev = "bcb0db840f6eb0223f99e9ddefe147d84f50dc98"; - hash = "sha256-ScMzSz6HzSUHE5jOrXvcMaokQILaXJV58k87SXujaXg="; + rev = "a710d0a3fe78d5bf4b3d07ea087712d3581e5a85"; + hash = "sha256-IylZCG/7egGA7IBfSIMwmSbJVRv5cMWEtiIyds720Sw="; }; build-system = with python3Packages; [ diff --git a/pkgs/python.nix b/pkgs/python.nix new file mode 100644 index 0000000..b1a76fd --- /dev/null +++ b/pkgs/python.nix @@ -0,0 +1,6 @@ +_: prev: { + # NixPkgs patches + sphinx-book-theme = prev.sphinx-book-theme.overrideAttrs { + pythonRelaxDeps = ["pydata-sphinx-theme"]; + }; +} |
