2.7 KiB
2.7 KiB
Waydroid on NixOS is pretty simple
{ pkgs, ... }:
{
imports = [ ./waydroid-passthroughbrowser.nix ];
virtualisation = {
waydroid.enable = true;
lxd.enable = true;
};
environment.systemPackages = [ pkgs.wl-clipboard ];
}
Then in an shell:
sudo waydroid init -s GAPPS
sudo systemctl start waydroid-container
waydroid session start
Download latest F-droid from https://f-droid.org/ and install it
waydroid app install ~/Downloads/F-Droid.apk
waydroid prop set persist.waydroid.multi_windows false
Waydroid Passthrough Browser
passthroughbrowser is a simple solution to opening links from Android apps in the system browser by setting up a small HTTP server. I'll use it in waydroid configurations in a custom derivation:
# https://git.kj7rrv.com/kj7rrv/passthroughbrowser.git
{ lib, stdenv,
makeDesktopItem,
fetchFromGitea,
buildPythonPackage,
flask,
... }:
let
desktopItem = makeDesktopItem {
name = "passthroughbrowser";
desktopName = "Waydroid Passthrough Browser";
categories = ["Utility"];
exec = "passthrough_browser";
};
in buildPythonPackage {
name = "passthroughbrowser";
version = "0.0.1";
format = "simple";
src = fetchFromGitea {
domain = "git.kj7rrv.com";
owner = "kj7rrv";
repo = "passthroughbrowser";
rev = "11ab0f695b6dae4ebee06fa75d6e2796713add98";
sha256 = "sha256-JSbGsWL3kEYw4uUIUgXi7XuXYFQ0Nxkz+fZbvxfpn1o=";
};
propagatedBuildInputs = [
flask
];
installPhase = ''
mkdir -p $out/bin $out/share/passthroughbrowser
cp $src/server.py $out/bin/passthrough_browser
cp $src/PassThroughBrowser.apk $out/share/passthroughbrowser
cp --recursive "${desktopItem}/share" "$out/"
substituteInPlace $out/bin/passthrough_browser \
--replace "app.run(host='192.168.250.1', port=8888)" \
"import os; app.run(host=os.environ.get('PASSTHROUGH_HOST', '192.168.240.1'), port=8888)"
'';
}
{ pkgs, ... }:
{
home-manager.users.rrix = {
home.packages = [
pkgs.passthroughbrowser
];
home.sessionVariables = {
PASSTHROUGH_HOST = "192.168.240.1";
};
};
}