From d10d239e2eb892b436c6ef21bc7b7abd72a39cd8 Mon Sep 17 00:00:00 2001 From: pagedmov Date: Fri, 12 Sep 2025 15:51:26 -0400 Subject: [PATCH] changes 09-12-25 --- flake.lock | 140 +++++++++++++------ flake.nix | 7 + lib/mk_host.nix | 5 +- modules/home/environment/hyprland.nix | 2 +- modules/home/environment/userpkgs.nix | 2 + modules/home/environment/zsh/aliases.nix | 2 +- modules/home/environment/zsh/extraconfig.nix | 4 + modules/sys/hardware/network.nix | 1 + modules/sys/software/packages.nix | 5 + modules/sys/software/services.nix | 43 +++++- overlay/overlay.nix | 29 +++- 11 files changed, 186 insertions(+), 54 deletions(-) diff --git a/flake.lock b/flake.lock index 4650612..4fc6755 100755 --- a/flake.lock +++ b/flake.lock @@ -100,9 +100,28 @@ "type": "github" } }, + "copyparty": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1756412699, + "narHash": "sha256-0zntPGPK18f5Jcw88f+ibF7BdrHqrGn2vxb6ClpMYZs=", + "owner": "9001", + "repo": "copyparty", + "rev": "3e90abbf6f24b3bcc4459bda32f0471f51722b65", + "type": "github" + }, + "original": { + "owner": "9001", + "repo": "copyparty", + "type": "github" + } + }, "disko": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1753140376, @@ -137,11 +156,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -193,6 +212,21 @@ } }, "flake-utils": { + "locked": { + "lastModified": 1678901627, + "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "inputs": { "systems": "systems_3" }, @@ -272,11 +306,11 @@ ] }, "locked": { - "lastModified": 1754756528, - "narHash": "sha256-W1jYKMetZSOHP5m2Z5Wokdj/ct17swPHs+MiY2WT1HQ=", + "lastModified": 1754842705, + "narHash": "sha256-2vvncPLsBWV6dRM5LfGHMGYZ+vzqRDqSPBzxPAS0R/A=", "owner": "nix-community", "repo": "home-manager", - "rev": "3ec1cd9a0703fbd55d865b7fd2b07d08374f0355", + "rev": "91586008a23c01cc32894ee187dca8c0a7bd20a4", "type": "github" }, "original": { @@ -287,7 +321,7 @@ }, "hypr-contrib": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1753252360, @@ -348,11 +382,11 @@ ] }, "locked": { - "lastModified": 1752149140, - "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", + "lastModified": 1754305013, + "narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", + "rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d", "type": "github" }, "original": { @@ -371,17 +405,17 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems", "xdph": "xdph" }, "locked": { - "lastModified": 1754662442, - "narHash": "sha256-YVplPMfoePKV2L+GOmdsS1fJQ5CCwWbyoPLMpEfWTco=", + "lastModified": 1754844749, + "narHash": "sha256-1lmwQIcusglmUk+7+FvNTDV4GBxskpWnFdC8JhSvT2Y=", "ref": "refs/heads/main", - "rev": "00da4450db9bab1abfda169eefec8dab98f63a0b", - "revCount": 6355, + "rev": "584b844aaf72cd7ea6851117f1bd598b7467ffc1", + "revCount": 6357, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -518,7 +552,7 @@ "inputs": { "hyprutils": "hyprutils_2", "hyprwayland-scanner": "hyprwayland-scanner_2", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "systems": "systems_2" }, "locked": { @@ -547,11 +581,11 @@ ] }, "locked": { - "lastModified": 1753800567, - "narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=", + "lastModified": 1754481650, + "narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7", + "rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd", "type": "github" }, "original": { @@ -664,6 +698,21 @@ } }, "nixpkgs": { + "locked": { + "lastModified": 1748162331, + "narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-25.05", + "type": "indirect" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1752596105, "narHash": "sha256-lFNVsu/mHLq3q11MuGkMhUUoSXEdQjCHvpReaGP1S2k=", @@ -679,7 +728,7 @@ "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_3": { "locked": { "lastModified": 1712163089, "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", @@ -695,13 +744,13 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { - "lastModified": 1753939845, - "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "94def634a20494ee057c76998843c015909d6311", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { @@ -711,7 +760,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1748929857, "narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=", @@ -727,13 +776,13 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { - "lastModified": 1754498491, - "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { @@ -743,7 +792,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1754393734, "narHash": "sha256-fbnmAwTQkuXHKBlcL5Nq1sMAzd3GFqCOQgEQw6Hy0Ak=", @@ -759,7 +808,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { "lastModified": 1751792365, "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", @@ -778,7 +827,7 @@ "nixvim": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_7", "nuschtosSearch": "nuschtosSearch", "systems": "systems_4" }, @@ -823,7 +872,7 @@ }, "nuschtosSearch": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "ixx": "ixx", "nixpkgs": [ "nixvim", @@ -854,11 +903,11 @@ ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1754416808, + "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864", "type": "github" }, "original": { @@ -869,12 +918,13 @@ }, "root": { "inputs": { + "copyparty": "copyparty", "disko": "disko", "home-manager": "home-manager", "hypr-contrib": "hypr-contrib", "hyprland": "hyprland", "hyprpicker": "hyprpicker", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "nixvim": "nixvim", "spicetify-nix": "spicetify-nix", "stylix": "stylix" @@ -888,11 +938,11 @@ "systems": "systems_5" }, "locked": { - "lastModified": 1754196919, - "narHash": "sha256-0zATw65mNql9H8e7HWVBPpijMSbDVeK7JNivRBcUScM=", + "lastModified": 1754801101, + "narHash": "sha256-oxWjZ/SfhCvHFNePZcUu+LcE5j4xxuIt/yaoaSvMZk0=", "owner": "gerg-l", "repo": "spicetify-nix", - "rev": "24fcb94f7792ab755b933e1c9516996530ac1fbd", + "rev": "fcbfc21572518c68317df992929b28df9a1d8468", "type": "github" }, "original": { @@ -910,7 +960,7 @@ "firefox-gnome-theme": "firefox-gnome-theme", "flake-parts": "flake-parts_2", "gnome-shell": "gnome-shell", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", "nur": "nur", "systems": "systems_6", "tinted-foot": "tinted-foot", @@ -920,11 +970,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1754597531, - "narHash": "sha256-OpC9/PBIuL2WEJUkcuD/wVxI8r+3o6f5RylSIefjHo4=", + "lastModified": 1754851076, + "narHash": "sha256-k3+/24lN6E9BFRhryHocm7314t0Wtku0hgIdEWi15XI=", "owner": "danth", "repo": "stylix", - "rev": "63bb34a66ad7d1af2e95ee20dd675896b2074c32", + "rev": "afcfed6fd2a51615cd63aa7fa7608d670e7b61e5", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 6d27467..217ee2f 100755 --- a/flake.nix +++ b/flake.nix @@ -4,6 +4,7 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; hypr-contrib.url = "github:hyprwm/contrib"; + copyparty.url = "github:9001/copyparty"; hyprpicker.url = "github:hyprwm/hyprpicker"; stylix.url = "github:danth/stylix"; disko.url = "github:nix-community/disko"; @@ -44,6 +45,12 @@ host = "phosphorous"; hostDir = "work"; kind = "both"; + extraNixosModules = [ + inputs.copyparty.nixosModules.default + ]; + extraOverlays = [ + inputs.copyparty.overlays.default + ]; } { host = "mercury"; diff --git a/lib/mk_host.nix b/lib/mk_host.nix index 1543116..fed1146 100644 --- a/lib/mk_host.nix +++ b/lib/mk_host.nix @@ -8,6 +8,7 @@ kind, extraNixosModules ? [], extraHomeModules ? [], + extraOverlays ? [], overlay ? true }: @@ -26,9 +27,9 @@ let pkgs = import inputs.nixpkgs { inherit system; config = nixpkgsConfig; - overlays = if overlay then [ + overlays = extraOverlays ++ (if overlay then [ (import ../overlay/overlay.nix { inherit host; root = inputs.self; }) - ] else []; + ] else []); }; specialArgs = { inherit inputs username host; diff --git a/modules/home/environment/hyprland.nix b/modules/home/environment/hyprland.nix index a6cca82..44bbde5 100755 --- a/modules/home/environment/hyprland.nix +++ b/modules/home/environment/hyprland.nix @@ -1,6 +1,6 @@ { inputs, pkgs, lib, config, self, host, ... }: let - desktop = host == "oganesson"; + desktop = host == "oganesson" || host == "phosphorous"; screenshot_bind = if desktop then [ "super, print, exec, grimblast copy area" diff --git a/modules/home/environment/userpkgs.nix b/modules/home/environment/userpkgs.nix index c30429c..e1e4078 100755 --- a/modules/home/environment/userpkgs.nix +++ b/modules/home/environment/userpkgs.nix @@ -35,6 +35,7 @@ in { nemo feh gtk3 + vicut imagemagick vlc lolcat @@ -72,6 +73,7 @@ in { discord cloc wine + fira-code nerd-fonts.fira-code nodejs_latest ] ++ scripts; diff --git a/modules/home/environment/zsh/aliases.nix b/modules/home/environment/zsh/aliases.nix index 3cb9cf0..d109158 100644 --- a/modules/home/environment/zsh/aliases.nix +++ b/modules/home/environment/zsh/aliases.nix @@ -14,7 +14,6 @@ gtp = "playshellsound ${self}/assets/sound/rm.wav; gtrash put"; sr = "source ~/.zshrc && source ~/.zshenv"; ".." = "cd .."; - rm = "echo 'use \"gtp\" instead'"; psg = "ps aux | grep -v grep | grep -i -e VSZ -e"; mkdir = "mkdir -p"; pk = "pkill -9 -f"; @@ -36,6 +35,7 @@ shortdate = "date '+%m-%d-%y'"; suvi = "sudoedit"; suvide = "EDITOR=neovide; suvi"; + rustdev = "nix develop github:km-clay/devshells#rust"; }; }; }; diff --git a/modules/home/environment/zsh/extraconfig.nix b/modules/home/environment/zsh/extraconfig.nix index 9d5bddd..07889ae 100644 --- a/modules/home/environment/zsh/extraconfig.nix +++ b/modules/home/environment/zsh/extraconfig.nix @@ -21,6 +21,10 @@ in export RESULT echo "\$RESULT = $RESULT" } + escaped() { + # escapes regex chars + sed 's/[^^]/[&]/g; s/\^/\\^/g' <<<"$1" + } nix-shell() { NIX_SHELL=true command nix-shell "$@" --run zsh } diff --git a/modules/sys/hardware/network.nix b/modules/sys/hardware/network.nix index b497703..93f54e2 100755 --- a/modules/sys/hardware/network.nix +++ b/modules/sys/hardware/network.nix @@ -12,6 +12,7 @@ "192.168.1.201" = [ "oganesson" ]; "192.168.1.202" = [ "mercury" ]; "192.168.1.134" = [ "hosting.localhost" ]; + "192.168.1.140" = [ "panel.test" "dnsman.test" ]; }; firewall = { enable = true; diff --git a/modules/sys/software/packages.nix b/modules/sys/software/packages.nix index 77a415e..14bbb85 100755 --- a/modules/sys/software/packages.nix +++ b/modules/sys/software/packages.nix @@ -42,6 +42,11 @@ vim uhk-agent jq + jinja2-cli + python3 + python313Packages.jinja2 + python313Packages.pillow + ffmpeg wl-clipboard cmake libnotify diff --git a/modules/sys/software/services.nix b/modules/sys/software/services.nix index fbcfd72..c3af213 100755 --- a/modules/sys/software/services.nix +++ b/modules/sys/software/services.nix @@ -1,9 +1,17 @@ -{ lib, config, ... }: { +{ lib, pkgs, config, ... }: { options = { movOpts.softwareCfg.sysServices.enable = lib.mkEnableOption "enables default system services"; }; config = lib.mkIf config.movOpts.softwareCfg.sysServices.enable { + users.users.pagedmov = { + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBX/xEA6/zfAkjwaDcl+NnCJLMd7OzRru7IKbn+52fi5 root@nixos" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK6QYwnaxkpeN7c1NH5u5z1lv4VqKKAaty2qJ2BXRcg2 pagedmov@nixos" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAFWGaQKygNvvZ/qtR6QFxAA1HQQgoQPCoQbx/cyhEuC pagedmov@nixos" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICOg895UX4fT+1t7icEq5t9U7Ggd9HeDcgFBkyZ4/ghv root@nixos" + ]; + }; services = { keyd = { enable = true; @@ -12,6 +20,39 @@ settings.main = { capslock = "esc"; }; }; }; + copyparty = { + enable = true; + settings = { + e2dsa = true; + }; + accounts = { + admin = { + passwordFile = "${pkgs.writeText "/run/keys/admin" "admin123"}"; + }; + pagedmov = { + passwordFile = "${pkgs.writeText "/run/keys/pagedmov" "200231980qwertyuiop"}"; + }; + testuser = { + passwordFile = "${pkgs.writeText "/run/keys/testuser" "testpassword"}"; + }; + }; + volumes = { + "/" = { + path = "/var/lib/copyparty"; + access = { + A = [ "admin " ]; + rwmd = [ "pagedmov" ]; + }; + }; + "/testvol" = { + path = "/var/lib/copyparty/testvol"; + access = { + A = [ "admin " ]; + rwmd = [ "testuser" ]; + }; + }; + }; + }; pipewire = { enable = true; pulse.enable = true; diff --git a/overlay/overlay.nix b/overlay/overlay.nix index 197b713..67886a7 100644 --- a/overlay/overlay.nix +++ b/overlay/overlay.nix @@ -7,10 +7,30 @@ let rev = "master"; sha256 = "sha256-/Qj8CWqn7w1R83enixxgC5ijUrHvqN3C7ZvRCs/AzBI="; }; -in -{ + vicutSrc = super.fetchFromGitHub { + owner = "km-clay"; + repo = "vicut"; + rev = "v0.4.2"; + sha256 = "sha256-y5H4m/1ZNYkvhYnfvKs2zVq6dzUgUYsu0UCBGpcoYgQ="; + }; +in { + vicut = super.rustPlatform.buildRustPackage { + pname = "vicut"; + version = "v0.4.2"; + + src = vicutSrc; + cargoLock.lockFile = "${vicutSrc}/Cargo.lock"; + + meta = { + description = "A Vim-based, scriptable, headless text editor for the command line"; + homepage = "https://github.com/km-clay/vicut"; + license = super.lib.licenses.mit; + maintainers = []; + }; + }; + toilet = super.toilet.overrideAttrs (old: { - buildInputs = old.buildInputs or [ ] ++ [ extraFigletFonts ]; + buildInputs = (old.buildInputs or [ ]) ++ [ extraFigletFonts ]; installPhase = '' make install PREFIX=$out @@ -18,10 +38,11 @@ in cp -r ${extraFigletFonts}/* $out/share/figlet ''; }); + myPkgs = { - # Packages that I've made slash = super.callPackage ./pkgs/slash/package.nix {}; fzf-tab = super.callPackage ./pkgs/zsh-fzf-tab/package.nix {}; }; + myScripts = import ./scripts { inherit super root host; }; }