Add Nimbalyst to the coder-xfce-vnc variant and group GUI apps under Development #13

Merged
GuillaumeHemmen merged 1 commit from 0-add-nimbalyst into master 2026-06-20 14:28:05 +00:00

Summary

Bundles Nimbalyst (a visual workspace for building with Codex, Claude Code, and more) into the coder-xfce-vnc variant, mirroring the existing Lens/Claude install pattern, and moves the Lens, Claude Desktop, and Nimbalyst menu entries into the XFCE Development category.

Nimbalyst (AppImage)

Nimbalyst ships only as a Linux AppImage, which would self-mount via FUSE — impossible in the unprivileged target pod (FUSE's mount needs CAP_SYS_ADMIN, the same capability that disables the Chromium sandbox). The build therefore:

  • Pulls the always-latest release via the releases/latest redirect (no version pin, same intent as the JetBrains Toolbox block).
  • Extracts it with --appimage-extract (no FUSE, no /dev/fuse) to /opt/nimbalyst.
  • chmod -R a+rX the tree, since the AppImage's squashfs preserves 0700 dirs that a root-owned bundle would hide from the coder user (caught during testing — would otherwise ship a broken launcher).
  • Routes launches through scripts/nimbalyst-wrapper.sh/usr/local/bin/nimbalyst, applying ELECTRON_DISABLE_SANDBOX=1, --disable-dev-shm-usage, and APPDIR=/opt/nimbalyst (the bundled AppRun's AppDir auto-detection misfires when the first arg is a flag rather than a file).
  • Generates the desktop entry from the bundle's own entry, asserted via grep like the Lens/Claude entries.

Development category

The Lens and Claude sed-generated entries and the new Nimbalyst entry now normalise Categories=Development (was Network / Office / Utility), so all three sit next to the other dev tooling in the XFCE menu.

Docs

README.md: features list, the Electron & Chromium-based apps section (with the AppImage/extract rationale), and the persisted-state table (~/.config/@nimbalyst).

Verification

Validated end-to-end in a live coder-xfce-vnc workspace by replicating the exact image install (/opt/nimbalyst root-owned + a+rX, wrapper, desktop entry) and launching through /usr/local/bin/nimbalyst as the coder user — Nimbalyst's window maps and the app boots cleanly with none of the FUSE / sandbox / shm failure modes.

🤖 Generated with Claude Code

## Summary Bundles **Nimbalyst** (a visual workspace for building with Codex, Claude Code, and more) into the `coder-xfce-vnc` variant, mirroring the existing Lens/Claude install pattern, and moves the Lens, Claude Desktop, and Nimbalyst menu entries into the XFCE **Development** category. ## Nimbalyst (AppImage) Nimbalyst ships only as a Linux AppImage, which would self-mount via FUSE — impossible in the unprivileged target pod (FUSE's `mount` needs `CAP_SYS_ADMIN`, the same capability that disables the Chromium sandbox). The build therefore: - Pulls the **always-latest** release via the `releases/latest` redirect (no version pin, same intent as the JetBrains Toolbox block). - **Extracts** it with `--appimage-extract` (no FUSE, no `/dev/fuse`) to `/opt/nimbalyst`. - `chmod -R a+rX` the tree, since the AppImage's squashfs preserves `0700` dirs that a root-owned bundle would hide from the `coder` user (caught during testing — would otherwise ship a broken launcher). - Routes launches through `scripts/nimbalyst-wrapper.sh` → `/usr/local/bin/nimbalyst`, applying `ELECTRON_DISABLE_SANDBOX=1`, `--disable-dev-shm-usage`, and `APPDIR=/opt/nimbalyst` (the bundled `AppRun`'s AppDir auto-detection misfires when the first arg is a flag rather than a file). - Generates the desktop entry from the bundle's own entry, asserted via `grep` like the Lens/Claude entries. ## Development category The Lens and Claude `sed`-generated entries and the new Nimbalyst entry now normalise `Categories=Development` (was Network / Office / Utility), so all three sit next to the other dev tooling in the XFCE menu. ## Docs `README.md`: features list, the *Electron & Chromium-based apps* section (with the AppImage/extract rationale), and the persisted-state table (`~/.config/@nimbalyst`). ## Verification Validated end-to-end in a live `coder-xfce-vnc` workspace by replicating the exact image install (`/opt/nimbalyst` root-owned + `a+rX`, wrapper, desktop entry) and launching through `/usr/local/bin/nimbalyst` as the `coder` user — Nimbalyst's window maps and the app boots cleanly with none of the FUSE / sandbox / shm failure modes. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
#0 - Add Nimbalyst to coder-xfce-vnc and group GUI apps under Development
Some checks are pending
/ docker-dev-coder-xfce-vnc (push) Has started running
/ docker-dev-ci (push) Successful in 3m7s
/ docker-dev-coder (push) Successful in 3m42s
c3ebabc766
Bundle Nimbalyst (a visual workspace for building with Codex, Claude Code,
and more) into the coder-xfce-vnc variant, mirroring the Lens/Claude pattern.

Nimbalyst ships only as a Linux AppImage, which would self-mount via FUSE —
impossible in the unprivileged target pod (FUSE's mount needs CAP_SYS_ADMIN,
the same capability that disables the Chromium sandbox). So the build extracts
it with --appimage-extract (no FUSE, no /dev/fuse) to /opt/nimbalyst, pulling
the always-latest release via the releases/latest redirect, and routes every
launch through scripts/nimbalyst-wrapper.sh (/usr/local/bin/nimbalyst). The
wrapper applies the two Electron fixes (ELECTRON_DISABLE_SANDBOX=1,
--disable-dev-shm-usage) plus APPDIR=/opt/nimbalyst, because the bundled
AppRun's AppDir auto-detection misfires when the first arg is a flag. A
chmod -R a+rX makes the root-owned 0700 squashfs tree traversable by the
coder user, and a sed-derived desktop entry is asserted via grep like the
Lens/Claude entries.

Also normalise the Lens, Claude Desktop, and Nimbalyst desktop entries to
Categories=Development so all three land in the XFCE Development menu (was
Network / Office / Utility) next to the other dev tooling.

README updated: features list, the Electron & Chromium-based apps section
(with the AppImage/extract rationale), and the persisted-state table
(~/.config/@nimbalyst).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
GuillaumeHemmen scheduled this pull request to auto merge when all checks succeed 2026-06-20 14:28:01 +00:00
GuillaumeHemmen deleted branch 0-add-nimbalyst 2026-06-20 14:28:05 +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
actions/sindri!13
No description provided.