115 lines
2.7 KiB
Org Mode
115 lines
2.7 KiB
Org Mode
:PROPERTIES:
|
|
:ID: 20230526T152316.126977
|
|
:ROAM_ALIASES: Waydroid
|
|
:ROAM_REFS: https://nixos.wiki/wiki/WayDroid
|
|
:END:
|
|
#+TITLE: Waydroid on NixOS is pretty simple
|
|
|
|
#+ARROYO_NIXOS_MODULE: nixos/waydroid.nix
|
|
#+ARROYO_SYSTEM_ROLE: endpoint
|
|
|
|
#+begin_src nix :tangle ~/arroyo-nix/nixos/waydroid.nix
|
|
{ pkgs, ... }:
|
|
|
|
{
|
|
imports = [ ./waydroid-passthroughbrowser.nix ];
|
|
|
|
virtualisation = {
|
|
waydroid.enable = true;
|
|
lxd.enable = true;
|
|
};
|
|
environment.systemPackages = [ pkgs.wl-clipboard ];
|
|
}
|
|
#+end_src
|
|
|
|
Then in an shell:
|
|
|
|
#+begin_src shell
|
|
sudo waydroid init -s GAPPS
|
|
sudo systemctl start waydroid-container
|
|
waydroid session start
|
|
#+end_src
|
|
|
|
Download latest F-droid from https://f-droid.org/ and install it
|
|
|
|
#+begin_src shell
|
|
waydroid app install ~/Downloads/F-Droid.apk
|
|
#+end_src
|
|
|
|
#+begin_src shell
|
|
waydroid prop set persist.waydroid.multi_windows false
|
|
#+end_src
|
|
|
|
#+results:
|
|
|
|
* Waydroid Passthrough Browser
|
|
:PROPERTIES:
|
|
:ID: 20230607T162645.250968
|
|
:END:
|
|
|
|
[[https://git.kj7rrv.com/kj7rrv/passthroughbrowser][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:
|
|
|
|
#+AUTO_TANGLE: t
|
|
|
|
#+begin_src nix :tangle ~/arroyo-nix/pkgs/passthroughbrowser.nix
|
|
# 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)"
|
|
'';
|
|
}
|
|
#+end_src
|
|
|
|
#+begin_src nix :tangle ~/arroyo-nix/nixos/waydroid-passthroughbrowser.nix
|
|
{ pkgs, ... }:
|
|
|
|
{
|
|
home-manager.users.rrix = {
|
|
home.packages = [
|
|
pkgs.passthroughbrowser
|
|
];
|
|
home.sessionVariables = {
|
|
PASSTHROUGH_HOST = "192.168.240.1";
|
|
};
|
|
};
|
|
}
|
|
#+end_src
|