aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devShells/apo.nix2
-rw-r--r--devShells/default.nix2
-rw-r--r--flake.lock229
-rw-r--r--flake.nix3
-rw-r--r--nixos/configurations/binky.nix4
-rw-r--r--nixos/configurations/dribbler.nix65
-rw-r--r--nixos/configurations/lipwig.nix7
-rw-r--r--nixos/configurations/ridcully.nix45
-rw-r--r--nixos/configurations/zd-mox.nix1
-rw-r--r--nixos/modules/desktop.nix67
-rw-r--r--nixos/modules/develop.nix11
-rw-r--r--nixos/modules/gaming.nix6
-rw-r--r--nixos/modules/hosts.nix2
-rw-r--r--nixos/modules/openwrtone.nix1
-rw-r--r--nixos/modules/packages.nix2
-rw-r--r--nixos/modules/router.nix11
-rw-r--r--nixos/modules/syncthing.nix4
-rw-r--r--nixos/modules/users.nix2
-rw-r--r--pkgs/default.nix31
-rw-r--r--pkgs/docrstfmt/default.nix52
-rw-r--r--pkgs/dodo/default.nix6
-rw-r--r--pkgs/python.nix6
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;
}
diff --git a/flake.lock b/flake.lock
index 2fca0e5..f43eb7f 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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": {
diff --git a/flake.nix b/flake.nix
index 4072fcf..6e35ccf 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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"];
+ };
+}