feat: nix-on-droid shell environment for Android #425

Open
lytedev wants to merge 1 commit from nix-on-droid into main
Owner

Summary

  • Adds nix-on-droid flake input and nixOnDroidConfigurations.android output
  • New packages/hosts/android.nix with shell environment mirroring NixOS shell-config.nix
  • Includes fish shell, CLI tools (helix, jj, bat, eza, ripgrep, etc.), dotfile symlinks, and Android integration (termux-open, wake-lock, storage access)
  • Adds nix-on-droid cachix substituter + key
  • Removes the nix-on-droid TODO from flake.nix

Usage on phone

Install nix-on-droid from F-Droid, clone/fetch the flake, then:

nix-on-droid switch --flake .#android

Notes

  • No systemd, no NixOS modules — this is purely a terminal environment via proot
  • Building on-device is slow; consider using existing NixOS hosts as remote builders
  • Tool configs (helix, atuin, jj, zellij, etc.) are shared with NixOS hosts via dotfiles/
  • Dropped NixOS-specific packages (kanidm, fwupd, traceroute, inetutils, senpai, etc.)

Test plan

  • Verify flake evaluates: nix eval .#nixOnDroidConfigurations.android
  • Install nix-on-droid on an Android device and run nix-on-droid switch --flake .#android
  • Verify fish shell, prompt, aliases, and tool configs work
## Summary - Adds `nix-on-droid` flake input and `nixOnDroidConfigurations.android` output - New `packages/hosts/android.nix` with shell environment mirroring NixOS `shell-config.nix` - Includes fish shell, CLI tools (helix, jj, bat, eza, ripgrep, etc.), dotfile symlinks, and Android integration (termux-open, wake-lock, storage access) - Adds nix-on-droid cachix substituter + key - Removes the nix-on-droid TODO from flake.nix ## Usage on phone Install nix-on-droid from F-Droid, clone/fetch the flake, then: ```sh nix-on-droid switch --flake .#android ``` ## Notes - No systemd, no NixOS modules — this is purely a terminal environment via proot - Building on-device is slow; consider using existing NixOS hosts as remote builders - Tool configs (helix, atuin, jj, zellij, etc.) are shared with NixOS hosts via `dotfiles/` - Dropped NixOS-specific packages (kanidm, fwupd, traceroute, inetutils, senpai, etc.) ## Test plan - [ ] Verify flake evaluates: `nix eval .#nixOnDroidConfigurations.android` - [ ] Install nix-on-droid on an Android device and run `nix-on-droid switch --flake .#android` - [ ] Verify fish shell, prompt, aliases, and tool configs work
feat: auto-provision Bulwark OAuth client in Stalwart via systemd
Some checks failed
/ check-format (push) Failing after 11s
/ build (push) Successful in 6m6s
8e63bc9b53
Adds a oneshot service that ensures the bulwark-webmail OAuth client
principal exists in Stalwart's internal directory. Idempotent — checks
first, creates only if missing.
style: format bulwark.nix
Some checks failed
/ check-format (push) Failing after 9s
/ build (push) Successful in 6m0s
0dd24e7f4b
style: format bulwark.nix and mail.nix
All checks were successful
/ check-format (push) Successful in 10s
/ build (push) Successful in 5m59s
9377468353
feat: add nix-on-droid configuration for Android phone shell environment
All checks were successful
/ check-format (push) Successful in 10s
/ build (push) Successful in 6m1s
1c9f5b5315
lytedev force-pushed nix-on-droid from 1c9f5b5315
All checks were successful
/ check-format (push) Successful in 10s
/ build (push) Successful in 6m1s
to b60f9793cd
All checks were successful
/ check-format (push) Successful in 9s
/ build (push) Successful in 5m59s
2026-03-23 15:33:32 -05:00
Compare
All checks were successful
/ check-format (push) Successful in 9s
Required
Details
/ build (push) Successful in 5m59s
Required
Details
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin nix-on-droid:nix-on-droid
git switch nix-on-droid
Sign in to join this conversation.
No reviewers
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
lytedev/nix!425
No description provided.