feat(dev-desktop): add Arch/Hyprland streaming dev desktop image - #1
Merged
Conversation
Arch Linux workstation image that streams a headless Hyprland session over Sunshine to any Moonlight client, with cloud tooling and AI coding agents preinstalled. Notes on the conventions this image bends: - amd64 only. archlinux has no official arm64 image. - Hyprland is PID 1 and starts the session via exec-once, so no supervisor or init framework is introduced. - pacman packages float because Arch is rolling. The base digest, Sunshine and the four npm agents are pinned and annotated for Renovate. Sunshine is installed from the upstream Arch package published as a release asset, which avoids pulling in AUR and makepkg. The image requires a DRM render node even though it runs headless: aquamarine only builds a GBM allocator from a backend reporting drmFD() >= 0 and the headless backend returns -1. start-desktop checks for /dev/dri/renderD128 and fails with an actionable message instead of the "no allocator available" error. Signed-off-by: swibrow <15628653+swibrow@users.noreply.github.com>
swibrow
force-pushed
the
feat/dev-desktop
branch
from
July 25, 2026 07:10
c0afa36 to
cdecceb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Arch Linux dev workstation that streams a headless Hyprland session over Sunshine to any Moonlight client, with cloud tooling and AI coding agents preinstalled.
Contents
Hyprland 0.56.0, Sunshine 2026.516.143833, Claude Code / codex / gemini-cli / opencode, kubectl, helm, k9s, kubectx, stern, terraform, opentofu, aws-cli-v2, azure-cli, node, python, uv, go, rust, neovim, chezmoi.
Conventions this image bends
archlinuxhas no official arm64 image, soplatformslists one entry.exec-once, so no supervisor or init framework is introduced.Sunshine is installed from the upstream Arch package published as a GitHub release asset, which avoids pulling AUR and
makepkginto the build.Requires a DRM render node
The image cannot start without
/dev/dri, even though it is headless. Aquamarine only builds a GBM allocator from a backend reportingdrmFD() >= 0, andCHeadlessBackend::drmFD()returns-1.start-desktopchecks for/dev/dri/renderD128and exits with an actionable message rather than the opaque "no allocator available" error.The same render node gives Sunshine VAAPI hardware encode.
Verification
Built for amd64 and the
metadata.yamltest command exits 0 in the built image.whoamireturnsdev, and the missing-render-node guard was confirmed to fire.Image is 5.6 GB uncompressed; Go, Rust, azure-cli and the desktop stack dominate.