feat(waydroid): add waydroid service with niri integration #24

Merged
yuris merged 2 commits from feat/waydroid into main 2026-08-04 00:38:44 +00:00
Owner

Summary

Add Android app support via Waydroid with niri compositor integration.

Changes

modules/services/waydroid.nix (new)

Enable virtualisation.waydroid using pkgs.waydroid-nftables (nftables-compatible variant). Android properties (persist.waydroid.multi_windows, display size) are written via an activation script — NixOS exposes no option for these.

modules/desktop/niri/config.kdl

  • Window rule: pin the Waydroid full UI (app-id = ^Waydroid$) to a fixed 480px column width; the Android display size is fixed per session so free-form sizing serves no purpose
  • Super+A: spawn waydroid show-full-ui
  • Super+Shift+A: toggle between phone and full-size by restarting the Waydroid session (~12s); resizing live is not possible (upstream waydroid#1053)
  • variable-refresh-rate: enable VRR on the output
## Summary Add Android app support via Waydroid with niri compositor integration. ## Changes ### `modules/services/waydroid.nix` *(new)* Enable `virtualisation.waydroid` using `pkgs.waydroid-nftables` (nftables-compatible variant). Android properties (`persist.waydroid.multi_windows`, display size) are written via an activation script — NixOS exposes no option for these. ### `modules/desktop/niri/config.kdl` - **Window rule**: pin the Waydroid full UI (`app-id = ^Waydroid$`) to a fixed 480px column width; the Android display size is fixed per session so free-form sizing serves no purpose - **`Super+A`**: spawn `waydroid show-full-ui` - **`Super+Shift+A`**: toggle between phone and full-size by restarting the Waydroid session (~12s); resizing live is not possible ([upstream waydroid#1053](https://github.com/waydroid/waydroid/issues/1053)) - **`variable-refresh-rate`**: enable VRR on the output
- modules/services/waydroid.nix: new module; enables virtualisation.waydroid
  with waydroid-nftables package; writes Android properties via activation
  script (multi_windows, display size) since NixOS has no option for these
- modules/desktop/niri/config.kdl:
  - add window-rule pinning Waydroid full UI to 480px fixed width
  - Super+A: spawn waydroid show-full-ui
  - Super+Shift+A: toggle phone/full-size by restarting the session (~12s);
    display resolution is fixed per session (upstream waydroid#1053)
  - enable variable-refresh-rate on the output
yuris force-pushed feat/waydroid from a3a9cd9c91 to a8aa26188e 2026-08-04 00:35:21 +00:00 Compare
yuris merged commit a6a61b851c into main 2026-08-04 00:38:44 +00:00
yuris deleted branch feat/waydroid 2026-08-04 00:38:44 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
yuris/nixos-config!24
No description provided.