Skip to content

feat(installer): Void Linux support via xbps + runit (draft)#79

Draft
Nomadcxx wants to merge 3 commits into
masterfrom
feat/issue-53-void-bsd-investigation
Draft

feat(installer): Void Linux support via xbps + runit (draft)#79
Nomadcxx wants to merge 3 commits into
masterfrom
feat/issue-53-void-bsd-investigation

Conversation

@Nomadcxx

Copy link
Copy Markdown
Owner

Summary

Phase 1 of #53: extend the Go installer for Void Linux (xbps + runit), not standalone shell recipes.

  • Platform detection (cmd/installer/platform.go): reads /etc/os-release, detects systemd vs runit, resolves _greeter / /var/lib/_greeter on Void
  • xbps install paths for greetd, kitty, cage, niri, sway, and GStreamer build deps
  • runit service enable: symlinks /var/service/greetd, disables conflicting agetty-tty1
  • gSlapper skip when cage is selected (no wallpaper parity on Void without a source build)
  • Docs (docs-src/getting-started/void-linux.md) and scripts/verify-void-installer.sh (static checks — passes locally)

This branch also includes the in-progress cage greeter work (#69) that Void support builds on (cage as recommended backend, Hyprland deprecation warnings).

Runit concerns (honest status)

This is a draft because runit integration is the highest-risk piece and is not yet validated on real Void hardware:

Area Risk Current approach
greetd under runit Service may not start, wrong run script, or VT handoff issues Symlink /etc/sv/greetd/var/service/greetd; disable agetty-tty1
_greeter account Config paths hardcoded for greeter elsewhere substituteGreeterPaths() + dynamic m.greeterUser in greetd config
niri/sway on Void gSlapper must build from source Supported but slow; cage path avoids this
Hyprland Not in Void repos Installer errors clearly if selected

Expect iteration after someone runs the installer on an actual Void box. The verify script only checks source structure — it does not exercise runit or greetd at runtime.

Test plan

  • Run go run ./cmd/installer/ on a fresh Void Linux VM (runit, no desktop)
  • Confirm _greeter exists and greetd config uses correct user/home paths
  • Confirm /var/service/greetd symlink and agetty-tty1 disabled
  • Reboot → greetd shows sysc-greet on vt1
  • Login with cage backend (TUI backgrounds)
  • Optional: niri backend + gSlapper source build
  • Confirm scripts/verify-void-installer.sh passes in CI or pre-merge

Out of scope (later phases)

  • Chimera Linux (apk + dinit) — Phase 2
  • GhostBSD / FreeBSD (pkg + rc.d) — Phase 3

Closes #53 when runtime-validated and merged.

Made with Cursor

Nomadcxx and others added 3 commits June 18, 2026 01:14
Add cage as the recommended greetd backend (lite mode: Kitty-only, no
gSlapper wallpapers at startup). Hyprland greeter support remains
functional but is marked deprecated with ~3 month removal timeline.

Includes design spec, implementation plan, installer/Nix/postinstall
integration, docs, launcher script, and verify script. Addresses #69.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add platform detection (runit vs systemd), xbps package installs,
_greeter account handling, runit greetd enable, and conditional
gSlapper skip for cage. Includes Void docs and verify script.

Addresses #53. Runtime testing on Void hardware still required.
Repository owner deleted a comment from coderabbitai Bot Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

add void and chimera support

1 participant