Skip to content

Investigate Linux support #18

Description

@raiseCatError

Status (updated at the v0.16 feature freeze)

Done: the Linux baseline and hardening (#279, #281, #284) and v0.16 Linux/WSL work run the canonical suite on Ubuntu 24.04 (Node 22/26) in CI; findings are in docs/architecture/v013-linux-foundations.md.

Remaining scope (physical): the "attempt to run NMSh on a Linux machine or VM" acceptance item: install/build, launch with real zsh, sessions, notifications (notify-send), clipboard (wl-copy / xclip), and WSL 2 under Windows Terminal. CI on Ubuntu is not physical validation.

Goal

Investigate what would be required to run NMSh on Linux, and whether the existing architecture translates cleanly.

Why

Linux is the preferred first non-macOS platform because the POSIX PTY and zsh model maps naturally to the NMSh architecture. There are no fundamental architectural barriers, but testing and packaging have not been done.

Research scope

  • Does the PTY/zsh session work on Linux without modification?
  • Are there Node.js PTY library differences on Linux?
  • Are there any macOS-specific APIs in NMSh that need Linux equivalents?
  • What terminal hosts are relevant for Linux testing (GNOME Terminal, Konsole, Alacritty, Kitty, WezTerm)?
  • What packaging/distribution approach makes sense for Linux (AppImage, Flatpak, Snap, AUR, deb)?
  • Are there any keyboard protocol or ANSI handling differences to test?

Non-goals

  • Full Linux release in this issue
  • CI infrastructure for Linux (separate concern)

Acceptance criteria (research)

  • Document: what works today on Linux with no changes
  • Document: what requires changes or investigation
  • Rough estimate of porting effort
  • Recommended first Linux terminal host to target

Human verification

  • Attempt to run NMSh on a Linux machine or VM
  • Document results

Dependencies

None blocking.

Rough effort

Research: 1 day; initial porting pass: unknown until research complete

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:platformPlatform and OS supportneeds-human-testRequires human terminal validationtype:researchResearch or investigation task

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions