From 6267da609a5831ce9f60227a3b4588e02dd1ae2d Mon Sep 17 00:00:00 2001 From: ulic-youthlic Date: Wed, 2 Jul 2025 18:39:25 +0800 Subject: [PATCH] module(waydroid): Add waydroid module --- flake.lock | 334 +++++++++++++++++- flake.nix | 6 + nixos/configurations/Tytonidae/default.nix | 11 +- nixos/modules/default.nix | 1 + nixos/modules/programs/default.nix | 1 - nixos/modules/virtualisation/default.nix | 6 + .../{programs => virtualisation}/kvm.nix | 4 +- nixos/modules/virtualisation/waydroid.nix | 20 ++ overlays/additions/default.nix | 1 + overlays/additions/waydroid-script.nix | 5 + pkgs/default.nix | 3 + 11 files changed, 381 insertions(+), 11 deletions(-) create mode 100644 nixos/modules/virtualisation/default.nix rename nixos/modules/{programs => virtualisation}/kvm.nix (88%) create mode 100644 nixos/modules/virtualisation/waydroid.nix create mode 100644 overlays/additions/waydroid-script.nix diff --git a/flake.lock b/flake.lock index a57c7ec..cd0c59f 100644 --- a/flake.lock +++ b/flake.lock @@ -87,6 +87,37 @@ "type": "github" } }, + "cachix": { + "inputs": { + "devenv": [ + "nur-ataraxiasjel", + "devenv" + ], + "flake-compat": [ + "nur-ataraxiasjel", + "devenv" + ], + "git-hooks": [ + "nur-ataraxiasjel", + "devenv" + ], + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1744206633, + "narHash": "sha256-pb5aYkE8FOoa4n123slgHiOf1UbNSnKe5pEZC+xXD5g=", + "owner": "cachix", + "repo": "cachix", + "rev": "8a60090640b96f9df95d1ab99e5763a586be1404", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "latest", + "repo": "cachix", + "type": "github" + } + }, "chaotic": { "inputs": { "flake-schemas": "flake-schemas", @@ -156,6 +187,40 @@ "type": "github" } }, + "devenv": { + "inputs": { + "cachix": "cachix", + "flake-compat": "flake-compat_3", + "git-hooks": "git-hooks", + "nix": "nix", + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1748273445, + "narHash": "sha256-5V0dzpNgQM0CHDsMzh+ludYeu1S+Y+IMjbaskSSdFh0=", + "owner": "cachix", + "repo": "devenv", + "rev": "668a50d8b7bdb19a0131f53c9f6c25c9071e1ffb", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "devenv-root": { + "flake": false, + "locked": { + "narHash": "sha256-d6xi4mKdjkX2JFicDIv5niSzpyI0m/Hnm8GGAIU04kY=", + "type": "file", + "url": "file:///dev/null" + }, + "original": { + "type": "file", + "url": "file:///dev/null" + } + }, "disko": { "inputs": { "nixpkgs": [ @@ -225,6 +290,22 @@ } }, "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { "locked": { "lastModified": 1747046372, "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", @@ -257,6 +338,47 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nur-ataraxiasjel", + "devenv", + "nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_2" + }, + "locked": { + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-schemas": { "locked": { "lastModified": 1721999734, @@ -321,12 +443,39 @@ } }, "git-hooks": { + "inputs": { + "flake-compat": [ + "nur-ataraxiasjel", + "devenv" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "nur-ataraxiasjel", + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1746537231, + "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "git-hooks_2": { "inputs": { "flake-compat": [ "stylix", "flake-compat" ], - "gitignore": "gitignore", + "gitignore": "gitignore_2", "nixpkgs": [ "stylix", "nixpkgs" @@ -347,6 +496,29 @@ } }, "gitignore": { + "inputs": { + "nixpkgs": [ + "nur-ataraxiasjel", + "devenv", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { "inputs": { "nixpkgs": [ "stylix", @@ -470,6 +642,22 @@ "type": "github" } }, + "libgit2": { + "flake": false, + "locked": { + "lastModified": 1697646580, + "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=", + "owner": "libgit2", + "repo": "libgit2", + "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5", + "type": "github" + }, + "original": { + "owner": "libgit2", + "repo": "libgit2", + "type": "github" + } + }, "lix": { "flake": false, "locked": { @@ -568,6 +756,43 @@ "type": "github" } }, + "nix": { + "inputs": { + "flake-compat": [ + "nur-ataraxiasjel", + "devenv" + ], + "flake-parts": "flake-parts_2", + "libgit2": "libgit2", + "nixpkgs": "nixpkgs_5", + "nixpkgs-23-11": [ + "nur-ataraxiasjel", + "devenv" + ], + "nixpkgs-regression": [ + "nur-ataraxiasjel", + "devenv" + ], + "pre-commit-hooks": [ + "nur-ataraxiasjel", + "devenv" + ] + }, + "locked": { + "lastModified": 1745930071, + "narHash": "sha256-bYyjarS3qSNqxfgc89IoVz8cAFDkF9yPE63EJr+h50s=", + "owner": "domenkozar", + "repo": "nix", + "rev": "b455edf3505f1bf0172b39a735caef94687d0d9c", + "type": "github" + }, + "original": { + "owner": "domenkozar", + "ref": "devenv-2.24", + "repo": "nix", + "type": "github" + } + }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -659,6 +884,21 @@ "type": "github" } }, + "nixpkgs-lib_2": { + "locked": { + "lastModified": 1743296961, + "narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { "lastModified": 1751582995, @@ -724,6 +964,70 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1733212471, + "narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "55d15ad12a74eb7d4646254e13638ad0c4128776", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1717432640, + "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1746807397, + "narHash": "sha256-zU2z0jlkJGWLhdNr/8AJSxqK8XD0IlQgHp3VZcP56Aw=", + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "c5208b594838ea8e6cca5997fbf784b7cca1ca90", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1748190013, + "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "62b852f6c6742134ade1abdd2a21685fd617a291", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { "locked": { "lastModified": 1747958103, "narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=", @@ -765,6 +1069,27 @@ "type": "github" } }, + "nur-ataraxiasjel": { + "inputs": { + "devenv": "devenv", + "devenv-root": "devenv-root", + "flake-parts": "flake-parts_3", + "nixpkgs": "nixpkgs_7" + }, + "locked": { + "lastModified": 1750950662, + "narHash": "sha256-tEdGoLUTFgPC6WtLFHUAV9ZFZ7m1NUKTS5Zw1u2B/po=", + "owner": "ataraxiasjel", + "repo": "nur", + "rev": "81ea65199b63dcb2a9b588ac4387812996e3f092", + "type": "github" + }, + "original": { + "owner": "ataraxiasjel", + "repo": "nur", + "type": "github" + } + }, "nur-rycee": { "flake": false, "locked": { @@ -798,6 +1123,7 @@ "nixos-cosmic": "nixos-cosmic", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_3", + "nur-ataraxiasjel": "nur-ataraxiasjel", "nur-rycee": "nur-rycee", "sops-nix": "sops-nix", "stylix": "stylix", @@ -894,11 +1220,11 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "flake-parts": [ "flake-parts" ], - "git-hooks": "git-hooks", + "git-hooks": "git-hooks_2", "gnome-shell": "gnome-shell", "home-manager": [ "home-manager" @@ -1063,7 +1389,7 @@ }, "treefmt-nix_2": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1750931469, diff --git a/flake.nix b/flake.nix index 00b162e..e1b50f0 100644 --- a/flake.nix +++ b/flake.nix @@ -176,5 +176,11 @@ owner = "chaotic-cx"; repo = "nyx"; }; + + nur-ataraxiasjel = { + type = "github"; + owner = "ataraxiasjel"; + repo = "nur"; + }; }; } diff --git a/nixos/configurations/Tytonidae/default.nix b/nixos/configurations/Tytonidae/default.nix index f4cdcce..66325f7 100644 --- a/nixos/configurations/Tytonidae/default.nix +++ b/nixos/configurations/Tytonidae/default.nix @@ -37,6 +37,13 @@ }; hardware.asus.enable = true; i18n.enable = true; + virtualisation = { + kvm = { + enable = true; + unixName = "david"; + }; + waydroid.enable = true; + }; programs = { bash.enable = true; guix.enable = true; @@ -45,10 +52,6 @@ steam.enable = true; tailscale.enable = true; kanata.enable = true; - kvm = { - enable = true; - unixName = "david"; - }; transmission.enable = true; nix-ld.enable = true; juicity.client.enable = true; diff --git a/nixos/modules/default.nix b/nixos/modules/default.nix index 9f3b39f..f993901 100644 --- a/nixos/modules/default.nix +++ b/nixos/modules/default.nix @@ -9,5 +9,6 @@ ./gui ./programs ./hardware.nix + ./virtualisation ]; } diff --git a/nixos/modules/programs/default.nix b/nixos/modules/programs/default.nix index 881cadf..898cd96 100644 --- a/nixos/modules/programs/default.nix +++ b/nixos/modules/programs/default.nix @@ -7,7 +7,6 @@ ./dae ./forgejo.nix ./kanata.nix - ./kvm.nix ./nh.nix ./open-webui.nix ./openssh.nix diff --git a/nixos/modules/virtualisation/default.nix b/nixos/modules/virtualisation/default.nix new file mode 100644 index 0000000..3d299fd --- /dev/null +++ b/nixos/modules/virtualisation/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./kvm.nix + ./waydroid.nix + ]; +} diff --git a/nixos/modules/programs/kvm.nix b/nixos/modules/virtualisation/kvm.nix similarity index 88% rename from nixos/modules/programs/kvm.nix rename to nixos/modules/virtualisation/kvm.nix index 9dc2817..897934f 100644 --- a/nixos/modules/programs/kvm.nix +++ b/nixos/modules/virtualisation/kvm.nix @@ -4,10 +4,10 @@ pkgs, ... }: let - cfg = config.youthlic.programs.kvm; + cfg = config.youthlic.virtualisation.kvm; in { options = { - youthlic.programs.kvm = { + youthlic.virtualisation.kvm = { enable = lib.mkEnableOption "kvm"; unixName = lib.mkOption { type = lib.types.str; diff --git a/nixos/modules/virtualisation/waydroid.nix b/nixos/modules/virtualisation/waydroid.nix new file mode 100644 index 0000000..d637ce3 --- /dev/null +++ b/nixos/modules/virtualisation/waydroid.nix @@ -0,0 +1,20 @@ +{ + lib, + config, + pkgs, + ... +}: let + cfg = config.youthlic.virtualisation.waydroid; +in { + options = { + youthlic.virtualisation.waydroid = { + enable = lib.mkEnableOption "waydroid"; + }; + }; + config = { + virtualisation.waydroid = { + enable = true; + }; + environment.systemPackages = with pkgs; [waydroid-script]; + }; +} diff --git a/overlays/additions/default.nix b/overlays/additions/default.nix index 56d7424..4746f52 100644 --- a/overlays/additions/default.nix +++ b/overlays/additions/default.nix @@ -7,6 +7,7 @@ in ./editor-runtime.nix ./radicle-ci-broker.nix ./wallpapers.nix + ./waydroid-script.nix ] |> map (file: import file args) |> (overlays: (lib.composeManyExtensions overlays) final prev) diff --git a/overlays/additions/waydroid-script.nix b/overlays/additions/waydroid-script.nix new file mode 100644 index 0000000..17213e8 --- /dev/null +++ b/overlays/additions/waydroid-script.nix @@ -0,0 +1,5 @@ +{outputs, ...}: _final: prev: let + inherit (prev.stdenv.hostPlatform) system; +in { + inherit (outputs.packages.${system}) waydroid-script; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index 68a31d0..edf5329 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -33,3 +33,6 @@ in in lib.genAttrs ["immersive-translate" "tridactyl" "redirector"] (name: firefox-addons."${name}") ) + // { + inherit (inputs.nur-ataraxiasjel.outputs.packages.${pkgs.system}) waydroid-script; + }