From e6a35ee75628e0a94a247305cd8b20cb203326e9 Mon Sep 17 00:00:00 2001 From: Sebastian Moser Date: Tue, 17 Feb 2026 22:30:17 +0100 Subject: [PATCH] stuff --- common/all.nix | 9 +- common/nixos-wayland.nix | 107 +- common/nixos.nix | 6 +- flake.lock | 1198 +++++++++++------ flake.nix | 108 +- hosts/fasu.nix | 15 + hosts/fe.nix | 19 +- hosts/fusu.nix | 23 +- hosts/ki.nix | 29 + hosts/lush.nix | 26 + hosts/mac.nix | 108 +- hosts/main.nix | 176 ++- hosts/te.nix | 2 +- hosts/ti.nix | 45 +- log | 933 ++++++++++--- misc/my-hosts | 1 + misc/my-hosts-me | 3 - misc/my-hosts-t | 2 + mods/fesu-hosting-base.nix | 78 ++ mods/fesu-services.nix | 440 ++++++ mods/fusu-services.nix | 30 +- mods/nix-on-droid-base-module.nix | 28 + mods/nix-on-droid-pkgs.nix | 83 ++ mods/nurPkgs/vcs-cli-utils.nix | 2 +- mybin/ru | 4 +- .../affin-edgeless-right-click-drag.patch | 22 + programs/bash.nix | 25 +- programs/lf/default.nix | 15 +- programs/neovim.nix | 14 + programs/ssh.nix | 23 + programs/thunderbird.nix | 18 +- random-pkgs.nix | 5 + users/common/home.nix | 12 +- users/me/gui-home.nix | 26 +- 34 files changed, 2839 insertions(+), 796 deletions(-) delete mode 100644 misc/my-hosts-me create mode 100644 mods/fesu-hosting-base.nix create mode 100644 mods/fesu-services.nix create mode 100644 mods/nix-on-droid-base-module.nix create mode 100644 mods/nix-on-droid-pkgs.nix create mode 100644 overlays/patches/affin-edgeless-right-click-drag.patch diff --git a/common/all.nix b/common/all.nix index d7acd87..1edce2c 100644 --- a/common/all.nix +++ b/common/all.nix @@ -13,7 +13,7 @@ programs.dconf.enable = true; # set root user pwd - users.users.root.password = "changeme"; + #users.users.root.password = "changeme"; # Set your time zone. time.timeZone = "Europe/Vienna"; @@ -40,6 +40,13 @@ services.openssh.settings.GatewayPorts = "clientspecified"; + # add extre nix registries + nix.registry = { + ni.flake = inputs.nixpkgs; + nu.flake = inputs.nixpkgs-unstable; + me.flake = self; + }; + # This value determines the NixOS release from which the default diff --git a/common/nixos-wayland.nix b/common/nixos-wayland.nix index 8d2ccd0..eb5e650 100644 --- a/common/nixos-wayland.nix +++ b/common/nixos-wayland.nix @@ -8,12 +8,14 @@ # - win + D command # - kernel output for luks pwd on all displays -{ lib, pkgs, nur, unstable, ... }: +{ lib, pkgs, nur, unstable, inputs, ... }: let + newerUnstableSrc = builtins.getFlake "nixpkgs/d0fc30899600b9b3466ddb260fd83deb486c32f1"; newerUnstable = import newerUnstableSrc.outPath {}; - mySway = newerUnstable.sway.override { + mySway = newerUnstable.sway; + myOtherSway = newerUnstable.sway.override { sway-unwrapped = (newerUnstable.sway-unwrapped.overrideAttrs (prev: { /* src = pkgs.fetchFromGitHub { @@ -31,13 +33,15 @@ let }; })).override { wlroots = newerUnstable.wlroots.overrideAttrs (prev: { + nativeBuildInputs = prev.nativeBuildInputs ++ [ pkgs.cmake pkgs.libdrm pkgs.pkg-config pkgs.wayland ]; + buildInputs = prev.nativeBuildInputs ++ [ pkgs.cmake pkgs.libdrm pkgs.pkg-config pkgs.wayland ]; version = "master"; src = pkgs.fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "wlroots"; repo = "wlroots"; - rev = "master"; - sha256 = "sha256-2FK6FGRpgf/YYqwJST0LVA/pnNRSUDrfrrp6mSwA0Fk="; + rev = "2c64b30a6750d5e585c00c4c116f415bac33d18f"; + sha256 = "sha256-Hxf3xVJddSlSHytYJNNq7f2oQdiSXp0tmK1FepRpqaA="; }; }); @@ -45,6 +49,10 @@ let }; in { + # aparently also needed for wayland... or not idk + services.xserver.xkb.layout = "de"; + + services.greetd = { enable = true; settings = rec { @@ -123,42 +131,17 @@ in { services.blueman.enable = true; hardware.bluetooth.enable = true; - # fix bluetooth-3-0-keyboard not reporting left and right cmd seperately (and remapping the other things the way i want them) - services.udev.extraHwdb = '' - evdev:input:b0005v05AC* - KEYBOARD_KEY_700e3=leftctrl - KEYBOARD_KEY_700e7=rightalt - KEYBOARD_KEY_700e2=leftmeta - KEYBOARD_KEY_700e0=leftalt - ''; - - services.keyd = { - enable = true; - /* - keyboards.bluetooth-3-0-keyboard = { - ids = [ "05ac:0255:f22563e9" ]; - settings.main = { - leftalt = "meta"; - leftcontrol = "leftalt"; - }; - }; - */ - #keyboards.default.ids = [ "-05ac:0255" ]; completely disables my rebinding...... hmmmm - keyboards.default.settings = { - main = { - leftalt = "leftcontrol"; - leftcontrol = "leftalt"; - }; - }; - }; environment.systemPackages = with pkgs; [ # flameshot where clipboard works with wayland + # i am not even using flameshot anymore.... + /* (flameshot.overrideAttrs (prev: { nativeBuildInputs = prev.nativeBuildInputs or [] ++ [ libsForQt5.kguiaddons ]; cmakeFlags = prev.nativeBuildInputs or [] ++ [ "-DUSE_WAYLAND_CLIPBOARD=true" "-DUSE_WAYLAND_GRIM=ON" ]; patches = prev.patches or [] ++ [ ../overlays/patches/flameshot-wayland.patch ]; })) + */ hyprpicker satty @@ -187,7 +170,7 @@ in { xdg-desktop-portal wlr-randr - rofi-wayland + rofi wev wl-clipboard zoxide @@ -275,27 +258,35 @@ in { output * scale 1 bg #121212 solid_color #################### from nwg-display - # Generated by nwg-displays on 2025-09-18 at 21:21:58. Do not edit manually. +# Generated by nwg-displays on 2025-10-20 at 18:16:29. Do not edit manually. - output "eDP-1" { - mode 1920x1080@60.001Hz - pos 0 1888 - transform normal - scale 1.0 - scale_filter nearest - adaptive_sync off - dpms on - } - output "DP-1" { - mode 3840x2160@59.997Hz - pos 1920 0 - transform normal - scale 1.0 - scale_filter nearest - adaptive_sync off - dpms on - } - output "DP-2" disable +output "DP-1" { + mode 3840x2160@59.997Hz + pos 3840 0 + transform normal + scale 1.0 + scale_filter nearest + adaptive_sync off + dpms on +} +output "eDP-1" { + mode 1920x1080@60.001Hz + pos 1920 1080 + transform normal + scale 1.0 + scale_filter nearest + adaptive_sync off + dpms on +} +output "HDMI-A-1" { + mode 1920x1080@60.0Hz + pos 0 1080 + transform normal + scale 1.0 + scale_filter nearest + adaptive_sync off + dpms on +} #################### end from nwg-display set $disp2 "DP-1" @@ -329,6 +320,10 @@ in { pointer_accel -0.5 } + # the lan-mouse input + #input 0:0:wlr_virtual_pointer_v1 { + #} + ### Border colors and looks client.focused #ff4060 #222222 #ff4060 #ff4060 #ff4060 client.focused_inactive #222222 #222222 #ff4060 #222222 #222222 @@ -342,6 +337,7 @@ in { #exec "/usr/bin/env bash ${./..}/scripts/idlescript" # Manages suspending and locking exec ${pkgs.bash}/bin/bash ${./..}/scripts/batteryscript.sh # Sends battery notifications when necessary + exec tmux # create a tmux session in which one can run commands that need WAYLAND_DISPLAY set exec nm-applet # Networkmanager applet exec blueman-applet # Bluetoothmanager applet exec blueman-tray # Bluetoothmanager tray icon @@ -463,6 +459,7 @@ in { # the sticky workspaces, that are the same in all workrooms bindsym $mod+1 workspace number 1 + bindsym $mod+4 workspace number 4 bindsym $mod+7 workspace number 7 bindsym $mod+8 workspace number 8 bindsym $mod+9 workspace number 9 @@ -470,6 +467,7 @@ in { bindsym $mod+Shift+1 move container to workspace number 1 + bindsym $mod+Shift+4 move container to workspace number 4 bindsym $mod+Shift+7 move container to workspace number 7 bindsym $mod+Shift+8 move container to workspace number 8 bindsym $mod+Shift+9 move container to workspace number 9 @@ -478,6 +476,7 @@ in { # default display outputs for workspaces with fallback to disp1 workspace 1 output $disp2 $disp1 workspace 6 output $disp2 $disp1 + workspace 4 output $disp2 $disp1 workspace 8 output $disp2 $disp1 workspace 9 output $disp2 $disp1 workspace 7 output eDP-1 @@ -493,14 +492,12 @@ in { # nav to workspaces in workrooms bindsym $mod+2 set $$workspace 2; workspace $$workroom$$workspace bindsym $mod+3 set $$workspace 3; workspace $$workroom$$workspace - bindsym $mod+4 set $$workspace 4; workspace $$workroom$$workspace bindsym $mod+5 set $$workspace 5; workspace $$workroom$$workspace bindsym $mod+6 set $$workspace 6; workspace $$workroom$$workspace # move windows to workspaces in workrooms bindsym $mod+Shift+2 set $$tmp-workspace 2; move container to workspace $$workroom$$tmp-workspace bindsym $mod+Shift+3 set $$tmp-workspace 3; move container to workspace $$workroom$$tmp-workspace - bindsym $mod+Shift+4 set $$tmp-workspace 4; move container to workspace $$workroom$$tmp-workspace bindsym $mod+Shift+5 set $$tmp-workspace 5; move container to workspace $$workroom$$tmp-workspace bindsym $mod+Shift+6 set $$tmp-workspace 6; move container to workspace $$workroom$$tmp-workspace diff --git a/common/nixos.nix b/common/nixos.nix index 8638ec8..5e70e21 100644 --- a/common/nixos.nix +++ b/common/nixos.nix @@ -4,7 +4,7 @@ # excluding for example my phone phone { - system.stateVersion = "23.05"; # Did you read the comment? + ##system.stateVersion = "23.05"; # Did you read the comment? # Select internationalisation properties. @@ -24,11 +24,7 @@ # the hosts file networking.extraHosts = '' ${builtins.readFile "${self}/misc/my-hosts"} - ${builtins.readFile "${self}/misc/my-hosts-me"} ${builtins.readFile "${self}/misc/my-hosts-t"} ''; - - environment.etc.current_hosts.text = builtins.readFile "${self}/misc/my-hosts-me"; - environment.etc.current_hosts.mode = "rw"; } diff --git a/flake.lock b/flake.lock index 3274d21..de30291 100644 --- a/flake.lock +++ b/flake.lock @@ -3,8 +3,8 @@ "androidPkgs": { "inputs": { "devshell": "devshell", - "flake-utils": "flake-utils_5", - "nixpkgs": "nixpkgs_9" + "flake-utils": "flake-utils_6", + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1638562808, @@ -24,8 +24,8 @@ "androidPkgs_2": { "inputs": { "devshell": "devshell_2", - "flake-utils": "flake-utils_12", - "nixpkgs": "nixpkgs_16" + "flake-utils": "flake-utils_13", + "nixpkgs": "nixpkgs_17" }, "locked": { "lastModified": 1638562808, @@ -45,8 +45,8 @@ "androidPkgs_3": { "inputs": { "devshell": "devshell_3", - "flake-utils": "flake-utils_19", - "nixpkgs": "nixpkgs_23" + "flake-utils": "flake-utils_20", + "nixpkgs": "nixpkgs_24" }, "locked": { "lastModified": 1638562808, @@ -66,8 +66,8 @@ "androidPkgs_4": { "inputs": { "devshell": "devshell_4", - "flake-utils": "flake-utils_26", - "nixpkgs": "nixpkgs_31" + "flake-utils": "flake-utils_27", + "nixpkgs": "nixpkgs_32" }, "locked": { "lastModified": 1638562808, @@ -110,7 +110,7 @@ "inputs": { "firefox": "firefox_2", "firefox-addons": "firefox-addons_2", - "flake-utils": "flake-utils_8", + "flake-utils": "flake-utils_9", "home-manager": "home-manager_2", "home-manager-old": "home-manager-old_2", "networkmanager": "networkmanager_2", @@ -120,14 +120,14 @@ "nix-wsl": "nix-wsl_2", "nixos-generators": "nixos-generators_2", "nixos-hardware": "nixos-hardware_2", - "nixpkgs": "nixpkgs_14", - "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_4", + "nixpkgs": "nixpkgs_15", + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_3", "nixpkgs-old": "nixpkgs-old_2", "nixpkgs-unstable": "nixpkgs-unstable_2", "nur": "nur_2", "podman": "podman_2", "robotnix": "robotnix_2", - "systems": "systems_9", + "systems": "systems_11", "victorinix": "victorinix_2", "vscode-server": "vscode-server", "waveforms": "waveforms", @@ -152,7 +152,7 @@ "inputs": { "firefox": "firefox_3", "firefox-addons": "firefox-addons_3", - "flake-utils": "flake-utils_15", + "flake-utils": "flake-utils_16", "home-manager": "home-manager_3", "networkmanager": "networkmanager_3", "nix-doom-emacs": "nix-doom-emacs_3", @@ -161,13 +161,13 @@ "nix-wsl": "nix-wsl_3", "nixos-generators": "nixos-generators_3", "nixos-hardware": "nixos-hardware_3", - "nixpkgs": "nixpkgs_21", - "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_6", + "nixpkgs": "nixpkgs_22", + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_5", "nixpkgs-unstable": "nixpkgs-unstable_3", "nur": "nur_3", "podman": "podman_3", "robotnix": "robotnix_3", - "systems": "systems_14", + "systems": "systems_16", "victorinix": "victorinix_3" }, "locked": { @@ -188,7 +188,7 @@ "inputs": { "firefox": "firefox_4", "firefox-addons": "firefox-addons_4", - "flake-utils": "flake-utils_22", + "flake-utils": "flake-utils_23", "home-manager": "home-manager_4", "my-log": "my-log", "networkmanager": "networkmanager_4", @@ -198,12 +198,12 @@ "nix-wsl": "nix-wsl_4", "nixos-generators": "nixos-generators_4", "nixos-hardware": "nixos-hardware_4", - "nixpkgs": "nixpkgs_29", - "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_8", + "nixpkgs": "nixpkgs_30", + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_7", "nixpkgs-unstable": "nixpkgs-unstable_4", "podman": "podman_4", "robotnix": "robotnix_4", - "systems": "systems_19" + "systems": "systems_21" }, "locked": { "lastModified": 1714075757, @@ -267,6 +267,28 @@ "type": "github" } }, + "compass": { + "inputs": { + "el_std_py": "el_std_py", + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1759876152, + "narHash": "sha256-CLSrenEW9/2E3tSZ3gpU+NDJHClKeSxXINvdi8z76bA=", + "owner": "ppc-social", + "repo": "compass", + "rev": "db986834992fa4314e316d0fbdbcc777e31e4a25", + "type": "github" + }, + "original": { + "owner": "ppc-social", + "repo": "compass", + "type": "github" + } + }, "crane": { "inputs": { "nixpkgs": [ @@ -305,6 +327,21 @@ "type": "github" } }, + "crane_3": { + "locked": { + "lastModified": 1765145449, + "narHash": "sha256-aBVHGWWRzSpfL++LubA0CwOOQ64WNLegrYHwsVuVN7A=", + "owner": "ipetkov", + "repo": "crane", + "rev": "69f538cdce5955fcd47abfed4395dc6d5194c1c5", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "devshell": { "locked": { "lastModified": 1637575296, @@ -516,6 +553,50 @@ "type": "github" } }, + "el_std_py": { + "inputs": { + "flake-utils": [ + "compass", + "flake-utils" + ], + "nixpkgs": [ + "compass", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1759849902, + "narHash": "sha256-XLZW65zA3n/Umlk+zeWJqu8aCIQUj12LPhCoRMQtlu8=", + "owner": "melektron", + "repo": "el_std_py", + "rev": "8b4c337b419a00244366836cc060442f2802213a", + "type": "github" + }, + "original": { + "owner": "melektron", + "repo": "el_std_py", + "type": "github" + } + }, + "elephant": { + "inputs": { + "nixpkgs": "nixpkgs_2", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1767428760, + "narHash": "sha256-crwgIp7kVMNbkziJmSJlmakX5N57fwe1XW1iU/u4Rk4=", + "owner": "abenz1267", + "repo": "elephant", + "rev": "946019db9183593af2c14d56924000d519e1f8d4", + "type": "github" + }, + "original": { + "owner": "abenz1267", + "repo": "elephant", + "type": "github" + } + }, "emacs-overlay": { "flake": false, "locked": { @@ -1018,7 +1099,7 @@ "inputs": { "flake-compat": "flake-compat", "lib-aggregate": "lib-aggregate", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1759062765, @@ -1058,7 +1139,7 @@ }, "firefox-addons_2": { "inputs": { - "flake-utils": "flake-utils_7", + "flake-utils": "flake-utils_8", "nixpkgs": [ "victorinix", "c2vi-config", @@ -1083,7 +1164,7 @@ }, "firefox-addons_3": { "inputs": { - "flake-utils": "flake-utils_14", + "flake-utils": "flake-utils_15", "nixpkgs": [ "victorinix", "c2vi-config", @@ -1110,7 +1191,7 @@ }, "firefox-addons_4": { "inputs": { - "flake-utils": "flake-utils_21", + "flake-utils": "flake-utils_22", "nixpkgs": [ "victorinix", "c2vi-config", @@ -1143,7 +1224,7 @@ "flake-compat": "flake-compat_4", "lib-aggregate": "lib-aggregate_2", "mozilla": "mozilla", - "nixpkgs": "nixpkgs_11" + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1729272011, @@ -1165,7 +1246,7 @@ "flake-compat": "flake-compat_7", "lib-aggregate": "lib-aggregate_3", "mozilla": "mozilla_2", - "nixpkgs": "nixpkgs_18" + "nixpkgs": "nixpkgs_19" }, "locked": { "lastModified": 1714587578, @@ -1187,7 +1268,7 @@ "flake-compat": "flake-compat_10", "lib-aggregate": "lib-aggregate_4", "mozilla": "mozilla_3", - "nixpkgs": "nixpkgs_25" + "nixpkgs": "nixpkgs_26" }, "locked": { "lastModified": 1714047754, @@ -1281,6 +1362,21 @@ "type": "github" } }, + "flake-compat_14": { + "locked": { + "lastModified": 1765121682, + "narHash": "sha256-4VBOP18BFeiPkyhy9o4ssBNQEvfvv1kXkasAYd0+rrA=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "65f23138d8d09a92e30f1e5c87611b23ef451bf3", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-compat_2": { "flake": false, "locked": { @@ -1469,106 +1565,7 @@ }, "flake-utils_10": { "inputs": { - "systems": "systems_8" - }, - "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_11": { - "locked": { - "lastModified": 1610051610, - "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_12": { - "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_13": { - "inputs": { - "systems": "systems_10" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_14": { - "locked": { - "lastModified": 1629284811, - "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_15": { - "inputs": { - "systems": "systems_11" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_16": { - "inputs": { - "systems": "systems_12" + "systems": "systems_9" }, "locked": { "lastModified": 1694529238, @@ -1584,7 +1581,88 @@ "type": "github" } }, - "flake-utils_17": { + "flake-utils_11": { + "inputs": { + "systems": "systems_10" + }, + "locked": { + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_12": { + "locked": { + "lastModified": 1610051610, + "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_13": { + "locked": { + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_14": { + "inputs": { + "systems": "systems_12" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_15": { + "locked": { + "lastModified": 1629284811, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_16": { "inputs": { "systems": "systems_13" }, @@ -1602,46 +1680,16 @@ "type": "github" } }, - "flake-utils_18": { - "locked": { - "lastModified": 1610051610, - "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_19": { - "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { + "flake-utils_17": { "inputs": { - "systems": "systems_2" + "systems": "systems_14" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", "type": "github" }, "original": { @@ -1650,7 +1698,7 @@ "type": "github" } }, - "flake-utils_20": { + "flake-utils_18": { "inputs": { "systems": "systems_15" }, @@ -1668,13 +1716,13 @@ "type": "github" } }, - "flake-utils_21": { + "flake-utils_19": { "locked": { - "lastModified": 1629284811, - "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "lastModified": 1610051610, + "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", "owner": "numtide", "repo": "flake-utils", - "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", + "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", "type": "github" }, "original": { @@ -1683,9 +1731,42 @@ "type": "github" } }, - "flake-utils_22": { + "flake-utils_2": { "inputs": { - "systems": "systems_16" + "systems": "systems_3" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_20": { + "locked": { + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_21": { + "inputs": { + "systems": "systems_17" }, "locked": { "lastModified": 1710146030, @@ -1701,16 +1782,13 @@ "type": "github" } }, - "flake-utils_23": { - "inputs": { - "systems": "systems_17" - }, + "flake-utils_22": { "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1629284811, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", "type": "github" }, "original": { @@ -1719,7 +1797,7 @@ "type": "github" } }, - "flake-utils_24": { + "flake-utils_23": { "inputs": { "systems": "systems_18" }, @@ -1737,37 +1815,25 @@ "type": "github" } }, + "flake-utils_24": { + "inputs": { + "systems": "systems_19" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flake-utils_25": { - "locked": { - "lastModified": 1610051610, - "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_26": { - "locked": { - "lastModified": 1638122382, - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_27": { "inputs": { "systems": "systems_20" }, @@ -1785,9 +1851,39 @@ "type": "github" } }, + "flake-utils_26": { + "locked": { + "lastModified": 1610051610, + "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_27": { + "locked": { + "lastModified": 1638122382, + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flake-utils_28": { "inputs": { - "systems": "systems_21" + "systems": "systems_22" }, "locked": { "lastModified": 1710146030, @@ -1805,14 +1901,14 @@ }, "flake-utils_29": { "inputs": { - "systems": "systems_22" + "systems": "systems_23" }, "locked": { - "lastModified": 1681202837, - "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -1823,25 +1919,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_3" - }, - "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_30": { - "inputs": { - "systems": "systems_23" + "systems": "systems_4" }, "locked": { "lastModified": 1731533236, @@ -1857,7 +1935,7 @@ "type": "github" } }, - "flake-utils_31": { + "flake-utils_30": { "inputs": { "systems": "systems_24" }, @@ -1875,7 +1953,61 @@ "type": "github" } }, + "flake-utils_31": { + "inputs": { + "systems": "systems_25" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_32": { + "inputs": { + "systems": "systems_26" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "flake-utils_4": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { "locked": { "lastModified": 1610051610, "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", @@ -1890,7 +2022,7 @@ "type": "github" } }, - "flake-utils_5": { + "flake-utils_6": { "locked": { "lastModified": 1638122382, "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", @@ -1905,9 +2037,9 @@ "type": "github" } }, - "flake-utils_6": { + "flake-utils_7": { "inputs": { - "systems": "systems_5" + "systems": "systems_7" }, "locked": { "lastModified": 1726560853, @@ -1923,7 +2055,7 @@ "type": "github" } }, - "flake-utils_7": { + "flake-utils_8": { "locked": { "lastModified": 1629284811, "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", @@ -1938,9 +2070,9 @@ "type": "github" } }, - "flake-utils_8": { + "flake-utils_9": { "inputs": { - "systems": "systems_6" + "systems": "systems_8" }, "locked": { "lastModified": 1726560853, @@ -1956,24 +2088,6 @@ "type": "github" } }, - "flake-utils_9": { - "inputs": { - "systems": "systems_7" - }, - "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "format-all": { "flake": false, "locked": { @@ -2058,6 +2172,22 @@ "type": "github" } }, + "hetzner_ddns": { + "flake": false, + "locked": { + "lastModified": 1769209232, + "narHash": "sha256-4WznXmqTJMUt2d5VjFl2IxDaQWv626QtjVhfEt+6hXE=", + "owner": "c2vi", + "repo": "hetzner_ddns", + "rev": "2a9384e9805f5066428dc50bfa7989c77bdb6bad", + "type": "github" + }, + "original": { + "owner": "c2vi", + "repo": "hetzner_ddns", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -2200,7 +2330,7 @@ }, "lan-mouse": { "inputs": { - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "rust-overlay": "rust-overlay" }, "locked": { @@ -2219,7 +2349,7 @@ }, "lib-aggregate": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "nixpkgs-lib": "nixpkgs-lib" }, "locked": { @@ -2238,7 +2368,7 @@ }, "lib-aggregate_2": { "inputs": { - "flake-utils": "flake-utils_6", + "flake-utils": "flake-utils_7", "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { @@ -2257,7 +2387,7 @@ }, "lib-aggregate_3": { "inputs": { - "flake-utils": "flake-utils_13", + "flake-utils": "flake-utils_14", "nixpkgs-lib": "nixpkgs-lib_3" }, "locked": { @@ -2276,7 +2406,7 @@ }, "lib-aggregate_4": { "inputs": { - "flake-utils": "flake-utils_20", + "flake-utils": "flake-utils_21", "nixpkgs-lib": "nixpkgs-lib_4" }, "locked": { @@ -2374,7 +2504,7 @@ }, "my-log": { "inputs": { - "nixpkgs": "nixpkgs_26" + "nixpkgs": "nixpkgs_27" }, "locked": { "lastModified": 1712193044, @@ -2459,10 +2589,10 @@ "evil-quick-diff": "evil-quick-diff", "explain-pause-mode": "explain-pause-mode", "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_4", "format-all": "format-all", "nix-straight": "nix-straight", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "nose": "nose", "ob-racket": "ob-racket", "org": "org", @@ -2501,10 +2631,10 @@ "evil-quick-diff": "evil-quick-diff_2", "explain-pause-mode": "explain-pause-mode_2", "flake-compat": "flake-compat_5", - "flake-utils": "flake-utils_9", + "flake-utils": "flake-utils_10", "format-all": "format-all_2", "nix-straight": "nix-straight_2", - "nixpkgs": "nixpkgs_12", + "nixpkgs": "nixpkgs_13", "nose": "nose_2", "ob-racket": "ob-racket_2", "org": "org_2", @@ -2543,10 +2673,10 @@ "evil-quick-diff": "evil-quick-diff_3", "explain-pause-mode": "explain-pause-mode_3", "flake-compat": "flake-compat_8", - "flake-utils": "flake-utils_16", + "flake-utils": "flake-utils_17", "format-all": "format-all_3", "nix-straight": "nix-straight_3", - "nixpkgs": "nixpkgs_19", + "nixpkgs": "nixpkgs_20", "nose": "nose_3", "ob-racket": "ob-racket_3", "org": "org_3", @@ -2585,10 +2715,10 @@ "evil-quick-diff": "evil-quick-diff_4", "explain-pause-mode": "explain-pause-mode_4", "flake-compat": "flake-compat_11", - "flake-utils": "flake-utils_23", + "flake-utils": "flake-utils_24", "format-all": "format-all_4", "nix-straight": "nix-straight_4", - "nixpkgs": "nixpkgs_27", + "nixpkgs": "nixpkgs_28", "nose": "nose_4", "ob-racket": "ob-racket_4", "org": "org_4", @@ -2621,15 +2751,18 @@ "nix-on-droid", "nixpkgs" ], - "nmd": "nmd", + "nmd": [ + "nix-on-droid", + "nmd" + ], "nmt": "nmt" }, "locked": { - "lastModified": 1666720474, - "narHash": "sha256-iWojjDS1D19zpeZXbBdjWb9MiKmVVFQCqtJmtTXgPx8=", + "lastModified": 1705252799, + "narHash": "sha256-HgSTREh7VoXjGgNDwKQUYcYo13rPkltW7IitHrTPA5c=", "owner": "Gerschtli", "repo": "nix-formatter-pack", - "rev": "14876cc8fe94a3d329964ecb073b4c988c7b61f5", + "rev": "2de39dedd79aab14c01b9e2934842051a160ffa5", "type": "github" }, "original": { @@ -2646,7 +2779,7 @@ "nix-on-droid", "nixpkgs" ], - "nmd": "nmd_3", + "nmd": "nmd_2", "nmt": "nmt_2" }, "locked": { @@ -2673,7 +2806,7 @@ "nix-on-droid", "nixpkgs" ], - "nmd": "nmd_5", + "nmd": "nmd_4", "nmt": "nmt_3" }, "locked": { @@ -2702,7 +2835,7 @@ "nix-on-droid", "nixpkgs" ], - "nmd": "nmd_7", + "nmd": "nmd_6", "nmt": "nmt_4" }, "locked": { @@ -2865,20 +2998,21 @@ "nixpkgs": [ "nixpkgs" ], + "nixpkgs-docs": "nixpkgs-docs", "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", - "nmd": "nmd_2" + "nmd": "nmd" }, "locked": { - "lastModified": 1688144254, - "narHash": "sha256-8KL1l/7eP2Zm1aJjdVaSOk0W5kTnJo9kcgW03gqWuiI=", - "owner": "nix-community", + "lastModified": 1749480396, + "narHash": "sha256-yYYpmq1lvt/NL0zazJED3MCpyrt1lUAqXHbgJxms3MI=", + "owner": "frankitox", "repo": "nix-on-droid", - "rev": "2301e01d48c90b60751005317de7a84a51a87eb6", + "rev": "e32e27372dec2ec1c87f52ebc036d73ed64ae632", "type": "github" }, "original": { - "owner": "nix-community", - "ref": "release-23.05", + "owner": "frankitox", + "ref": "supervisord", "repo": "nix-on-droid", "type": "github" } @@ -2896,8 +3030,8 @@ "c2vi-config", "nixpkgs" ], - "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_3", - "nmd": "nmd_4" + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_2", + "nmd": "nmd_3" }, "locked": { "lastModified": 1688144254, @@ -2931,8 +3065,8 @@ "c2vi-config", "nixpkgs" ], - "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_5", - "nmd": "nmd_6" + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_4", + "nmd": "nmd_5" }, "locked": { "lastModified": 1688144254, @@ -2970,8 +3104,8 @@ "c2vi-config", "nixpkgs" ], - "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_7", - "nmd": "nmd_8" + "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_6", + "nmd": "nmd_7" }, "locked": { "lastModified": 1688144254, @@ -3055,7 +3189,7 @@ "nix-wsl": { "inputs": { "flake-compat": "flake-compat_3", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1758785683, @@ -3074,8 +3208,8 @@ "nix-wsl_2": { "inputs": { "flake-compat": "flake-compat_6", - "flake-utils": "flake-utils_10", - "nixpkgs": "nixpkgs_13" + "flake-utils": "flake-utils_11", + "nixpkgs": "nixpkgs_14" }, "locked": { "lastModified": 1729203674, @@ -3094,8 +3228,8 @@ "nix-wsl_3": { "inputs": { "flake-compat": "flake-compat_9", - "flake-utils": "flake-utils_17", - "nixpkgs": "nixpkgs_20" + "flake-utils": "flake-utils_18", + "nixpkgs": "nixpkgs_21" }, "locked": { "lastModified": 1714355896, @@ -3114,8 +3248,8 @@ "nix-wsl_4": { "inputs": { "flake-compat": "flake-compat_12", - "flake-utils": "flake-utils_24", - "nixpkgs": "nixpkgs_28" + "flake-utils": "flake-utils_25", + "nixpkgs": "nixpkgs_29" }, "locked": { "lastModified": 1713947658, @@ -3363,19 +3497,35 @@ "type": "github" } }, - "nixpkgs-for-bootstrap": { + "nixpkgs-docs": { "locked": { - "lastModified": 1686921029, - "narHash": "sha256-J1bX9plPCFhTSh6E3TWn9XSxggBh/zDD4xigyaIQBy8=", + "lastModified": 1705957679, + "narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "rev": "9a333eaa80901efe01df07eade2c16d183761fa3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-for-bootstrap": { + "locked": { + "lastModified": 1720244366, + "narHash": "sha256-WrDV0FPMVd2Sq9hkR5LNHudS3OSMmUrs90JUTN+MXpA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40", "type": "github" }, "original": { "owner": "NixOS", "repo": "nixpkgs", - "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40", "type": "github" } }, @@ -3475,19 +3625,19 @@ "type": "github" } }, - "nixpkgs-for-bootstrap_8": { + "nixpkgs-for-nix-on-droid-bootstrap": { "locked": { - "lastModified": 1686921029, - "narHash": "sha256-J1bX9plPCFhTSh6E3TWn9XSxggBh/zDD4xigyaIQBy8=", + "lastModified": 1720244366, + "narHash": "sha256-WrDV0FPMVd2Sq9hkR5LNHudS3OSMmUrs90JUTN+MXpA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40", "type": "github" }, "original": { "owner": "NixOS", "repo": "nixpkgs", - "rev": "c7ff1b9b95620ce8728c0d7bd501c458e6da9e04", + "rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40", "type": "github" } }, @@ -3551,6 +3701,22 @@ "type": "github" } }, + "nixpkgs-new": { + "locked": { + "lastModified": 1768677565, + "narHash": "sha256-RqsKM8X7zTXvihOTTlDiUGRb4HnjihLt9fcAM6QWj8w=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ee958211a7c7f7ab22956dd5b5a2276263c0d9db", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-old": { "locked": { "lastModified": 1720535198, @@ -3736,6 +3902,22 @@ } }, "nixpkgs_10": { + "locked": { + "lastModified": 1637841632, + "narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "73369f8d0864854d1acfa7f1e6217f7d6b6e3fa1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { "locked": { "lastModified": 1638371214, "narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=", @@ -3751,7 +3933,7 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_12": { "locked": { "lastModified": 1728888510, "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", @@ -3767,7 +3949,7 @@ "type": "github" } }, - "nixpkgs_12": { + "nixpkgs_13": { "locked": { "lastModified": 1695806987, "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=", @@ -3782,7 +3964,7 @@ "type": "indirect" } }, - "nixpkgs_13": { + "nixpkgs_14": { "locked": { "lastModified": 1728740863, "narHash": "sha256-u+rxA79a0lyhG+u+oPBRtTDtzz8kvkc9a6SWSt9ekVc=", @@ -3798,7 +3980,7 @@ "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_15": { "locked": { "lastModified": 1741892592, "narHash": "sha256-ai0XSujeUYInQtp1u6TQfrTx9Vtv9bAOkK63lWcttzk=", @@ -3814,7 +3996,7 @@ "type": "github" } }, - "nixpkgs_15": { + "nixpkgs_16": { "locked": { "lastModified": 1613434981, "narHash": "sha256-Q6JRyPs5g2AXov/yEof//jOOiQ/VZVxrSYC7jiCEhSE=", @@ -3828,7 +4010,7 @@ "type": "indirect" } }, - "nixpkgs_16": { + "nixpkgs_17": { "locked": { "lastModified": 1637841632, "narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=", @@ -3844,7 +4026,7 @@ "type": "github" } }, - "nixpkgs_17": { + "nixpkgs_18": { "locked": { "lastModified": 1638371214, "narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=", @@ -3860,7 +4042,7 @@ "type": "github" } }, - "nixpkgs_18": { + "nixpkgs_19": { "locked": { "lastModified": 1714253743, "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", @@ -3876,7 +4058,23 @@ "type": "github" } }, - "nixpkgs_19": { + "nixpkgs_2": { + "locked": { + "lastModified": 1764242076, + "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_20": { "locked": { "lastModified": 1695806987, "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=", @@ -3891,23 +4089,7 @@ "type": "indirect" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1759046355, - "narHash": "sha256-6XrsRkVv9ei9wRu3bQ9Sh17/UrvZFi38gWiHV9CWTn4=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "5099bd78fcf8c36c9a85ac7c9f5515aa706716a3", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_20": { + "nixpkgs_21": { "locked": { "lastModified": 1714272655, "narHash": "sha256-3/ghIWCve93ngkx5eNPdHIKJP/pMzSr5Wc4rNKE1wOc=", @@ -3923,7 +4105,7 @@ "type": "github" } }, - "nixpkgs_21": { + "nixpkgs_22": { "locked": { "lastModified": 1714564312, "narHash": "sha256-+Pu+QmY5u33E+PMulmvLiyAgZDi2bgbV5LEtiVXa0c4=", @@ -3939,7 +4121,7 @@ "type": "github" } }, - "nixpkgs_22": { + "nixpkgs_23": { "locked": { "lastModified": 1613434981, "narHash": "sha256-Q6JRyPs5g2AXov/yEof//jOOiQ/VZVxrSYC7jiCEhSE=", @@ -3953,7 +4135,7 @@ "type": "indirect" } }, - "nixpkgs_23": { + "nixpkgs_24": { "locked": { "lastModified": 1637841632, "narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=", @@ -3969,7 +4151,7 @@ "type": "github" } }, - "nixpkgs_24": { + "nixpkgs_25": { "locked": { "lastModified": 1638371214, "narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=", @@ -3985,7 +4167,7 @@ "type": "github" } }, - "nixpkgs_25": { + "nixpkgs_26": { "locked": { "lastModified": 1713895582, "narHash": "sha256-cfh1hi+6muQMbi9acOlju3V1gl8BEaZBXBR9jQfQi4U=", @@ -4001,7 +4183,7 @@ "type": "github" } }, - "nixpkgs_26": { + "nixpkgs_27": { "locked": { "lastModified": 1702830618, "narHash": "sha256-lvhwIvRwhOLgzbRuYkqHy4M5cQHYs4ktL6/hyuBS6II=", @@ -4017,7 +4199,7 @@ "type": "github" } }, - "nixpkgs_27": { + "nixpkgs_28": { "locked": { "lastModified": 1695806987, "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=", @@ -4032,7 +4214,7 @@ "type": "indirect" } }, - "nixpkgs_28": { + "nixpkgs_29": { "locked": { "lastModified": 1713013257, "narHash": "sha256-ZEfGB3YCBVggvk0BQIqVY7J8XF/9jxQ68fCca6nib+8=", @@ -4048,7 +4230,23 @@ "type": "github" } }, - "nixpkgs_29": { + "nixpkgs_3": { + "locked": { + "lastModified": 1759046355, + "narHash": "sha256-6XrsRkVv9ei9wRu3bQ9Sh17/UrvZFi38gWiHV9CWTn4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5099bd78fcf8c36c9a85ac7c9f5515aa706716a3", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_30": { "locked": { "lastModified": 1714082080, "narHash": "sha256-ntuxg7lSDr6HNZ9/3fVf6qFy/FNGvEAHYM0lXgyrW5w=", @@ -4064,23 +4262,7 @@ "type": "github" } }, - "nixpkgs_3": { - "locked": { - "lastModified": 1740560979, - "narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "5135c59491985879812717f4c9fea69604e7f26f", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_30": { + "nixpkgs_31": { "locked": { "lastModified": 1613434981, "narHash": "sha256-Q6JRyPs5g2AXov/yEof//jOOiQ/VZVxrSYC7jiCEhSE=", @@ -4094,7 +4276,7 @@ "type": "indirect" } }, - "nixpkgs_31": { + "nixpkgs_32": { "locked": { "lastModified": 1637841632, "narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=", @@ -4110,7 +4292,7 @@ "type": "github" } }, - "nixpkgs_32": { + "nixpkgs_33": { "locked": { "lastModified": 1638371214, "narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=", @@ -4126,7 +4308,52 @@ "type": "github" } }, + "nixpkgs_34": { + "locked": { + "lastModified": 1757068644, + "narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_35": { + "locked": { + "lastModified": 1765772535, + "narHash": "sha256-I715zWsdVZ+CipmLtoCAeNG0etQywiWRE5PaWntnaYk=", + "rev": "09b8fda8959d761445f12b55f380d90375a1d6bb", + "type": "tarball", + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre911985.09b8fda8959d/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" + } + }, "nixpkgs_4": { + "locked": { + "lastModified": 1740560979, + "narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5135c59491985879812717f4c9fea69604e7f26f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { "locked": { "lastModified": 1695806987, "narHash": "sha256-fX5kGs66NZIxCMcpAGIpxuftajHL8Hil1vjHmjjl118=", @@ -4141,7 +4368,7 @@ "type": "indirect" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1758277210, "narHash": "sha256-iCGWf/LTy+aY0zFu8q12lK8KuZp7yvdhStehhyX1v8w=", @@ -4157,7 +4384,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1759090419, "narHash": "sha256-Njtgv8AwGCEdq8VeO+O9CtjSP4ArVTXEpa84yJpveGM=", @@ -4173,7 +4400,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1758690382, "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", @@ -4189,7 +4416,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { "lastModified": 1613434981, "narHash": "sha256-Q6JRyPs5g2AXov/yEof//jOOiQ/VZVxrSYC7jiCEhSE=", @@ -4203,36 +4430,26 @@ "type": "indirect" } }, - "nixpkgs_9": { - "locked": { - "lastModified": 1637841632, - "narHash": "sha256-QYqiKHdda0EOnLGQCHE+GluD/Lq2EJj4hVTooPM55Ic=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "73369f8d0864854d1acfa7f1e6217f7d6b6e3fa1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nmd": { - "flake": false, + "inputs": { + "nixpkgs": [ + "nix-on-droid", + "nixpkgs-docs" + ], + "scss-reset": "scss-reset" + }, "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", + "lastModified": 1705050560, + "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=", + "owner": "~rycee", "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" + "rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3", + "type": "sourcehut" }, "original": { - "owner": "rycee", + "owner": "~rycee", "repo": "nmd", - "type": "gitlab" + "type": "sourcehut" } }, "nmd_2": { @@ -4331,22 +4548,6 @@ "type": "gitlab" } }, - "nmd_8": { - "flake": false, - "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" - }, - "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" - } - }, "nmt": { "flake": false, "locked": { @@ -4478,7 +4679,7 @@ "nur": { "inputs": { "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1759091793, @@ -4846,8 +5047,8 @@ }, "podman": { "inputs": { - "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_8" + "flake-utils": "flake-utils_5", + "nixpkgs": "nixpkgs_9" }, "locked": { "lastModified": 1661906180, @@ -4865,8 +5066,8 @@ }, "podman_2": { "inputs": { - "flake-utils": "flake-utils_11", - "nixpkgs": "nixpkgs_15" + "flake-utils": "flake-utils_12", + "nixpkgs": "nixpkgs_16" }, "locked": { "lastModified": 1661906180, @@ -4884,8 +5085,8 @@ }, "podman_3": { "inputs": { - "flake-utils": "flake-utils_18", - "nixpkgs": "nixpkgs_22" + "flake-utils": "flake-utils_19", + "nixpkgs": "nixpkgs_23" }, "locked": { "lastModified": 1661906180, @@ -4903,8 +5104,8 @@ }, "podman_4": { "inputs": { - "flake-utils": "flake-utils_25", - "nixpkgs": "nixpkgs_30" + "flake-utils": "flake-utils_26", + "nixpkgs": "nixpkgs_31" }, "locked": { "lastModified": 1661906180, @@ -5034,7 +5235,7 @@ "robotnix": { "inputs": { "androidPkgs": "androidPkgs", - "nixpkgs": "nixpkgs_10", + "nixpkgs": "nixpkgs_11", "nixpkgsUnstable": "nixpkgsUnstable" }, "locked": { @@ -5054,7 +5255,7 @@ "robotnix_2": { "inputs": { "androidPkgs": "androidPkgs_2", - "nixpkgs": "nixpkgs_17", + "nixpkgs": "nixpkgs_18", "nixpkgsUnstable": "nixpkgsUnstable_2" }, "locked": { @@ -5074,7 +5275,7 @@ "robotnix_3": { "inputs": { "androidPkgs": "androidPkgs_3", - "nixpkgs": "nixpkgs_24", + "nixpkgs": "nixpkgs_25", "nixpkgsUnstable": "nixpkgsUnstable_3" }, "locked": { @@ -5094,7 +5295,7 @@ "robotnix_4": { "inputs": { "androidPkgs": "androidPkgs_4", - "nixpkgs": "nixpkgs_32", + "nixpkgs": "nixpkgs_33", "nixpkgsUnstable": "nixpkgsUnstable_4" }, "locked": { @@ -5114,10 +5315,13 @@ "root": { "inputs": { "arion": "arion", + "compass": "compass", "disko": "disko", + "elephant": "elephant", "firefox": "firefox", "firefox-addons": "firefox-addons", - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", + "hetzner_ddns": "hetzner_ddns", "home-manager": "home-manager", "home-manager-old": "home-manager-old", "lan-mouse": "lan-mouse", @@ -5128,17 +5332,20 @@ "nix-wsl": "nix-wsl", "nixos-generators": "nixos-generators", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_6", - "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap_2", + "nixpkgs": "nixpkgs_7", + "nixpkgs-for-nix-on-droid-bootstrap": "nixpkgs-for-nix-on-droid-bootstrap", + "nixpkgs-new": "nixpkgs-new", "nixpkgs-old": "nixpkgs-old", "nixpkgs-unstable": "nixpkgs-unstable", "nur": "nur", "podman": "podman", "robotnix": "robotnix", - "systems": "systems_4", + "systems": "systems_6", "victorinix": "victorinix", "vscode-server": "vscode-server_2", + "walker": "walker", "waveforms": "waveforms_2", + "zed": "zed", "zephyr-nix": "zephyr-nix_2", "zmk-nix": "zmk-nix_2" } @@ -5262,6 +5469,43 @@ "type": "github" } }, + "rust-overlay_2": { + "inputs": { + "nixpkgs": [ + "zed", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1765465581, + "narHash": "sha256-fCXT0aZXmTalM3NPCTedVs9xb0egBG5BOZkcrYo5PGE=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "99cc5667eece98bb35dcf35f7e511031a8b7a125", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "scss-reset": { + "flake": false, + "locked": { + "lastModified": 1631450058, + "narHash": "sha256-muDlZJPtXDIGevSEWkicPP0HQ6VtucbkMNygpGlBEUM=", + "owner": "andreymatin", + "repo": "scss-reset", + "rev": "0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91", + "type": "github" + }, + "original": { + "owner": "andreymatin", + "repo": "scss-reset", + "type": "github" + } + }, "sln-mode": { "flake": false, "locked": { @@ -5493,16 +5737,16 @@ }, "systems_2": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", "type": "github" } }, @@ -5581,6 +5825,51 @@ "type": "github" } }, + "systems_25": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_26": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_27": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, "systems_3": { "locked": { "lastModified": 1681028828, @@ -5795,7 +6084,7 @@ "c2vi-config": "c2vi-config", "crane": "crane_2", "fenix": "fenix_2", - "flake-utils": "flake-utils_30", + "flake-utils": "flake-utils_31", "nixpkgs": [ "nixpkgs" ], @@ -5820,7 +6109,7 @@ "c2vi-config": "c2vi-config_2", "crane": "crane", "fenix": "fenix", - "flake-utils": "flake-utils_28", + "flake-utils": "flake-utils_29", "nixpkgs": [ "victorinix", "c2vi-config", @@ -5844,7 +6133,7 @@ "victorinix_3": { "inputs": { "c2vi-config": "c2vi-config_3", - "flake-utils": "flake-utils_27", + "flake-utils": "flake-utils_28", "nixpkgs": [ "victorinix", "c2vi-config", @@ -5869,7 +6158,7 @@ }, "vscode-server": { "inputs": { - "flake-utils": "flake-utils_29", + "flake-utils": "flake-utils_30", "nixpkgs": [ "victorinix", "c2vi-config", @@ -5892,7 +6181,7 @@ }, "vscode-server_2": { "inputs": { - "flake-utils": "flake-utils_31", + "flake-utils": "flake-utils_32", "nixpkgs": [ "nixpkgs" ] @@ -5911,6 +6200,28 @@ "type": "github" } }, + "walker": { + "inputs": { + "elephant": [ + "elephant" + ], + "nixpkgs": "nixpkgs_34", + "systems": "systems_27" + }, + "locked": { + "lastModified": 1766773632, + "narHash": "sha256-uizfsoFfsnmukcahOqg81R2YPBkXnY3Im4kljHCtswk=", + "owner": "abenz1267", + "repo": "walker", + "rev": "1395d9205253c7038698e1dcca9c4d1d7dfd567b", + "type": "github" + }, + "original": { + "owner": "abenz1267", + "repo": "walker", + "type": "github" + } + }, "waveforms": { "inputs": { "nixpkgs": [ @@ -6017,6 +6328,27 @@ "type": "github" } }, + "zed": { + "inputs": { + "crane": "crane_3", + "flake-compat": "flake-compat_14", + "nixpkgs": "nixpkgs_35", + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1767555087, + "narHash": "sha256-1hcHZMtLvtzH/iQkQkVIYFCQ5NI6MLyfMUK3qrYa7a8=", + "owner": "zed-industries", + "repo": "zed", + "rev": "ce99e7ef26e1226d678c2c7e91e6a6e1099e8659", + "type": "github" + }, + "original": { + "owner": "zed-industries", + "repo": "zed", + "type": "github" + } + }, "zephyr": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 84886cf..2af10f0 100644 --- a/flake.nix +++ b/flake.nix @@ -4,8 +4,9 @@ ################################### INPUTS ######################################### inputs = { nixpkgs.url = "github:NixOS/nixpkgs/release-25.05"; - #nixpkgs.url = "github:NixOS/nixpkgs/b9562c824b11473587286eb499680129c2d0d4f1"; #nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + nixpkgs-new.url = "github:NixOS/nixpkgs/release-25.11"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-old.url = "github:NixOS/nixpkgs/release-23.11"; @@ -18,13 +19,37 @@ url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; + + zed.url = "github:zed-industries/zed"; + #zed.inputs.nixpkgs.follows = "nixpkgs"; + hetzner_ddns = { + url = "github:c2vi/hetzner_ddns"; + flake = false; + }; + home-manager = { url = "github:nix-community/home-manager/release-25.05"; #url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; + compass = { + url = "github:ppc-social/compass"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + elephant = { + url = "github:abenz1267/elephant"; + #inputs.nixpkgs.follows = "nixpkgs"; + }; + + walker = { + url = "github:abenz1267/walker"; + inputs.elephant.follows = "elephant"; + #inputs.nixpkgs.follows = "nixpkgs"; + }; + home-manager-old = { url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; @@ -62,16 +87,16 @@ #inputs.nixpkgs.follows = "nixpkgs"; }; + # use fork see: https://github.com/nix-community/nix-on-droid/pull/203#issuecomment-2956162178 nix-on-droid = { - url = "github:nix-community/nix-on-droid/release-23.05"; - #url = "github:zhaofengli/nix-on-droid"; - inputs.nixpkgs.follows = "nixpkgs"; + url = "github:frankitox/nix-on-droid/supervisord"; inputs.home-manager.follows = "home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; }; # for bootstrap zip ball creation and proot-termux builds, we use a fixed version of nixpkgs to ease maintanence. # head of nixos-23.05 as of 2023-06-18 # note: when updating nixpkgs-for-bootstrap, update store paths of proot-termux in modules/environment/login/default.nix - nixpkgs-for-bootstrap.url = "github:NixOS/nixpkgs/c7ff1b9b95620ce8728c0d7bd501c458e6da9e04"; + nixpkgs-for-nix-on-droid-bootstrap.url = "github:NixOS/nixpkgs/49ee0e94463abada1de470c9c07bfc12b36dcf40"; nix-wsl.url = "github:nix-community/NixOS-WSL"; @@ -115,7 +140,7 @@ workDir = "/home/me/work"; secretsDir = "/home/me/secrets"; persistentDir = "/home/me/work/app-data"; - dataDir = "/home/me/host"; + dataDir = "/home/server/host"; tunepkgs = import nixpkgs { @@ -189,9 +214,16 @@ overlays = [ (import ./overlays/static-overlay.nix) (import ./overlays/my-overlay.nix) ]; }; - acern = self.nixosConfigurations.acern.config.system.build.tarballBuilder; - lush = self.nixosConfigurations.lush.config.system.build.sdImage; - rpi = self.nixosConfigurations.rpi.config.system.build.sdImage; + nod = (mypkgs.callPackage ./mods/nix-on-droid-pkgs.nix { + system = "aarch64-linux"; + _nativeSystem = "x86_64-linux"; + nix-on-droid-flake = inputs.nix-on-droid; + nixpkgs = inputs.nixpkgs-for-nix-on-droid-bootstrap; + nixOnDroidChannelURL = "${inputs.nix-on-droid}"; + nixpkgsChannelURL = "${inputs.nixpkgs-for-nix-on-droid-bootstrap}"; + home-manager-flake = inputs.home-manager-old; + #nixOnDroidFlakeURL = inputs.nix-on-droid. + }).customPkgs.bootstrapZip; # collection of only my nur pkgs # my nur is unstable by default @@ -359,7 +391,6 @@ ki = createFlashScript "ki"; fasu = createFlashScript "fasu"; }; - test = inputs.nix-on-droid.outputs.apps.x86_64-linux.deploy; wsl = { type = "app"; @@ -424,7 +455,47 @@ }; ############ nixosConfigurations ################ - nixosConfigurations = rec { + nixosConfigurations = rec { + "_lsp_dummp" = nixpkgs.lib.nixosSystem { + inherit specialArgs; + system = "x86_64-linux"; + modules = [ + inputs.home-manager.nixosModules.home-manager + inputs.networkmanager.nixosModules.networkmanager + inputs.arion.nixosModules.arion + inputs.disko.nixosModules.disko + + # other overlay and home manager module access + { + nixpkgs.overlays = [ + # overlay for nix vscode extensions to appear in packages + #nix-vscode-extensions.overlays.default + ]; + # a dummy user to expose home-manager modules + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { + inherit self; + }; + users.users._lsp_dummy_user = { + isNormalUser = true; + description = "dummy"; + }; + # the user is managed by home-manager + home-manager.users._lsp_dummy_user = { + home.username = "_lsp_dummy_user"; + home.homeDirectory = "/home/_lsp_dummy_user"; + home.stateVersion = "24.05"; + + # add custom and third party options and configurations + imports = [ + inputs.lan-mouse.homeManagerModules.default + ]; + }; + } + ]; + }; + "main" = nixpkgs.lib.nixosSystem { inherit specialArgs; system = "x86_64-linux"; @@ -515,12 +586,12 @@ }; # my asus tinker board - "ti" = nixpkgs.lib.nixosSystem { - inherit specialArgs; - system = "x86_64-linux"; - modules = [ - ./hosts/ti.nix - ]; + "ti" = nixpkgs.lib.nixosSystem rec { + specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self unstable nur dataDir system;}; + system = "aarch64-linux"; + modules = [ + ./hosts/ti.nix + ]; }; # server that hosts stuff @@ -728,6 +799,7 @@ ############ nixOnDroidConfigurations ################ nixOnDroidConfigurations = rec { "phone" = inputs.nix-on-droid.lib.nixOnDroidConfiguration { + pkgs = import nixpkgs { system = "aarch64-linux"; }; modules = [ ./hosts/phone/nix-on-droid.nix { @@ -743,6 +815,7 @@ ]; }; "tab" = inputs.nix-on-droid.lib.nixOnDroidConfiguration { + pkgs = import nixpkgs { system = "aarch64-linux"; }; modules = [ ./hosts/tab/nix-on-droid.nix { @@ -761,4 +834,3 @@ }; }; } - diff --git a/hosts/fasu.nix b/hosts/fasu.nix index f729c07..ff768ee 100644 --- a/hosts/fasu.nix +++ b/hosts/fasu.nix @@ -26,6 +26,8 @@ } ]; + services.tailscale.enable = true; + #fileSystems."/boot" = { # device = "/dev/disk/by-label/fusu-boot"; @@ -114,6 +116,19 @@ boot.loader.grub.extraConfig = '' set timeout=2 ''; + # Add these modules + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ehci_pci" + "ahci" + "usbhid" + "usb_storage" + "sd_mod" + "virtio_balloon" + "virtio_blk" + "virtio_pci" + "virtio_ring" + ]; # the flash drive in use for fasu disko.devices.disk.root.device = "/dev/nbd0"; diff --git a/hosts/fe.nix b/hosts/fe.nix index b67294e..819808c 100644 --- a/hosts/fe.nix +++ b/hosts/fe.nix @@ -13,8 +13,17 @@ ../users/me/headless.nix ../users/root/default.nix ../users/server/headless.nix + + inputs.arion.nixosModules.arion + ../mods/fesu-services.nix ]; + users.users.server.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKNXOPxlnSxkhm050ui56D5SHrkhuFwUOU0Gf0C+Vmks melektron@goarnix" + ]; + users.users.me.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKNXOPxlnSxkhm050ui56D5SHrkhuFwUOU0Gf0C+Vmks melektron@goarnix" + ]; services.tailscale.enable = true; @@ -24,7 +33,6 @@ qemuSwtpm = true; #qemuOvmfPackage = pkgs.OVMFFull; }; - virtualisation.docker.enable = true; users.users.server.extraGroups = [ "docker" ]; # Use the GRUB 2 boot loader. @@ -54,7 +62,7 @@ settings.PasswordAuthentication = false; settings.KbdInteractiveAuthentication = false; settings.PermitRootLogin = "yes"; - ports = [ 22 ]; + ports = [ 22 49004 ]; settings.X11Forwarding = true; @@ -75,6 +83,9 @@ services.samba.openFirewall = true; networking.firewall.allowedTCPPorts = [ + 80 # http + 443 # https + 8888 # for general usage 9999 # for general usage 8080 # for mitm proxy @@ -94,10 +105,10 @@ networking.firewall.allowedTCPPortRanges = [ - { from = 25500; to = 27777;} # minecraft + { from = 49000; to = 49300;} # general ]; networking.firewall.allowedUDPPortRanges = [ - { from = 27700; to = 28800;} # minecraft + { from = 49000; to = 49300;} # general ]; networking.firewall.allowedUDPPorts = [ diff --git a/hosts/fusu.nix b/hosts/fusu.nix index ec9e61e..d51106f 100644 --- a/hosts/fusu.nix +++ b/hosts/fusu.nix @@ -1,5 +1,5 @@ -{ inputs, pkgs, secretsDir, config, system, ... }: let +{ inputs, pkgs, secretsDir, config, dataDir, ... }: let in { @@ -27,6 +27,17 @@ in { #"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTV1VoNAjMha5IP+qb8XABDo02pW3iN0yPBIbSqZA27 me@acern" #]; + virtualisation.libvirtd = { + enable = true; + qemuOvmf = true; + qemuSwtpm = true; + }; + # store libvirt data in dataDir + fileSystems."/var/lib/libvirt" = { + device = "/home/me/host/libvirt"; + options = [ "bind" ]; + }; + # allow server user to shutdown fusu @@ -53,6 +64,16 @@ in { networking.firewall.interfaces."tailscale0".allowedTCPPorts = [ 44444 # resilio sync 9000 # resilio webui + 9001 # fwin vnc + 9002 # fwin rdp + 9003 # fwin ssh + ]; + networking.firewall.interfaces."br0".allowedTCPPorts = [ + 44444 # resilio sync + 9000 # resilio webui + 9001 # fwin vnc + 9002 # fwin rdp + 9003 # fwin ssh ]; diff --git a/hosts/ki.nix b/hosts/ki.nix index 1e3a2b7..6788c5c 100644 --- a/hosts/ki.nix +++ b/hosts/ki.nix @@ -52,6 +52,7 @@ in { networking.firewall.allowedUDPPorts = [ 48899 # GoodWe inverter discovery 4410 # lan-mouse + 41641 # tailscale ]; services.resilio = { @@ -150,6 +151,7 @@ in { uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c"; type = "wifi"; interface-name = "wlp2s0"; + autoconnect-priority = "200"; }; wifi = { @@ -170,6 +172,33 @@ in { }; }; + gw = { + connection = { + id = "gw"; + uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f"; + type = "wifi"; + interface-name = "wlp2s0"; + autoconnect-priority = "300"; + }; + + wifi = { + hidden = "false"; + mode = "infrastructure"; + ssid = builtins.readFile "${secretsDir}/gw-ssid"; + }; + + wifi-security = { + key-mgmt = "wpa-psk"; + psk = builtins.readFile "${secretsDir}/gw-password"; + }; + + ipv4 = { + #address1 = "192.168.20.11/24"; + dns = "1.1.1.1;8.8.8.8;"; + method = "auto"; + }; + }; + hot = { connection = { id = "hot"; diff --git a/hosts/lush.nix b/hosts/lush.nix index b0a277f..cf6584b 100644 --- a/hosts/lush.nix +++ b/hosts/lush.nix @@ -155,6 +155,32 @@ method = "auto"; }; }; + gw = { + connection = { + id = "gw"; + uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f"; + type = "wifi"; + interface-name = "wlan0"; + autoconnect-priority = "300"; + }; + + wifi = { + hidden = "true"; + mode = "infrastructure"; + ssid = builtins.readFile "${secretsDir}/gw-ssid"; + }; + + wifi-security = { + key-mgmt = "wpa-psk"; + psk = builtins.readFile "${secretsDir}/gw-password"; + }; + + ipv4 = { + #address1 = "192.168.20.11/24"; + dns = "1.1.1.1;8.8.8.8;"; + method = "auto"; + }; + }; hh40 = { connection = { diff --git a/hosts/mac.nix b/hosts/mac.nix index 6031dc2..339723e 100644 --- a/hosts/mac.nix +++ b/hosts/mac.nix @@ -4,6 +4,7 @@ myobs = pkgs.wrapOBS { plugins = with pkgs.obs-studio-plugins; [ obs-ndi obs-teleport + droidcam-obs ]; }; @@ -24,7 +25,7 @@ in { services.tailscale.enable = true; programs.nix-ld.enable = true; - services.pid-fan-controller.enable = true; + #services.pid-fan-controller.enable = true; networking.hostName = "mac"; networking.firewall.enable = false; @@ -60,6 +61,19 @@ in { 48899 # GoodWe inverter discovery 4410 # lan-mouse ]; + + ##### Netbird Configuration + services.netbird.clients.ppc = { + #login = { + #enable = true; + #setupKeyFile = "${secretsDir}/netbird-setup-key"; + #}; + port = 51821; + ui.enable = false; + openFirewall = true; + #openInternalFirewall = true; + }; + swapDevices = [ { device = "/swapfile"; } ]; @@ -88,8 +102,32 @@ in { set timeout=2 ''; }; + + # fix bluetooth-3-0-keyboard not reporting left and right cmd seperately (and remapping the other things the way i want them) + services.udev.extraHwdb = '' + evdev:input:b0005v05AC* + KEYBOARD_KEY_700e3=leftctrl + KEYBOARD_KEY_700e7=rightalt + KEYBOARD_KEY_700e2=leftmeta + KEYBOARD_KEY_700e0=leftalt + ''; + + # fan speed fix + systemd.services.my-fan-speed-fix = { + description = "Set applesmc fan values"; + serviceConfig = { + Type = "oneshot"; + ExecStart = '' + /bin/sh -c 'echo 1 > /sys/devices/platform/applesmc.768/fan2_manual; echo 1000 > /sys/devices/platform/applesmc.768/fan2_output' + ''; + }; + #startAt = "*:0/3"; # Runs every 3 minutes + wantedBy = [ "multi-user.target" "suspend.target" "hibernate.target" "hybrid-sleep.target" ]; + after = [ "suspend.target" "hibernate.target" "hybrid-sleep.target" ]; + }; environment.systemPackages = with pkgs; [ + myobs lm_sensors linuxPackages.usbip helvum @@ -112,20 +150,7 @@ in { }; networking = { - #usePredictableInterfaceNames = false; - defaultGateway = { - address = "192.168.1.1"; - interface = "enp2s0"; - }; nameservers = [ "1.1.1.1" "8.8.8.8" ]; - interfaces = { - "enp2s0" = { - name = "enp2s0"; - ipv4.addresses = [ - { address = "192.168.1.33"; prefixLength = 24;} - ]; - }; - }; }; services.openssh = { @@ -142,12 +167,12 @@ in { ''; }; - home-manager.users.me.home.file.".config/sway/config".text = '' - exec ${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 6666 + #home-manager.users.me.home.file.".config/sway/config".text = '' + #exec ${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 6666 #exec 'wl-paste -w ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405' #exec 'sh -c "while true; do ${pkgs.netcat-openbsd}/bin/nc -l 4405 | wl-copy; done"' #exec 'sh -c "while true; do cat ~/clipboard | wl-paste; done"' - ''; + #''; home-manager.users.me.programs.lan-mouse = { enable = true; @@ -160,10 +185,8 @@ in { position = "left"; hostname = "main"; activate_on_startup = true; - ips = [ "192.168.1.11" ]; + ips = [ "192.168.4.2" "100.71.47.106" ]; port = 4410; - #enter_hook = "${pkgs.wl-clipboard}/bin/wl-paste | ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405"; - enter_hook = "/run/current-system/sw/bin/cat /home/me/.cache/clipboard | ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405 -N"; } ]; }; @@ -175,7 +198,6 @@ in { "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPgKLRF9iYRH3Y8hPjLX1ZY6GyavruqcQ0Q0Y8bnmpv9 me@tab" ]; - services.greetd = lib.mkForce { enable = true; settings = rec { @@ -350,6 +372,21 @@ in { networking.networkmanager.enable = true; networking.networkmanager.profiles = { + home = { + connection = { + id = "home"; + uuid = "a02273d9-ad12-395e-8372-f61129635b6f"; + type = "ethernet"; + autoconnect-priority = "300"; + interface-name = "enp2s0"; + }; + ipv4 = { + address2 = "192.168.4.3/24"; + dns = "1.1.1.1;"; + method = "manual"; + }; + }; + pw = { connection = { id = "pw"; @@ -377,6 +414,33 @@ in { }; }; + gw = { + connection = { + id = "gw"; + uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f"; + type = "wifi"; + interface-name = "wlp3s0"; + autoconnect-priority = "300"; + }; + + wifi = { + hidden = "true"; + mode = "infrastructure"; + ssid = builtins.readFile "${secretsDir}/gw-ssid"; + }; + + wifi-security = { + key-mgmt = "wpa-psk"; + psk = builtins.readFile "${secretsDir}/gw-password"; + }; + + ipv4 = { + #address1 = "192.168.20.11/24"; + dns = "1.1.1.1;8.8.8.8;"; + method = "auto"; + }; + }; + hot = { connection = { id = "hot"; @@ -429,7 +493,7 @@ in { id = "dhcp"; uuid = "c006389a-1697-4f77-91c3-95b466f85f13"; type = "ethernet"; - autoconnect = true; + autoconnect = false; autoconnect-priority = "200"; interface-name = "enp2s0"; }; diff --git a/hosts/main.nix b/hosts/main.nix index a217b7c..ace64af 100644 --- a/hosts/main.nix +++ b/hosts/main.nix @@ -40,12 +40,13 @@ enableVirtualCamera = true; plugins = with pkgs.obs-studio-plugins; [ droidcam-obs - obs-ndi + #distroav obs-teleport ]; }; # virtual display + /* hardware.display = { edid.packages = [ @@ -66,12 +67,13 @@ UUEwQzAxNzgwMDEKACU= EOF '') - */ ]; + */ # find a free GPU output using this command: # for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done + /* outputs."DP-2" = { edid = "virtual.bin"; @@ -81,10 +83,25 @@ mode = "1920x1080e"; }; }; + */ + ##### Netbird Configuration + services.netbird.clients.ppc = { + #login = { + #enable = true; + #setupKeyFile = "${secretsDir}/netbird-setup-key"; + #}; + port = 51821; + ui.enable = false; + openFirewall = true; + #openInternalFirewall = true; + }; + programs.fuse.userAllowOther = true; + services.gnome.gnome-keyring.enable = true; + services.sunshine = { enable = false; autoStart = true; @@ -128,6 +145,10 @@ }); }; + fonts.packages = with pkgs; [ + league-gothic + ]; + hardware.graphics.extraPackages = with pkgs; [ @@ -135,22 +156,41 @@ ]; + services.keyd = { + enable = true; + /* + keyboards.bluetooth-3-0-keyboard = { + ids = [ "05ac:0255:f22563e9" ]; + settings.main = { + leftalt = "meta"; + leftcontrol = "leftalt"; + }; + }; + */ + #keyboards.default.ids = [ "-05ac:0255" ]; completely disables my rebinding...... hmmmm + keyboards.default.settings = { + main = { + leftalt = "leftcontrol"; + leftcontrol = "leftalt"; + }; + }; + }; + + + home-manager.users.me.programs.lan-mouse = { enable = true; settings = { - authorized_fingerprints."0d:4f:2c:8a:46:d5:6a:e2:22:c9:02:89:39:da:75:69:2d:e9:32:39:d7:dc:e6:e2:50:d6:20:22:a5:26:d4:44" = "mac"; + authorized_fingerprints."20:e2:a0:c1:e9:52:9b:72:d5:68:8c:7c:91:c0:ac:33:ba:ec:bc:61:73:e9:8e:c1:a8:30:1a:ea:ae:2b:55:33" = "mac"; port = 4410; clients = [ { position = "right"; hostname = "mac"; activate_on_startup = true; - ips = [ "192.168.1.33" ]; + ips = [ "192.168.4.3" "100.100.55.117" ]; port = 4410; - #enter_hook = "${pkgs.wl-clipboard}/bin/wl-paste | ${pkgs.openssh}/bin/ssh mac 'cat > ~/clipboard'"; - #enter_hook = "/run/current-system/sw/bin/echo hooooooooooo > /home/me/p1"; - enter_hook = "/run/current-system/sw/bin/cat /home/me/.cache/clipboard | /run/current-system/sw/bin/ssh mac 'cat >~/clipboard'"; } ]; }; @@ -165,7 +205,7 @@ services.tailscale.enable = true; services.resilio = { - enable = true; + enable = false; enableWebUI = true; httpListenAddr = "100.71.47.106"; checkForUpdates = false; @@ -231,6 +271,7 @@ #../common/nixos-graphical.nix ../common/nixos-wayland.nix ../common/building.nix + ../common/nixos.nix ../mods/battery_monitor.nix inputs.networkmanager.nixosModules.networkmanager @@ -246,12 +287,17 @@ #inputs.waveforms.nixosModule ]; - services.udev.packages = [ inputs.waveforms.packages.${system}.adept2-runtime ]; - users.users.rslsync.extraGroups = ["users"]; + + #services.udev.packages = [ inputs.waveforms.packages.${system}.adept2-runtime ]; + #users.users.rslsync.extraGroups = ["users"]; # add myself to plugdev group for waveforms # and incus-admin to use incus without sudo - users.users.me.extraGroups = [ "incus-admin" "plugdev" "rslsync" ]; + users.users.me.extraGroups = [ + "incus-admin" "plugdev" + #"rslsync" + "docker" + ]; nixpkgs.config.permittedInsecurePackages = [ @@ -260,7 +306,14 @@ environment.systemPackages = with pkgs; [ - inputs.waveforms.packages.${system}.waveforms + + ((builtins.getFlake "nixpkgs/96bc8fec15133d6056410ed3abae2fb9419fb545").legacyPackages.${system}.affine.overrideAttrs { + patches = [ + ../overlays/patches/affin-edgeless-right-click-drag.patch + ]; + }) + + #inputs.waveforms.packages.${system}.waveforms intel-compute-runtime-legacy1 ffmpeg-full remmina @@ -294,7 +347,7 @@ dhcpcd looking-glass-client swtpm - win-virtio + virtio-win ]; # shedule nix builds with low priority, so the laptop is still usable while building something @@ -428,12 +481,16 @@ elif [[ "$host" == "phone" ]] then - ssh phone "source ~/.bashrc && on" + ssh phone "source ~/.bashrc && on" & ${pkgs.rustdesk}/bin/rustdesk --connect 100.77.80.77 + elif [[ "$host" == "vnc-fwin" ]] + then + ${pkgs.remmina}/bin/remmina -c ${persistentDir}/remmina/fwin.remmina + elif [[ "$host" == "fwin" ]] then - ${pkgs.remmina}/bin/remmina -c ${persistentDir}/remmina/fwin.remmina + xfreerdp /u:"me" /v:fusu:9002 /p:$(cat /home/me/secrets/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows"; elif [[ "$host" == "ki" ]] then @@ -517,6 +574,7 @@ 53 # allow dns 48899 # GoodWe inverter discovery 4410 # lan-mouse + 41641 # tailscale ]; #networking.search = [ "c2vi.local" ]; @@ -532,10 +590,10 @@ uuid = "a02273d9-ad12-395e-8372-f61129635b6f"; type = "ethernet"; autoconnect-priority = "-999"; - interface-name = "enp1s0"; + interface-name = "enp0s13f0u1u4u3"; }; ipv4 = { - address1 = "192.168.1.11/24,192.168.1.1"; + address2 = "192.168.4.2/24"; dns = "1.1.1.1;"; method = "manual"; }; @@ -592,6 +650,7 @@ uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c"; type = "wifi"; interface-name = "wlo1"; + autoconnect-priority = "200"; }; wifi = { @@ -612,6 +671,33 @@ }; }; + gw = { + connection = { + id = "gw"; + uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f"; + type = "wifi"; + interface-name = "wlo1"; + autoconnect-priority = "300"; + }; + + wifi = { + hidden = "true"; + mode = "infrastructure"; + ssid = builtins.readFile "${secretsDir}/gw-ssid"; + }; + + wifi-security = { + key-mgmt = "wpa-psk"; + psk = builtins.readFile "${secretsDir}/gw-password"; + }; + + ipv4 = { + #address1 = "192.168.20.11/24"; + dns = "1.1.1.1;8.8.8.8;"; + method = "auto"; + }; + }; + hec = { connection = { id = "hec"; @@ -685,8 +771,8 @@ id = "dhcp"; uuid = "c006389a-1697-4f77-91c3-95b466f85f13"; type = "ethernet"; - autoconnect = "false"; - interface-name = "enp1s0"; + autoconnect = "true"; + interface-name = "enp0s13f0u1u3"; }; ethernet = { @@ -780,9 +866,10 @@ ######################################### virtualisation ############################### + virtualisation.docker.enable = true; virtualisation.libvirtd = { enable = true; - qemuOvmf = true; + #qemuOvmf = true; qemuSwtpm = true; #qemuOvmfPackage = pkgs.OVMFFull; }; @@ -835,9 +922,9 @@ # boot.resumeDevice = "/swapfile"; services.logind = { - extraConfig = '' - HandlePowerKey=suspend-then-hibernate - ''; + #extraConfig = '' + #HandlePowerKey=suspend-then-hibernate + #''; lidSwitch = "lock"; lidSwitchExternalPower = "lock"; lidSwitchDocked = "ignore"; @@ -846,6 +933,45 @@ HibernateDelaySec=4h HibernateMode=shutdown ''; + + + ############################## swap and hibernate ################################### + /* + fileSystems."/home/me/work/things/ppc" = { + device = "https://dav.ppc.social"; + fsType = "davfs"; + options = [ + "netdev" + "rw" + "user" + "uid=1000" + "filemode=0644" + "dirmode=0755" + "noauto" + "x-systemd.automount" + ]; + }; + */ + + services = { + davfs2 = { + enable = true; + davUser = "me"; + settings = { + globalSection = { + gui_optimize = true; + file_refresh = 30; + }; + sections = { + "/home/me/work/things/ppc" = { + gui_optimize = true; + file_refresh = 30; + }; + }; + }; + }; + }; + + + } - - diff --git a/hosts/te.nix b/hosts/te.nix index 981f26a..5447c90 100644 --- a/hosts/te.nix +++ b/hosts/te.nix @@ -354,7 +354,7 @@ in { size = "100%"; content = { type = "filesystem"; - format = "ext4"; + format = "exfat"; mountpoint = "/pub"; }; }; diff --git a/hosts/ti.nix b/hosts/ti.nix index b0a277f..16e8fbe 100644 --- a/hosts/ti.nix +++ b/hosts/ti.nix @@ -23,6 +23,10 @@ # "${workDir}/htl/labor/nas/nixos/lush-module.nix" ]; + #nixpkgs.config.allowUnsupportedSystem = true; + #nixpkgs.hostPlatform.system = "aarch64-linux"; + #nixpkgs.buildPlatform.system = "x86_64-linux"; + # fix bluetooth hardware = { bluetooth = { @@ -38,12 +42,7 @@ ]; - boot.kernelParams = lib.mkForce ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0" "nohibernate" "loglevel=7" ]; - # hardware.bluetooth.enable = true; - - - - # home-manager.users.me = import ../users/me/home-headless.nix; + #boot.kernelParams = lib.mkForce ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0" "nohibernate" "loglevel=7" ]; /* for cross compiling @@ -87,7 +86,6 @@ }; boot = { - #kernelPackages = lib.mkForce pkgs.linuxPackages_latest; loader = { generic-extlinux-compatible.enable = lib.mkDefault true; grub.enable = lib.mkDefault false; @@ -124,7 +122,7 @@ 3240 # usbip ]; - networking.hostName = "lush"; + networking.hostName = "ti"; networking.networkmanager.enable = true; @@ -156,6 +154,33 @@ }; }; + gw = { + connection = { + id = "gw"; + uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f"; + type = "wifi"; + interface-name = "wlp2s0"; + autoconnect-priority = "300"; + }; + + wifi = { + hidden = "false"; + mode = "infrastructure"; + ssid = builtins.readFile "${secretsDir}/gw-ssid"; + }; + + wifi-security = { + key-mgmt = "wpa-psk"; + psk = builtins.readFile "${secretsDir}/gw-password"; + }; + + ipv4 = { + #address1 = "192.168.20.11/24"; + dns = "1.1.1.1;8.8.8.8;"; + method = "auto"; + }; + }; + hh40 = { connection = { id = "hh40"; @@ -189,7 +214,7 @@ uuid = "c006389a-1697-4f77-91c3-95b466f85f13"; type = "ethernet"; autoconnect = "true"; - interface-name = "end0"; + interface-name = "eth0"; }; ethernet = { @@ -208,7 +233,7 @@ uuid = "f55f34e3-4595-4642-b1f6-df3185bc0a04"; type = "ethernet"; autoconnect = false; - interface-name = "end0"; + interface-name = "eth0"; }; ethernet = { diff --git a/log b/log index 95bc7d3..a4c0987 100644 --- a/log +++ b/log @@ -5,7 +5,513 @@ evaluation warning: You have set specialArgs.pkgs, which means that options like please import the `nixosModules.readOnlyPkgs` module from the nixpkgs flake or `(modulesPath + "/misc/nixpkgs/read-only.nix"), and set `{ nixpkgs.pkgs = ; }`. This properly disables the ignored options to prevent future surprises. +evaluation warning: nix-index-database: flake output `hmModules` has been renamed to `homeModules` +evaluation warning: In order to support declarative extension configuration, + extension installation has been moved from + programs.firefox.profiles..extensions + to + programs.firefox.profiles..extensions.packages +evaluation warning: 'system' has been renamed to/replaced by 'stdenv.hostPlatform.system' error: + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1691:14: + 1690| zipAttrsWith ( + 1691| n: values: + | ^ + 1692| let + + … while calling the 'head' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1696:13: + 1695| if length values == 1 || pred here (elemAt values 1) (head values) then + 1696| head values + | ^ + 1697| else + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1188:17: + 1187| mapAttrs ( + 1188| name: value: + | ^ + 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1189:85: + 1188| name: value: + 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + | ^ + 1190| ); + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:275:71: + 274| # For definitions that have an associated option + 275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options; + | ^ + 276| + + … while evaluating the attribute 'value' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1118:7: + 1117| // { + 1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value; + | ^ + 1119| inherit (res.defsFinal') highestPrio; + + … while evaluating the option `system.build.toplevel': + + … while evaluating the attribute 'mergedValue' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1192:5: + 1191| # Type-check the remaining definitions, and merge them. Or throw if no definitions. + 1192| mergedValue = + | ^ + 1193| if isDefined then + + … while evaluating a branch condition + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1193:7: + 1192| mergedValue = + 1193| if isDefined then + | ^ + 1194| if type.merge ? v2 then + + … while evaluating the attribute 'values' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1186:9: + 1185| { + 1186| values = defsSorted; + | ^ + 1187| inherit (defsFiltered) highestPrio; + + … while evaluating a branch condition + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1180:11: + 1179| # Avoid sorting if we don't have to. + 1180| if any (def: def.value._type or "" == "order") defsFiltered.values then + | ^ + 1181| sortProperties defsFiltered.values + + … while calling the 'any' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1180:14: + 1179| # Avoid sorting if we don't have to. + 1180| if any (def: def.value._type or "" == "order") defsFiltered.values then + | ^ + 1181| sortProperties defsFiltered.values + + … while evaluating the attribute 'values' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1360:7: + 1359| { + 1360| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs; + | ^ + 1361| inherit highestPrio; + + … while calling the 'concatMap' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1360:16: + 1359| { + 1360| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs; + | ^ + 1361| inherit highestPrio; + + … while calling the 'concatMap' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1160:26: + 1159| # Process mkMerge and mkIf properties. + 1160| defsNormalized = concatMap ( + | ^ + 1161| m: + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1161:11: + 1160| defsNormalized = concatMap ( + 1161| m: + | ^ + 1162| map ( + + … while calling the 'map' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1162:11: + 1161| m: + 1162| map ( + | ^ + 1163| value: + + … while evaluating definitions from `/nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/activation/top-level.nix': + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1171:80: + 1170| } + 1171| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value)) + | ^ + 1172| ) defs; + + … while calling 'dischargeProperties' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1311:5: + 1310| dischargeProperties = + 1311| def: + | ^ + 1312| if def._type or "" == "merge" then + + … while evaluating a branch condition + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1312:5: + 1311| def: + 1312| if def._type or "" == "merge" then + | ^ + 1313| concatMap dischargeProperties def.contents + + … while evaluating the attribute 'value' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:805:21: + 804| inherit (module) file; + 805| inherit value; + | ^ + 806| }) module.config + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/activation/top-level.nix:81:26: + 80| # Handle assertions and warnings + 81| baseSystemAssertWarn = lib.asserts.checkAssertWarn config.assertions config.warnings baseSystem; + | ^ + 82| + + … while calling 'checkAssertWarn' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/asserts.nix:193:27: + 192| checkAssertWarn = + 193| assertions: warnings: val: + | ^ + 194| let + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/asserts.nix:200:7: + 199| else + 200| showWarnings warnings val; + | ^ + 201| + + … while calling 'showWarnings' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/trivial.nix:982:28: + 981| + 982| showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings; + | ^ + 983| + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/trivial.nix:982:33: + 981| + 982| showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings; + | ^ + 983| + + … while calling 'foldr' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:139:14: + 138| foldr = + 139| op: nul: list: + | ^ + 140| let + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:144:5: + 143| in + 144| fold' 0; + | ^ + 145| + + … while calling 'fold'' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:142:15: + 141| len = length list; + 142| fold' = n: if n == len then nul else op (elemAt list n) (fold' (n + 1)); + | ^ + 143| in + + … while evaluating a branch condition + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:142:18: + 141| len = length list; + 142| fold' = n: if n == len then nul else op (elemAt list n) (fold' (n + 1)); + | ^ + 143| in + + … while calling the 'length' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:141:13: + 140| let + 141| len = length list; + | ^ + 142| fold' = n: if n == len then nul else op (elemAt list n) (fold' (n + 1)); + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/activation/top-level.nix:81:72: + 80| # Handle assertions and warnings + 81| baseSystemAssertWarn = lib.asserts.checkAssertWarn config.assertions config.warnings baseSystem; + | ^ + 82| + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1188:17: + 1187| mapAttrs ( + 1188| name: value: + | ^ + 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1189:85: + 1188| name: value: + 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + | ^ + 1190| ); + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:275:71: + 274| # For definitions that have an associated option + 275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options; + | ^ + 276| + + … while evaluating the attribute 'value' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1118:7: + 1117| // { + 1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value; + | ^ + 1119| inherit (res.defsFinal') highestPrio; + + … while evaluating the option `warnings': + + (10 duplicate frames omitted) + + … while evaluating definitions from `/nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix': + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1171:80: + 1170| } + 1171| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value)) + | ^ + 1172| ) defs; + + … while calling 'dischargeProperties' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1311:5: + 1310| dischargeProperties = + 1311| def: + | ^ + 1312| if def._type or "" == "merge" then + + … while evaluating a branch condition + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1312:5: + 1311| def: + 1312| if def._type or "" == "merge" then + | ^ + 1313| concatMap dischargeProperties def.contents + + … while evaluating the attribute 'value' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:805:21: + 804| inherit (module) file; + 805| inherit value; + | ^ + 806| }) module.config + + … while calling the 'concatLists' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:494:7: + 493| in + 494| concatLists ( + | ^ + 495| mapAttrsToList ( + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:496:17: + 495| mapAttrsToList ( + 496| name: service: + | ^ + 497| let + + … while calling the 'concatLists' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:502:11: + 501| in + 502| concatLists [ + | ^ + 503| (optional (type == "oneshot" && (restart == "always" || restart == "on-success")) + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:503:14: + 502| concatLists [ + 503| (optional (type == "oneshot" && (restart == "always" || restart == "on-success")) + | ^ + 504| "Service '${name}.service' with 'Type=oneshot' cannot have 'Restart=always' or 'Restart=on-success'" + + … while calling 'optional' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:777:20: + 776| */ + 777| optional = cond: elem: if cond then [ elem ] else [ ]; + | ^ + 778| + + … while evaluating a branch condition + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:777:26: + 776| */ + 777| optional = cond: elem: if cond then [ elem ] else [ ]; + | ^ + 778| + + … in the left operand of the AND (&&) operator + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:503:42: + 502| concatLists [ + 503| (optional (type == "oneshot" && (restart == "always" || restart == "on-success")) + | ^ + 504| "Service '${name}.service' with 'Type=oneshot' cannot have 'Restart=always' or 'Restart=on-success'" + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:498:20: + 497| let + 498| type = service.serviceConfig.Type or ""; + | ^ + 499| restart = service.serviceConfig.Restart or "no"; + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1188:17: + 1187| mapAttrs ( + 1188| name: value: + | ^ + 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1189:85: + 1188| name: value: + 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + | ^ + 1190| ); + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:275:71: + 274| # For definitions that have an associated option + 275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options; + | ^ + 276| + + … while evaluating the attribute 'value' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1118:7: + 1117| // { + 1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value; + | ^ + 1119| inherit (res.defsFinal') highestPrio; + + … while evaluating the option `systemd.services.home-manager-me.serviceConfig': + + … while evaluating the attribute 'mergedValue' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1192:5: + 1191| # Type-check the remaining definitions, and merge them. Or throw if no definitions. + 1192| mergedValue = + | ^ + 1193| if isDefined then + + … while evaluating the attribute 'value' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:878:17: + 877| headError = checkDefsForError check loc defs; + 878| value = mapAttrs ( + | ^ + 879| n: v: + + … while calling the 'mapAttrs' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:878:25: + 877| headError = checkDefsForError check loc defs; + 878| value = mapAttrs ( + | ^ + 879| n: v: + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:872:21: + 871| # Meaning it is less lazy + 872| filterAttrs (n: v: v.optionalValue ? value) ( + | ^ + 873| zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs) + + … while calling 'filterAttrs' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:23: + 662| */ + 663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set)); + | ^ + 664| + + … while calling the 'removeAttrs' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:28: + 662| */ + 663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set)); + | ^ + 664| + + … while calling the 'filter' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:45: + 662| */ + 663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set)); + | ^ + 664| + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:53: + 662| */ + 663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set)); + | ^ + 664| + + … in the argument of the not operator + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:60: + 662| */ + 663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set)); + | ^ + 664| + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:60: + 662| */ + 663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set)); + | ^ + 664| + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:872:37: + 871| # Meaning it is less lazy + 872| filterAttrs (n: v: v.optionalValue ? value) ( + | ^ + 873| zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs) + + … while evaluating the attribute 'optionalValue' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1256:5: + 1255| + 1256| optionalValue = if isDefined then { value = mergedValue; } else { }; + | ^ + 1257| }; + + … while evaluating a branch condition + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1256:21: + 1255| + 1256| optionalValue = if isDefined then { value = mergedValue; } else { }; + | ^ + 1257| }; + + (8 duplicate frames omitted) + + … while evaluating definitions from `/nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/nixos': + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1171:80: + 1170| } + 1171| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value)) + | ^ + 1172| ) defs; + + … while calling 'dischargeProperties' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1311:5: + 1310| dischargeProperties = + 1311| def: + | ^ + 1312| if def._type or "" == "merge" then + + … while evaluating a branch condition + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1312:5: + 1311| def: + 1312| if def._type or "" == "merge" then + | ^ + 1313| concatMap dischargeProperties def.contents + + … while evaluating the attribute 'value' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:819:15: + 818| inherit (def) file; + 819| value = v; + | ^ + 820| }) def.value + + … while calling the 'getAttr' builtin + at :50:17: + 49| value = commonAttrs // { + 50| outPath = builtins.getAttr outputName strict; + | ^ + 51| drvPath = strict.drvPath; + … while calling the 'derivationStrict' builtin at :37:12: 36| @@ -13,208 +519,303 @@ error: | ^ 38| - … while evaluating derivation 'nixos-image-sd-card-25.05.20250710.10e6872-x86_64-linux.img.zst' - whose name attribute is located at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/make-derivation.nix:480:13 + … while evaluating derivation 'home-manager-generation' + whose name attribute is located at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/stdenv/generic/make-derivation.nix:541:13 - … while evaluating attribute 'buildCommand' of derivation 'nixos-image-sd-card-25.05.20250710.10e6872-x86_64-linux.img.zst' - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/nixos/modules/installer/sd-card/sd-image.nix:235:9: - 234| - 235| buildCommand = '' - | ^ - 236| mkdir -p $out/nix-support $out/sd-image - - … from call site - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/nixos/modules/installer/sd-card/sd-image.nix:285:13: - 284| mkdir firmware - 285| ${config.sdImage.populateFirmwareCommands} - | ^ - 286| - - … while calling anonymous lambda - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/attrsets.nix:1182:17: - 1181| mapAttrs ( - 1182| name: value: + … while evaluating attribute 'buildCommand' of derivation 'home-manager-generation' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/trivial-builders/default.nix:80:17: + 79| enableParallelBuilding = true; + 80| inherit buildCommand name; | ^ - 1183| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + 81| passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]); + + … while calling the 'getAttr' builtin + at :50:17: + 49| value = commonAttrs // { + 50| outPath = builtins.getAttr outputName strict; + | ^ + 51| drvPath = strict.drvPath; + + … while calling the 'derivationStrict' builtin + at :37:12: + 36| + 37| strict = derivationStrict drvAttrs; + | ^ + 38| + + … while evaluating derivation 'activation-script' + whose name attribute is located at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/stdenv/generic/make-derivation.nix:541:13 + + … while evaluating attribute 'text' of derivation 'activation-script' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/trivial-builders/default.nix:129:13: + 128| inherit + 129| text + | ^ + 130| executable + + … while calling the 'concatStringsSep' builtin + at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/home-environment.nix:756:13: + 755| if sortedCommands ? result then + 756| lib.concatStringsSep "\n" (map mkCmd sortedCommands.result) + | ^ + 757| else + + … while calling 'mkCmd' + at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/home-environment.nix:749:17: + 748| let + 749| mkCmd = res: '' + | ^ + 750| _iNote "Activating %s" "${res.name}" + + … while evaluating the attribute 'data' + at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/lib/dag.nix:100:45: + 99| { + 100| result = map (v: { inherit (v) name data; }) sorted.result; + | ^ + 101| } + + … while evaluating the attribute 'data' + at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/lib/dag.nix:92:9: + 91| name = n; + 92| data = v.data; + | ^ + 93| after = v.after ++ dagBefore dag n; … from call site - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/attrsets.nix:1183:85: - 1182| name: value: - 1183| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value - | ^ - 1184| ); + at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/lib/dag.nix:92:16: + 91| name = n; + 92| data = v.data; + | ^ + 93| after = v.after ++ dagBefore dag n; … while calling anonymous lambda - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:273:71: - 272| # For definitions that have an associated option - 273| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options; + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1188:17: + 1187| mapAttrs ( + 1188| name: value: + | ^ + 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1189:85: + 1188| name: value: + 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + | ^ + 1190| ); + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:275:71: + 274| # For definitions that have an associated option + 275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options; | ^ - 274| + 276| … while evaluating the attribute 'value' - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1084:7: - 1083| // { - 1084| value = addErrorContext "while evaluating the option `${showOption loc}':" value; + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1118:7: + 1117| // { + 1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value; | ^ - 1085| inherit (res.defsFinal') highestPrio; + 1119| inherit (res.defsFinal') highestPrio; - … while evaluating the option `sdImage.populateFirmwareCommands': + … while evaluating the option `home-manager.users.me.home.activation.installPackages.data': - … while evaluating the attribute 'mergedValue' - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1131:5: - 1130| # Type-check the remaining definitions, and merge them. Or throw if no definitions. - 1131| mergedValue = - | ^ - 1132| if isDefined then + (10 duplicate frames omitted) - … while evaluating a branch condition - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1132:7: - 1131| mergedValue = - 1132| if isDefined then - | ^ - 1133| if all (def: type.check def.value) defsFinal then + … while evaluating definitions from `/nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/home-environment.nix': - … while evaluating the attribute 'values' - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1125:9: - 1124| { - 1125| values = defs'''; + (6 duplicate frames omitted) + + … while evaluating derivation 'home-manager-path' + whose name attribute is located at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/stdenv/generic/make-derivation.nix:541:13 + + … while evaluating attribute 'passAsFile' of derivation 'home-manager-path' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/trivial-builders/default.nix:81:9: + 80| inherit buildCommand name; + 81| passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]); | ^ - 1126| inherit (defs'') highestPrio; + 82| } + + … while evaluating the attribute 'passAsFile' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:9: + 113| # XXX: The size is somewhat arbitrary + 114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ]; + | ^ + 115| } … while evaluating a branch condition - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1119:11: - 1118| # Avoid sorting if we don't have to. - 1119| if any (def: def.value._type or "" == "order") defs''.values then - | ^ - 1120| sortProperties defs''.values + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:22: + 113| # XXX: The size is somewhat arbitrary + 114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ]; + | ^ + 115| } - … while calling the 'any' builtin - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1119:14: - 1118| # Avoid sorting if we don't have to. - 1119| if any (def: def.value._type or "" == "order") defs''.values then - | ^ - 1120| sortProperties defs''.values + … in the argument of the not operator + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:52: + 113| # XXX: The size is somewhat arbitrary + 114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ]; + | ^ + 115| } - … while evaluating the attribute 'values' - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1252:7: - 1251| { - 1252| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs; - | ^ - 1253| inherit highestPrio; + … while calling the 'lessThan' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:52: + 113| # XXX: The size is somewhat arbitrary + 114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ]; + | ^ + 115| } - … while calling the 'concatMap' builtin - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1252:16: - 1251| { - 1252| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs; + … while calling the 'stringLength' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:25: + 113| # XXX: The size is somewhat arbitrary + 114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ]; + | ^ + 115| } + + … while calling the 'toJSON' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:109:16: + 108| pathsToLinkJSON = builtins.toJSON pathsToLink; + 109| pkgs = builtins.toJSON chosenOutputs; | ^ - 1253| inherit highestPrio; + 110| extraPathsFrom = lib.optional includeClosures (writeClosure pathsForClosure); - … while calling the 'concatMap' builtin - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1099:17: - 1098| # Process mkMerge and mkIf properties. - 1099| defs' = concatMap ( + … while evaluating list element at index 34 + + … while evaluating attribute 'paths' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:68:7: + 67| chosenOutputs = map (drv: { + 68| paths = + | ^ + 69| # First add the usual output(s): respect if user has chosen explicitly, + + … while evaluating list element at index 0 + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:68:7: + 67| chosenOutputs = map (drv: { + 68| paths = + | ^ + 69| # First add the usual output(s): respect if user has chosen explicitly, + + … while calling the 'getAttr' builtin + at :50:17: + 49| value = commonAttrs // { + 50| outPath = builtins.getAttr outputName strict; | ^ - 1100| m: + 51| drvPath = strict.drvPath; - … while calling anonymous lambda - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1100:11: - 1099| defs' = concatMap ( - 1100| m: - | ^ - 1101| map ( + … while calling the 'derivationStrict' builtin + at :37:12: + 36| + 37| strict = derivationStrict drvAttrs; + | ^ + 38| + + … while evaluating derivation 'python3-3.10.19-env' + whose name attribute is located at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/stdenv/generic/make-derivation.nix:541:13 + + … while evaluating attribute 'passAsFile' of derivation 'python3-3.10.19-env' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/trivial-builders/default.nix:81:9: + 80| inherit buildCommand name; + 81| passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]); + | ^ + 82| } + + (6 duplicate frames omitted) … while calling the 'map' builtin - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1101:11: - 1100| m: - 1101| map ( - | ^ - 1102| value: - - … while evaluating definitions from `/nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/nixos/modules/installer/sd-card/sd-image-aarch64.nix': + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:67:21: + 66| let + 67| chosenOutputs = map (drv: { + | ^ + 68| paths = … from call site - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1110:80: - 1109| } - 1110| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value)) - | ^ - 1111| ) defs; + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/wrapper.nix:26:15: + 25| let + 26| paths = requiredPythonModules (extraLibs ++ [ python ]) ++ [ + | ^ + 27| (runCommand "bin" { } '' - … while calling 'dischargeProperties' - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1203:5: - 1202| dischargeProperties = - 1203| def: + … while calling 'requiredPythonModules' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:94:5: + 93| requiredPythonModules = + 94| drvs: | ^ - 1204| if def._type or "" == "merge" then + 95| let + + … while calling the 'foldl'' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:98:5: + 97| in + 98| lib.unique ( + | ^ + 99| [ python ] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPythonModules" modules) + + … while calling the 'concatLists' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:99:32: + 98| lib.unique ( + 99| [ python ] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPythonModules" modules) + | ^ + 100| ); + + … while calculating requiredPythonModules for python3.10-pandas-2.3.1: + + … from call site + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:121:11: + 120| requiredPythonModules = builtins.addErrorContext "while calculating requiredPythonModules for ${drv.name or drv.pname}:" ( + 121| requiredPythonModules drv.propagatedBuildInputs + | ^ + 122| ); + + … while calling 'requiredPythonModules' + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:94:5: + 93| requiredPythonModules = + 94| drvs: + | ^ + 95| let + + … while calling the 'foldl'' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:98:5: + 97| in + 98| lib.unique ( + | ^ + 99| [ python ] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPythonModules" modules) + + … while calling anonymous lambda + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:1857:25: + 1856| */ + 1857| unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [ ]; + | ^ + 1858| … while evaluating a branch condition - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1204:5: - 1203| def: - 1204| if def._type or "" == "merge" then - | ^ - 1205| concatMap dischargeProperties def.contents + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:1857:28: + 1856| */ + 1857| unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [ ]; + | ^ + 1858| - … while evaluating the attribute 'value' - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:770:21: - 769| inherit (module) file; - 770| inherit value; - | ^ - 771| }) module.config + … while calling the 'elem' builtin + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:1857:31: + 1856| */ + 1857| unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [ ]; + | ^ + 1858| … in the condition of the assert statement - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/customisation.nix:422:9: - 421| outPath = - 422| assert condition; - | ^ - 423| drv.outPath; + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/customisation.nix:412:15: + 411| outPath = + 412| assert condition; + | ^ + 413| drv.${outputName}.outPath; - … while evaluating the attribute 'handled' - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:653:9: - 652| # or, alternatively, just output a warning message. - 653| handled = ( - | ^ - 654| if valid == "yes" then - - … from call site - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:657:14: - 656| else if valid == "no" then - 657| (handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; }) - | ^ - 658| else if valid == "warn" then - - … while calling 'handleEvalIssue' - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:301:5: - 300| { meta, attrs }: - 301| { - | ^ - 302| reason, + … in the right operand of the IMPL (->) operator + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/mk-python-derivation.nix:464:11: + 463| drv.disabled + 464| -> throw "${removePrefix namePrefix drv.name} not supported for interpreter ${python.executable}" + | ^ + 465| ) { } drv … while calling the 'throw' builtin - at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:318:5: - 317| in - 318| handler msg; - | ^ - 319| + at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/mk-python-derivation.nix:464:14: + 463| drv.disabled + 464| -> throw "${removePrefix namePrefix drv.name} not supported for interpreter ${python.executable}" + | ^ + 465| ) { } drv - error: Package ‘uboot-rpi_3_defconfig-2025.01’ in /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/misc/uboot/default.nix:148 is not available on the requested hostPlatform: - hostPlatform.config = "x86_64-unknown-linux-gnu" - package.meta.platforms = [ - "aarch64-linux" - ] - package.meta.badPlatforms = [ ] - , refusing to evaluate. - - a) To temporarily allow packages that are unsupported for this system, you can use an environment variable - for a single invocation of the nix tools. - - $ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 - - Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake, - then pass `--impure` in order to allow use of environment variables. - - b) For `nixos-rebuild` you can set - { nixpkgs.config.allowUnsupportedSystem = true; } - in configuration.nix to override this. - - c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add - { allowUnsupportedSystem = true; } - to ~/.config/nixpkgs/config.nix. + error: numpy-2.3.4 not supported for interpreter python3.10 diff --git a/misc/my-hosts b/misc/my-hosts index 8f52e28..9504df4 100644 --- a/misc/my-hosts +++ b/misc/my-hosts @@ -1,2 +1,3 @@ 127.0.0.1 localhost +192.168.3.1 gw.c2vi.dev diff --git a/misc/my-hosts-me b/misc/my-hosts-me deleted file mode 100644 index 48bf958..0000000 --- a/misc/my-hosts-me +++ /dev/null @@ -1,3 +0,0 @@ -10.1.1.3 phone -10.1.1.11 main - diff --git a/misc/my-hosts-t b/misc/my-hosts-t index a455d95..0a640e7 100644 --- a/misc/my-hosts-t +++ b/misc/my-hosts-t @@ -10,3 +10,5 @@ 100.96.201.42 ki 100.107.101.77 fe 100.107.101.77 fesu +100.93.225.52 fasu +100.91.200.82 fwin diff --git a/mods/fesu-hosting-base.nix b/mods/fesu-hosting-base.nix new file mode 100644 index 0000000..8c8766b --- /dev/null +++ b/mods/fesu-hosting-base.nix @@ -0,0 +1,78 @@ +{ lib, pkgs, ... }: +{ + + nix.settings = { + experimental-features = lib.mkDefault "nix-command flakes"; + trusted-users = [ "root" "@wheel" ]; + }; + nixpkgs.config.allowUnfree = true; + + boot.tmp.useTmpfs = true; + + virtualisation.docker.enable = true; + + programs.bash.shellInit = '' + cd /root/host + export HISTFILE=$HOME/host/bash_history + export HISTSIZE=10000 + ''; + + environment.systemPackages = with pkgs; [ + vim + wget + + # required for ppc wiki publish.sh + git + rsync + nodejs + ]; + + users.users.root.openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone" + ]; + services.openssh = { + enable = true; + # require public key authentication for better security + settings.PasswordAuthentication = false; + settings.KbdInteractiveAuthentication = false; + settings.PermitRootLogin = "yes"; + + settings.X11Forwarding = true; + + extraConfig = '' + X11UseLocalhost no + ''; + }; + + /* + system.activationScripts.addDefaultRoute = { + text = '' + ip route add default via dev eth0 + ''; + }; + */ + + networking = { + defaultGateway = "192.168.1.4"; + # Use systemd-resolved inside the container + # Workaround for bug https://github.com/NixOS/nixpkgs/issues/162686 + useHostResolvConf = lib.mkForce false; + #useNetworkd = true; + /* + interfaces.eth0.ipv4.routes = [ + { + via = "192.168.101.1"; + address = "default"; + prefixLength = 24; + } + ]; + */ + }; + services.resolved.enable = true; + networking.firewall.enable = false; + #systemd.network.enable = true; + + system.stateVersion = "24.11"; +} diff --git a/mods/fesu-services.nix b/mods/fesu-services.nix new file mode 100644 index 0000000..2fa70b4 --- /dev/null +++ b/mods/fesu-services.nix @@ -0,0 +1,440 @@ +{ pkgs, dataDir, config, inputs, system, lib, secretsDir, ... }: + + /* + +## ports +- 49001 ssh me-hosting +- 49002 ssh ppc-hosting +- 49003 ssh pcmc +- 49004 ssh fe + +- 49101 mc first +- 49102 mc first voice +- 49103 mc nonstop +- 49104 mc nonstop voice +- 49105 mc lage0 +- 49106 mc lage0 voice +- 49107 mc lobby +- 49108 mc lobby voice +- 49109 mc compass +- 49110 mc compass voice +- 49111 mc second +- 49112 mc second voice +- 49113 mc second bedrock +- 49114 mc lobby bedrock + +- me hosting ports + - 8000 wiki site + - 8001 lage0 site + - 8002 plausible site + - 8003 ppc-site + - 8004 instant db + - 8005 instant webui + +- ppc hosting ports + - 8000 dav + - 8001 affine + +## hosting container ips (on the interface br-proxy + - fusu 192.168.101.1 + - me-hosting 192.168.101.2 + - ppc-hosting 192.168.101.3 + - pcmc 192.168.101.4 + + */ + + let + /** + thanks: @melektron + This builder creates a small shell script that wraps arion to specify + it to operate on a specific registered arion service identified by `srv_name`. + This can be used to manage the docker-compose functionality of an arion service + that is defined in the NixOS system, independently from the systemctl service that + starts it. If you start/stop compose projects using this, you should first stop + the systemctl service. + */ + createArionServiceManager = srv_name: setup: ( + pkgs.writeShellScriptBin "manage-arion-${srv_name}" '' + echo operating on: ${config.virtualisation.arion.projects."${srv_name}".settings.out.dockerComposeYaml} + ${setup} + ${pkgs.lib.getExe inputs.arion.packages."${system}".arion} --prebuilt-file ${config.virtualisation.arion.projects."${srv_name}".settings.out.dockerComposeYaml} $@ + '' + ); + + basicTraefikSettingAttrs = configs: extraRouters: extraServices: let + tmp = map (val: basicTraefikSetting val) configs; + routerList = map (val: val.routers) tmp; + serviceList = map (val: val.services) tmp; + routers = lib.attrsets.mergeAttrsList (routerList ++ extraRouters); + services = lib.attrsets.mergeAttrsList (serviceList ++ extraServices); + in { inherit routers services; }; + + basicTraefikSetting = { name, domain, host, port }: let + host_ip = + if host == "me-hosting" then "192.168.1.20" + else if host == "pcmc" then "192.168.1.23" + else if host == "ppc-hosting" then "192.168.1.21" + else if host == "fesu" then "192.168.1.4" + else host; + + in { + + impotrs = [ + "${inputs.hetzner_ddns}/release/nixos_module.nix" + ]; + + routers.${name} = { + rule = "Host(`${domain}`)"; + service = name; + tls = { + certResolver = "LE"; + domains = [ + { main = domain; } + ]; + }; + }; + + services.${name}.loadBalancer.servers = [ + { url = "http://${host_ip}:${builtins.toString port}"; } + ]; + + }; + + + +in { + imports = [ + "${inputs.hetzner_ddns}/release/NixOS/nixos_module.nix" + ]; + + environment.systemPackages = [ + pkgs.arion + + # Do install the docker CLI to talk to podman. + # Not needed when virtualisation.docker.enable = true; + pkgs.docker-client + + # add all the service managers + ]; + + ############################ virtualisation ######################### + # Arion works with Docker, but for NixOS-based containers, you need Podman + # since NixOS 21.05. + virtualisation.docker.enable = false; + virtualisation.podman.enable = true; + virtualisation.podman.dockerSocket.enable = true; + virtualisation.libvirtd.enable = true; + + + virtualisation.arion = { + backend = "podman-socket"; + }; + + users.extraUsers.me.extraGroups = ["podman"]; + + # incus + virtualisation.incus.enable = true; + users.users.me.extraGroups = [ + "incus-admin" + ]; + networking.nftables.enable = true; + + + + + ############################ networking ######################### + boot.kernel.sysctl = { + "net.ipv4.ip_forward" = true; + }; + + + + + ############################ dyndns ######################### + systemd.services.hetzner_ddns.serviceConfig = { + User = "me"; + Group = "users"; + }; + services.hetzner_ddns = { + protections = false; + enable = true; + api_key_file = "/home/me/secrets/hetzner_ddns_key"; + zones = [ + { + domain = "c2vi.dev"; + records = [ + { + name = "home"; + type = "A"; + } + ]; + } + { + domain = "ppc.social"; + records = [ + { + name = "@"; + type = "A"; + } + ]; + } + ]; + }; + + + + ############################ containers ######################### + + # me-hosting container + containers.me-hosting = { + autoStart = true; + privateNetwork = true; + privateUsers = "pick"; + #hostAddress = "192.168.100.10"; + hostBridge = "br0"; + #localAddress = "192.168.100.11"; + localAddress = "192.168.1.20/24"; + extraFlags = [ "--system-call-filter=@keyring" ]; + allowedDevices = [ + { + modifier = "rwm"; + node = "/dev/net/tun"; + } + { + modifier = "rwm"; + node = "/dev/fuse"; + } + ]; + bindMounts."data-dir" = { + mountPoint = "/root/host:idmap"; + hostPath = "${dataDir}/me-hosting"; + isReadOnly = false; + }; + + # see: https://github.com/systemd/systemd/issues/27994 + bindMounts."/run/sys" = { + hostPath = "/sys"; + isReadOnly = false; + }; + + forwardPorts = [ + { + hostPort = 49001; + containerPort = 22; + protocol = "tcp"; + } + ]; + config = { config, pkgs, lib, ... }: { + imports = [ + ./fesu-hosting-base.nix + ]; + }; + }; + + # ppc-hosting container + containers.ppc-hosting = { + autoStart = true; + privateNetwork = true; + privateUsers = "pick"; + #hostAddress = "192.168.100.12"; + hostBridge = "br0"; + #localAddress = "192.168.100.13"; + localAddress = "192.168.1.21/24"; + extraFlags = [ "--system-call-filter=@keyring" ]; + allowedDevices = [ + { + modifier = "rwm"; + node = "/dev/net/tun"; + } + { + modifier = "rwm"; + node = "/dev/fuse"; + } + ]; + bindMounts."data-dir" = { + mountPoint = "/root/host:idmap"; + hostPath = "${dataDir}/ppc-hosting"; + isReadOnly = false; + }; + + # see: https://github.com/systemd/systemd/issues/27994 + bindMounts."/run/sys" = { + hostPath = "/sys"; + isReadOnly = false; + }; + + forwardPorts = [ + { + hostPort = 49002; + containerPort = 22; + protocol = "tcp"; + } + ]; + config = { config, pkgs, lib, ... }: { + imports = [ + ./fesu-hosting-base.nix + ]; + users.users.root = { + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICuH2ilZeIQrr9wYtBtQyRD5oaVkuLImjm9EIGfn+wqw" # Mr3DAlien + ]; + }; + + }; + }; + + # pcmc container + containers.pcmc = { + autoStart = true; + privateNetwork = true; + privateUsers = "pick"; + #hostAddress = "192.168.100.14"; + hostBridge = "br0"; + #localAddress = "192.168.100.15"; + localAddress = "192.168.1.23/24"; + extraFlags = [ "--system-call-filter=@keyring" ]; + allowedDevices = [ + { + modifier = "rwm"; + node = "/dev/net/tun"; + } + { + modifier = "rwm"; + node = "/dev/fuse"; + } + ]; + bindMounts."data-dir" = { + mountPoint = "/root/host:idmap"; + hostPath = "${dataDir}/pcmc"; + isReadOnly = false; + }; + + # see: https://github.com/systemd/systemd/issues/27994 + bindMounts."/run/sys" = { + hostPath = "/sys"; + isReadOnly = false; + }; + + forwardPorts = [ + { # ssh port + hostPort = 49003; + containerPort = 22; + protocol = "tcp"; + } + ] + ++ # add all mc server ports as tcp + (map (port: { + hostPort = port; + containerPort = port; + protocol = "tcp"; + }) (lib.range 49100 49200)) + ++ # add all mc server ports as udp + (map (port: { + hostPort = port; + containerPort = port; + protocol = "udp"; + }) (lib.range 49100 49200)) + ; + + config = { config, pkgs, lib, ... }: { + imports = [ + ./fesu-hosting-base.nix + ]; + }; + }; + + + + + + + ############################ compass app ######################### + systemd.services.compass = { + enable = true; + description = "Compass Bot Deployment"; + unitConfig = { + Type = "simple"; + }; + serviceConfig = { + User = "server"; + Group = "server"; + Restart = "always"; + RestartSec = "500s"; + ExecStart = "${lib.getExe inputs.compass.packages.${system}.default} --data ${dataDir}/compass --config ${dataDir}/compass/config.json --db ${dataDir}/compass/compass.db --settings ${dataDir}/compass/settings.json"; + }; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + }; + + + + + ############################ traefik ######################### + services.traefik = { + enable = true; + #dataDir = "${dataDir}/traefik"; + + staticConfigOptions = { + + entryPoints = { + web = { + address = ":80"; + asDefault = true; + http.redirections.entrypoint = { + to = "websecure"; + scheme = "https"; + }; + }; + + websecure = { + address = ":443"; + asDefault = true; + http.tls.certResolver = "LE"; + }; + }; + + log = { + level = "TRACE"; + #filePath = "${config.services.traefik.dataDir}/traefik.log"; + #format = "json"; + }; + + certificatesResolvers.LE.acme = { + email = "c2vi.dev@gmail.com"; + storage = "${config.services.traefik.dataDir}/acme.json"; + httpChallenge.entryPoint = "web"; + }; + + api.dashboard = true; + api.insecure = true; + }; + + dynamicConfigOptions = { + http = (basicTraefikSettingAttrs + # basic configs + [ + { name = "wiki-site"; domain = "wiki.ppc.social"; host = "me-hosting"; port = 8000; } + { name = "lage0-site"; domain = "lage0.c2vi.dev"; host = "me-hosting"; port = 8001; } + { name = "plausible"; domain = "plausible.c2vi.dev"; host = "me-hosting"; port = 8002; } + { name = "ppc-site"; domain = "ppc.social"; host = "me-hosting"; port = 8003; } + { name = "compass-site"; domain = "compass.ppc.social"; host = "fesu"; port = 3000; } + { name = "dav"; domain = "dav.ppc.social"; host = "ppc-hosting"; port = 8000; } + { name = "instant"; domain = "instant.ppc.social"; host = "me-hosting"; port = 8004; } + { name = "instant-backend"; domain = "instant-backend.ppc.social"; host = "me-hosting"; port = 8005; } + { name = "isotoke-website"; domain = "isotoke.ppc.social"; host = "192.168.1.26"; port = 80; } + { name = "affine"; domain = "affine.ppc.social"; host = "ppc-hosting"; port = 8001; } + ] + + # extraRouters (full configs) + [ + ] + + # extraServices (full configs) + [ + ]); + + }; + }; + + +} diff --git a/mods/fusu-services.nix b/mods/fusu-services.nix index 16e80c3..bfe18e8 100644 --- a/mods/fusu-services.nix +++ b/mods/fusu-services.nix @@ -27,7 +27,6 @@ in { pkgs.docker-client # add all the service managers - (createArionServiceManager "libvirt" "") ]; # Arion works with Docker, but for NixOS-based containers, you need Podman @@ -38,37 +37,12 @@ in { users.extraUsers.me.extraGroups = ["podman"]; - ######################## libvirtd in container ######################### + virtualisation.arion = { backend = "podman-socket"; - projects.libvirt.settings.services.libvirt = { pkgs, lib, ... }: { - nixos.useSystemd = true; - service.useHostStore = true; - nixos.configuration = { - boot.tmp.useTmpfs = true; - virtualisation.libvirtd = { - enable = true; - }; - users.users.me = { - uid = 1001; - isNormalUser = true; - password = "changeme"; - extraGroups = [ "networkmanager" "wheel" "libvirtd" "plugdev" ]; - }; - }; - - service = { - privileged = true; - - volumes = [ - "${dataDir}/libvirt/run:/run/libvirt" - "${dataDir}/libvirt/lib:/var/lib/libvirt" - ]; - }; - - }; }; + } diff --git a/mods/nix-on-droid-base-module.nix b/mods/nix-on-droid-base-module.nix new file mode 100644 index 0000000..e280959 --- /dev/null +++ b/mods/nix-on-droid-base-module.nix @@ -0,0 +1,28 @@ +{ ... }: { + + services.openssh = { + enable = true; + allowSFTP = true; + + extraConfig = '' + X11UseLocalhost no + PasswordAuthentication no + KbdInteractiveAuthentication no + PermitRootLogin no + X11Forwarding yes + ''; + }; + + home-manager.useUserPackages = false; + + home-manager.config = { + home.stateVersion = "23.05"; + + home.file.".ssh/authorized_keys".text = '' + ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden + ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main + ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone + ''; + }; + +} diff --git a/mods/nix-on-droid-pkgs.nix b/mods/nix-on-droid-pkgs.nix new file mode 100644 index 0000000..8e5572f --- /dev/null +++ b/mods/nix-on-droid-pkgs.nix @@ -0,0 +1,83 @@ +# Copyright (c) 2019-2024, see AUTHORS. Licensed under MIT License, see LICENSE. +# copied from: https://github.com/nix-community/nix-on-droid/blob/1c306c07b3e99ab79b967ead32f9af7b8672a7ef/pkgs/default.nix + +{ nixpkgs +, system # system to compile for, user-facing name of targetSystem +, _nativeSystem ? null # system to cross-compile from, see flake.nix +, nixOnDroidChannelURL ? null +, nixpkgsChannelURL ? null +, nixOnDroidFlakeURL ? null +, nix-on-droid-flake +, home-manager-flake +}: + +let + nativeSystem = if _nativeSystem == null then system else _nativeSystem; + nixDirectory = callPackage "${nix-on-droid-flake}/pkgs/nix-directory.nix" { inherit system; }; + initialPackageInfo = import "${nixDirectory}/nix-support/package-info.nix"; + + pkgs = import nixpkgs { system = nativeSystem; }; + + urlOptionValue = url: envVar: + let + envValue = builtins.getEnv envVar; + in + pkgs.lib.mkIf + (envValue != "" || url != null) + (if url == null then envValue else url); + + modules = import "${nix-on-droid-flake}/modules" { + inherit pkgs; + targetSystem = system; + + home-manager-path = home-manager-flake; + + isFlake = true; + + config = { + imports = [ + "${nix-on-droid-flake}/modules/build/initial-build.nix" + ./nix-on-droid-base-module.nix + ]; + + _module.args = { + inherit initialPackageInfo; + pkgs = pkgs.lib.mkForce pkgs; # to override ./modules/nixpkgs/config.nix + }; + + system.stateVersion = "24.05"; + + # Fix invoking bash after initial build. + user.shell = "${initialPackageInfo.bash}/bin/bash"; + + build = { + channel = { + nixpkgs = urlOptionValue nixpkgsChannelURL "NIXPKGS_CHANNEL_URL"; + nix-on-droid = urlOptionValue nixOnDroidChannelURL "NIX_ON_DROID_CHANNEL_URL"; + }; + + flake.nix-on-droid = urlOptionValue nixOnDroidFlakeURL "NIX_ON_DROID_FLAKE_URL"; + }; + }; + }; + + callPackage = pkgs.lib.callPackageWith ( + pkgs // customPkgs // { + inherit (modules) config; + inherit callPackage nixpkgs nixDirectory initialPackageInfo; + targetSystem = system; + } + ); + + customPkgs = { + bootstrap = callPackage "${nix-on-droid-flake}/pkgs/bootstrap.nix" { }; + bootstrapZip = callPackage "${nix-on-droid-flake}/pkgs/bootstrap-zip.nix" { }; + prootTermux = callPackage "${nix-on-droid-flake}/pkgs/cross-compiling/proot-termux.nix" { }; + tallocStatic = callPackage "${nix-on-droid-flake}/pkgs/cross-compiling/talloc-static.nix" { }; + }; +in + +{ + inherit (modules) config; + inherit customPkgs; +} diff --git a/mods/nurPkgs/vcs-cli-utils.nix b/mods/nurPkgs/vcs-cli-utils.nix index 3bae436..5a20cf2 100644 --- a/mods/nurPkgs/vcs-cli-utils.nix +++ b/mods/nurPkgs/vcs-cli-utils.nix @@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec { sha256 = "sha256-vRqYQd5OaYXAc74Jlg8twBGDr9YxP+Mk1ZY9JGJTmvc="; }; - cargoHash = "sha256-xz+pi6awwDeiISGqJs5DxqFdryc5mY8wMuds1ZXRr1Q="; + cargoHash = "sha256-RoDXIPCjygdmG9dfDMtKiSdj2rgDAfxkKUXkIUAWotI="; meta = with lib; { description = "Command line utilities for the Simple Voice Chat Minecraft Mod"; diff --git a/mybin/ru b/mybin/ru index 9993f0f..ea9ec93 100755 --- a/mybin/ru +++ b/mybin/ru @@ -166,9 +166,7 @@ sudo systemctl hibernate elif [ "$1" == "suspend" ] then -sudo systemctl suspend-then-hibernate +sudo systemctl suspend fi - - diff --git a/overlays/patches/affin-edgeless-right-click-drag.patch b/overlays/patches/affin-edgeless-right-click-drag.patch new file mode 100644 index 0000000..98baa13 --- /dev/null +++ b/overlays/patches/affin-edgeless-right-click-drag.patch @@ -0,0 +1,22 @@ +diff --git a/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts b/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts +index c1abe0aea..b86367ca5 100644 +--- a/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts ++++ b/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts +@@ -54,7 +54,7 @@ export class PanTool extends BaseTool { + + override mounted(): void { + this.addHook('pointerDown', evt => { +- const shouldPanWithMiddle = evt.raw.button === MouseButton.MIDDLE; ++ const shouldPanWithMiddle = evt.raw.button === MouseButton.SECONDARY; + + if (!shouldPanWithMiddle) { + return; +@@ -111,7 +111,7 @@ export class PanTool extends BaseTool { + }); + + const dispose = on(document, 'pointerup', evt => { +- if (evt.button === MouseButton.MIDDLE) { ++ if (evt.button === MouseButton.SECONDARY) { + restoreToPrevious(); + } + dispose(); diff --git a/programs/bash.nix b/programs/bash.nix index a1b7b21..3a70b66 100644 --- a/programs/bash.nix +++ b/programs/bash.nix @@ -1,4 +1,4 @@ -{ secretsDir, confDir, hostname, self, pkgs, config, system, workDir, ... }: +{ lib, secretsDir, confDir, hostname, self, pkgs, config, system, workDir, ... }: { programs.bash = { @@ -21,7 +21,6 @@ # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. "checkwinsize" - # If set, the pattern "**" used in a pathname expansion context will # match all files and zero or more directories and subdirectories. "globstar" @@ -34,19 +33,21 @@ # is needed to that ssh works # TERM = "xterm"; - # my prompt - PS1 = ''\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] ❯❯❯ ''; TEST = "hiiiiiiiiiiiiiiiiiiiiiiiiiii"; }; shellAliases = { + archive-video = "${lib.getExe pkgs.yt-dlp} -f \"bv*+ba/b\" --merge-output-format mp4 --embed-thumbnail --write-thumbnail --convert-thumbnails png --add-metadata -o \"%(title)s.%(ext)s\""; + + zed="WAYLAND_DISPLAY= zeditor"; + npm="pnpm"; md="~/work/modules/modules/dev/run"; mize="~/work/mize/mize"; m="~/work/mize/mize"; - c2="~/work/c2-system/target/debug/system-c2-cli"; + c2="~/work/c2-system/cli/target/debug/system-c2-cli"; ports = "${pkgs.lsof}/bin/lsof -i -P -n"; losetup = "${pkgs.util-linux}/bin/losetup"; @@ -65,7 +66,7 @@ shutdown = "echo try harder.... xD"; npw = "nmcli c up pw"; flex = "neofetch | lolcat"; - kwoche = "curl https://kalenderwoche.celll.net/?api=1; echo"; + kwoche = "curl -k https://kalenderwoche.celll.net/?api=1; echo"; psg = "ps -e | grep"; vilias = "nvim -c 'set syntax=bash' ${confDir}/common/programs/bash.nix"; stl = "sudo systemctl"; @@ -117,9 +118,16 @@ # my prompt if [[ "${hostname}" == "main" ]] then - export PS1="\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] ❯❯❯ " + #export PS1="\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] ❯❯❯ " + #export PS1="\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] > " + # \n\[\033[1;34m\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\$\[\033[0m\] + #export PS1="\W > "; + + export PS1="\[\033[01;34m\]\W\033[00m ❯❯❯ " else - export PS1="\033[1;32m${hostname}❯ \[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] ❯❯❯ " + #export PS1="\033[1;32m${hostname}❯ \[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] ❯❯❯ " + + export PS1="\033[1;32m${hostname}\[\033[01;34m\] \W\033[00m ❯❯❯ " fi @@ -188,6 +196,7 @@ fi } + tph(){ if [[ "$1" == "" ]] then diff --git a/programs/lf/default.nix b/programs/lf/default.nix index 9dda2c1..6206f10 100644 --- a/programs/lf/default.nix +++ b/programs/lf/default.nix @@ -13,10 +13,19 @@ cmakeFlags = prev.cmakeFlags or [] ++ [ "-DENABLE_SWAY=ON" ]; }); - mylf = pkgs.lf.overrideAttrs (final: prev: { + oldpkgs = (builtins.getFlake "nixpkgs/release-25.05").legacyPackages.${system}; + mylf = oldpkgs.lf.overrideAttrs (final: prev: { patches = (prev.patches or [ ]) ++ [ ./lf-filter.patch ]; + /* + src = pkgs.fetchFromGitHub { # use the old v35 version of lf... so that my patch applies + owner = "gokcehan"; + repo = "lf"; + rev = "r35"; + hash = "sha256-0ZyIbEKiQ9l30gqHlpW7l/6/TzqVRvnKk9c2FiQ6E6Y="; + }; + */ checkPhase = ""; }); @@ -52,7 +61,7 @@ exiftool # (metadata/audio, and file detection for .webm files) jq # (json and metadata) lynx # (html/web pages) - poppler_utils # pdftoppm # (pdf) + poppler-utils # pdftoppm # (pdf) odt2txt # (odt) imagemagick # convert from imagemagick (fonts) atool # (archives) @@ -105,7 +114,7 @@ enable = true; commands = { - dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"''; + dragon-out = ''%${pkgs.dragon-drop}/bin/xdragon -a -x "$fx"''; editor-open = ''$$EDITOR $f''; mkdir = '' ''${{ diff --git a/programs/neovim.nix b/programs/neovim.nix index a29da4f..1ea9746 100644 --- a/programs/neovim.nix +++ b/programs/neovim.nix @@ -1,5 +1,9 @@ { pkgs, ... }: { + + home.packages = with pkgs; [ + ccls + ]; programs.neovim = { enable = true; withPython3 = true; @@ -25,6 +29,16 @@ "rust-analyzer.diagnostics.enable" = true; "rust-analyzer.checkOnSave.enable" = false; "languageserver" = { + "ccls" = { + "command" = "ccls"; + "filetypes" = ["c" "cpp" "objc" "objcpp"]; + "rootPatterns" = [".ccls" "compile_commands.json" ".vim/" ".git/" ".hg/"]; + "initializationOptions" = { + "cache" = { + "directory" = "/tmp/ccls"; + }; + }; + }; "slint" = { "filetypes" = [ "slint" ]; "command" = "slint-lsp"; diff --git a/programs/ssh.nix b/programs/ssh.nix index 339400b..5fa2946 100644 --- a/programs/ssh.nix +++ b/programs/ssh.nix @@ -40,6 +40,29 @@ port = 49388; user = "server"; }; + fwin = { + user = "me"; + hostname = "fwin"; + }; + + + feh = { + user = "root"; + hostname = "100.107.101.77"; + port = 49001; + }; + ppc-hosting = { + user = "root"; + hostname = "100.107.101.77"; + port = 49002; + }; + pcmc = { + user = "root"; + hostname = "100.107.101.77"; + port = 49003; + }; + + phone = { user = "u0_a345"; port = 8022; diff --git a/programs/thunderbird.nix b/programs/thunderbird.nix index 4e2289c..1568c2c 100644 --- a/programs/thunderbird.nix +++ b/programs/thunderbird.nix @@ -1,5 +1,6 @@ { pkgs, config, persistentDir, ... }: { + ## thunderbird settings programs.thunderbird = { enable = true; @@ -8,8 +9,23 @@ }; }; + ## mail archiveing... -/* + + ## email accounts + /* + accounts.email.accounts.sewi-gmail = { + flavor = "gmail.com"; + }; + + accounts.email.accounts.c2vi-gmail = { + flavor = "gmail.com"; + }; + */ + + + /* + # not working.... home.file.".thunderbird" = { force = true; source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/thunderbird"; diff --git a/random-pkgs.nix b/random-pkgs.nix index 41d816e..8e17ee0 100644 --- a/random-pkgs.nix +++ b/random-pkgs.nix @@ -6,6 +6,11 @@ pkgsUnstable = import nixpkgs-unstable { inherit system; }; lib = pkgs.lib; in rec { + + affine = pkgs.affine.overrideAttrs { + patches = [ + ../overlays/patches/affin-edgeless-right-click-drag.patch + ]; runc = pkgs.runc.overrideAttrs ({ src = /home/me/work/config/gitignore/runc; diff --git a/users/common/home.nix b/users/common/home.nix index 11e2155..0088157 100644 --- a/users/common/home.nix +++ b/users/common/home.nix @@ -21,8 +21,11 @@ home.sessionVariables = { EDITOR = "nvim"; }; + home.sessionPath = [ + "/home/me/work/path-extra" + "${self}/mybin" + ]; - home.sessionPath = [ "${self}/mybin" ]; home.file = { ".subversion/config".text = '' @@ -34,6 +37,8 @@ } // (if hostname == "main" then { ".rclone.conf".source = config.lib.file.mkOutOfStoreSymlink "${secretsDir}/rclone-conf"; } else {}); home.packages = with pkgs; [ + unar + lm_sensors borgbackup rclone archivemount @@ -41,7 +46,8 @@ pkgs.hostname vim tree - htop + lsof + htop-vim subversion pv nodejs @@ -62,7 +68,7 @@ wakeonlan # python.... - (python310.withPackages (p: with p; [ + (python3.withPackages (p: with p; [ pandas click click-aliases diff --git a/users/me/gui-home.nix b/users/me/gui-home.nix index bfcf9b5..7bd8dd4 100755 --- a/users/me/gui-home.nix +++ b/users/me/gui-home.nix @@ -1,5 +1,5 @@ -{ config, pkgs, self, workDir, inputs, persistentDir, system, ... }: +{ config, secretsDir, pkgs, self, workDir, inputs, persistentDir, system, pkgsUnstable, ... }: { imports = [ @@ -17,8 +17,20 @@ inputs.lan-mouse.homeManagerModules.default "${inputs.vscode-server}/modules/vscode-server/home.nix" + + inputs.walker.homeManagerModules.default ]; - services.vscode-server.enable = true; + + programs.zed-editor = { + enable = true; + package = inputs.zed.packages.x86_64-linux.default; + }; + + programs.walker = { + enable = false; + runAsService = true; + }; + programs.vscode.enable = true; programs.vscode.extensions = with pkgs.vscode-extensions; [ @@ -55,12 +67,15 @@ home.sessionVariables = { inherit system; VIC_BINARY = "/home/me/work/victorinix/vic"; + PPC_DATA_DIR = "/home/me/work/gitignore/ppc/data"; }; services.dunst.enable = true; home.file = { + ".davfs2/secrets".source = config.lib.file.mkOutOfStoreSymlink "${secretsDir}/davfs2-secrets"; + #".mozilla/firefox".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/firefox"; ".cache/rofi-3.runcache".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/rofi-run-cache"; @@ -76,6 +91,7 @@ # packages that i might not need everywhere?? #wstunnel rclone + pkgsUnstable.tsx playerctl alsa-utils usbutils @@ -122,7 +138,7 @@ xorg.xmodmap inkscape kazam - onlyoffice-bin + onlyoffice-desktopeditors # my own packages supabase-cli @@ -147,12 +163,14 @@ libvirt virt-manager freerdp + nixd #(pkgs.writeShellApplication { #name = "log"; #runtimeInputs = [ inputs.my-log.packages.${system}.pythonForLog ]; #text = "cd /home/me/work/log/new; nix develop -c 'python ${workDir}/log/new/client.py'"; #text = ''${inputs.my-log.packages.${system}.pythonForLog}/bin/python ${workDir}/log/new/client.py "$@"''; #}) + (pkgs.writeShellApplication { name = "rpi"; text = let @@ -298,5 +316,3 @@ }) ]; } - -