diff options
| -rw-r--r-- | devShells/apo.nix | 2 | ||||
| -rw-r--r-- | devShells/default.nix | 2 | ||||
| -rw-r--r-- | flake.lock | 229 | ||||
| -rw-r--r-- | flake.nix | 3 | ||||
| -rw-r--r-- | nixos/configurations/binky.nix | 4 | ||||
| -rw-r--r-- | nixos/configurations/dribbler.nix | 65 | ||||
| -rw-r--r-- | nixos/configurations/lipwig.nix | 7 | ||||
| -rw-r--r-- | nixos/configurations/ridcully.nix | 45 | ||||
| -rw-r--r-- | nixos/configurations/zd-mox.nix | 1 | ||||
| -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 | 2 | ||||
| -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-- | pkgs/default.nix | 31 | ||||
| -rw-r--r-- | pkgs/docrstfmt/default.nix | 52 | ||||
| -rw-r--r-- | pkgs/dodo/default.nix | 6 | ||||
| -rw-r--r-- | pkgs/python.nix | 6 |
22 files changed, 412 insertions, 147 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": { @@ -59,7 +59,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_8" + "systems": "systems_10" }, "locked": { "lastModified": 1705309234, @@ -115,7 +115,7 @@ "flakepy_3": { "inputs": { "nixpkgs": "nixpkgs_10", - "systems": "systems_6" + "systems": "systems_7" }, "locked": { "lastModified": 1762168435, @@ -152,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": 1769302137, - "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=", + "lastModified": 1774777275, + "narHash": "sha256-qogBiYFq8hZusDPeeKRqzelBAhZvREc7Cl+qlewGUCg=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8", + "rev": "b8f81636927f1af0cca812d22c876bad0a883ccd", "type": "github" }, "original": { @@ -201,6 +242,22 @@ "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": 1761880412, @@ -217,11 +274,11 @@ }, "nixpkgs_11": { "locked": { - "lastModified": 1762095875, - "narHash": "sha256-2W8cwhdw5AILclhYftnUKhJK8q8XUIvNmAQbbF6KCl0=", + "lastModified": 1769433173, + "narHash": "sha256-Gf1dFYgD344WZ3q0LPlRoWaNdNQq8kSBDLEWulRQSEs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a3e67ddfeb2e04ef6ae3fddc8aae678696b08714", + "rev": "13b0f9e6ac78abbbb736c635d87845c4f4bee51b", "type": "github" }, "original": { @@ -243,6 +300,38 @@ "type": "indirect" } }, + "nixpkgs_13": { + "locked": { + "lastModified": 1768564909, + "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_14": { + "locked": { + "lastModified": 1774388614, + "narHash": "sha256-tFwzTI0DdDzovdE9+Ras6CUss0yn8P9XV4Ja6RjA+nU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1073dad219cb244572b74da2b20c7fe39cb3fa9e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1763375004, @@ -259,18 +348,17 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1769514514, - "narHash": "sha256-+thC84TKeMSVWX8enuP4nkBfQLde3g5wBzz1iYsOtRU=", - "owner": "cynerd", + "lastModified": 1774709303, + "narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "72d59847d613b19638c2dd619055f54c91476223", + "rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685", "type": "github" }, "original": { - "owner": "cynerd", - "ref": "patches-nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" } }, "nixpkgs_4": { @@ -303,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": { @@ -345,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": { @@ -377,11 +465,11 @@ }, "personal-secret": { "locked": { - "lastModified": 1768901167, - "narHash": "sha256-Urz5PV+qSvEBKei1Id29US21YCYnkofOKXNjaDfyBzc=", + "lastModified": 1773235164, + "narHash": "sha256-t+F8K0zEKT2wCWUc48155yH5i5/DebXCNTmnrEKUBDg=", "ref": "refs/heads/master", - "rev": "25ac7f6858092e35bc2065720c479d4387547c49", - "revCount": 144, + "rev": "a063151ab272e6c700422cf8f2ab939ff6774da8", + "revCount": 148, "type": "git", "url": "ssh://git@cynerd.cz/nixos-personal-secret" }, @@ -397,11 +485,11 @@ "systems": "systems_4" }, "locked": { - "lastModified": 1765812485, - "narHash": "sha256-yIFDwhCY8SKFMA8w1yzGOdKZwPKgIv7trUOEY9NcNXI=", + "lastModified": 1774445966, + "narHash": "sha256-6PrmBH0qe4j1YQk3dZFsNOu8OFvYn6PbsOjGvYLXcqY=", "owner": "silicon-heaven", "repo": "pyshv", - "rev": "df88e5ab3be598715eec62ae3ab4901b565a22e3", + "rev": "e6d59c5411f9b7820819838683ce99bc9b24083d", "type": "github" }, "original": { @@ -413,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": { @@ -432,14 +521,15 @@ "pyshv_3": { "inputs": { "flakepy": "flakepy_3", - "nixpkgs": "nixpkgs_11" + "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": { @@ -460,7 +550,7 @@ "shellrc": "shellrc", "shvcli": "shvcli", "shvcli-ell": "shvcli-ell", - "systems": "systems_7", + "systems": "systems_9", "usbkey": "usbkey", "vpsadminos": "vpsadminos" } @@ -489,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": { @@ -507,11 +597,11 @@ "shvcli": "shvcli_2" }, "locked": { - "lastModified": 1768558387, - "narHash": "sha256-VQaCAkduLeGid+Uk1gFDRYv7pyTa0lBrTPY9X2qQry4=", + "lastModified": 1770914802, + "narHash": "sha256-4H2J2xywTbGSvF6qGfo2yKGk38jDnLyLIuCex4yRLH4=", "owner": "elektroline-predator", "repo": "shvcli-ell", - "rev": "44b0311d334863e6bad2411b84c933c35ef69d4f", + "rev": "956e5a871ecc5d9a3ff5d62da08176cae5e1b9b9", "type": "gitlab" }, "original": { @@ -525,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": { @@ -553,6 +643,21 @@ "type": "github" } }, + "systems_10": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "systems_2": { "locked": { "lastModified": 1681028828, @@ -647,9 +752,22 @@ "type": "github" }, "original": { + "id": "systems", + "type": "indirect" + } + }, + "systems_9": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" + }, + "original": { + "id": "systems", + "type": "indirect" } }, "usbkey": { @@ -672,12 +790,17 @@ } }, "vpsadminos": { + "inputs": { + "impermanence": "impermanence", + "nixpkgs": "nixpkgs_14", + "nixpkgsUnstable": "nixpkgsUnstable" + }, "locked": { - "lastModified": 1768986148, - "narHash": "sha256-tXcMo11TVlfPh4V+X8vlPKwZ/Ecz9Eb6xMt0EOoLlVE=", + "lastModified": 1774847484, + "narHash": "sha256-+B9RZEtOWH4gjqWavmHs04f1Fjd4Ad/m2a/uqNJYpb4=", "owner": "vpsfreecz", "repo": "vpsadminos", - "rev": "3749bf1435a7188826366b91702070574d3d226f", + "rev": "e7d00c14ff39d4ea709cf77692508aa52f8cab6f", "type": "github" }, "original": { @@ -2,8 +2,7 @@ description = "Cynerd's personal flake"; inputs = { - #nixpkgs.url = "flake:nixpkgs/nixos-unstable"; - nixpkgs.url = "github:cynerd/nixpkgs/patches-nixos-unstable"; + nixpkgs.url = "flake:nixpkgs/nixos-unstable"; nixos-hardware.url = "nixos-hardware"; nixosdeploy.url = "gitlab:cynerd/nixosdeploy"; personal-secret.url = "git+ssh://git@cynerd.cz/nixos-personal-secret"; 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 11e60df..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; ''; }; @@ -275,8 +276,8 @@ license = "agpl3Plus"; }; passwords = pkgs.fetchNextcloudApp { - url = "https://git.mdns.eu/api/v4/projects/45/packages/generic/passwords/2025.12.1/passwords-lsr-81.tar.gz"; - hash = "sha256-mOqyVdQ6rRXrAjoCEz5B0/jx1aiM9TYcPJsuhHFR34w="; + 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/zd-mox.nix b/nixos/configurations/zd-mox.nix index 47319ed..6ce1b6b 100644 --- a/nixos/configurations/zd-mox.nix +++ b/nixos/configurations/zd-mox.nix @@ -22,6 +22,7 @@ in { "70:85:c2:4a:59:f2" = hosts.ridcully; "74:bf:c0:42:82:19" = hosts.printer; "f8:dc:7a:79:00:e6" = hosts.tc; + "34:94:54:33:6b:48" = hosts.vb; }; }; wireguard = true; diff --git a/nixos/modules/desktop.nix b/nixos/modules/desktop.nix index 3d01530..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 @@ -147,7 +149,7 @@ in { inkscape blender tenacity - #kdePackages.kdenlive + kdePackages.kdenlive qrrs # GStreamer @@ -168,9 +170,10 @@ in { # CAD freecad - #kicad + 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; @@ -274,7 +282,7 @@ in { drivers = with pkgs; [ gutenprint gutenprintBin - #cnijfilter2 + cnijfilter2 ]; }; saned.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 b14ac62..6d901e0 100644 --- a/nixos/modules/hosts.nix +++ b/nixos/modules/hosts.nix @@ -36,7 +36,9 @@ 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"; 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/pkgs/default.nix b/pkgs/default.nix index 5150cbb..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,9 +102,18 @@ final: prev: { }; # NixPkgs patches - searxng = prev.searxng.overrideAttrs (oldAttrs: { - pythonRelaxDeps = oldAttrs.pythonRelaxDeps ++ ["markdown-it-py"]; - }); + 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"]; + }; +} |
