ksmithandClaude Sonnet 5 776db5ec04 Allow blank usernames, asking for one at connect time instead
Closes #21. SSH and RDP profiles previously hard-required a username
to even save the profile; that validation is dropped, and
SessionTab::requestConnectOptions() now prompts for it at connect
time when blank, reusing the existing password-prompt bar in
unmasked mode -- the same pattern already used for a blank password.

VNC's username is trickier: most VNC servers never use one (plain VNC
Authentication and no-auth don't), only the two Apple auth schemes
(security types 30/33) do, and which auth method gets used isn't known
until mid-connection, after the server's security-type list has been
negotiated -- too late for the pre-connect prompt SSH/RDP uses. Adds a
new async request/response pair to SessionBackend, usernameRequested()
signal / provideUsername() slot, mirroring the existing SSH host-key-
confirmation pattern. VncSessionBackend pauses its state machine right
before computing an Apple-auth response if no username is available --
without consuming the already-buffered prime/host-key bytes, so
resuming re-parses them identically -- emits the request, and resumes
via provideUsername(). Cancelling (or submitting blank) fails the
connection cleanly instead of sending Apple auth an empty username.

The username is kept on the tab's in-memory profile copy for its
lifetime, not written back to the saved profile, matching how
passwords are already handled.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 08:01:57 -06:00
2026-09-16 03:55:45 -06:00

OrbitHub

OrbitHub is a cross-platform native desktop app for managing and launching remote sessions from one place.

It is implemented in C++17 with Qt6 Widgets and built with CMake.

Supported target platforms:

  • Windows
  • Linux
  • macOS

Current Status

OrbitHub is in active development.

  • Milestones completed: M0-M9
  • Current milestone: Milestone 10 (v1.0 Stabilization)
  • Latest checkpoint tag: v2026.9.15
  • VNC (M6) covers standard VNC Authentication and no-auth servers; see docs/PROGRESS.md for known gaps (Apple Screen Sharing auth, compression encodings, resize, cursor sync, clipboard)

Progress and milestone details:

Latest release (installers for Windows, Linux, and macOS):

User Guide:

  • docs/USER_GUIDE.md (also available as a PDF attached to each release, and in-app via Help -> User Guide)

Screenshots

Profile list with folders

Profiles organized into folders, with protocol, host, and tags shown at a glance. (Sample data shown; not real hosts.)

Active SSH terminal session

An interactive SSH terminal session in a tab, with the event log below.

Active RDP session

An embedded RDP session in a tab.

Implemented Features

Profile Management

  • SQLite-backed profile storage
  • Create, edit, delete profiles
  • Protocol-aware profile validation (SSH/RDP/VNC)
  • Profile search and sorting
  • Tags support
  • Folder/subfolder support
  • List and Folders profile views
  • Right-click profile tree actions:
    • New Folder
    • New Connection
  • Drag-and-drop profile moves between folders with persistence

Session Experience

  • Multi-tab session window
  • Auto-connect on tab open
  • Disconnect on tab close
  • Session state indicators on tabs
  • Timestamped event log with filtering and export

SSH

  • Embedded interactive terminal (in-app typing)
  • Theme support (Dark, Light, Solarized Dark)
  • Password and private-key auth flows
  • Known-hosts policy support

RDP

  • Embedded in-window RDP rendering surface (no external launcher)
  • Keyboard/mouse input forwarding
  • Resize handling and resolution renegotiation
  • Domain-aware authentication support
  • RDP security/performance profile options

App UX

  • App icon and themed About dialog
  • File menu:
    • New Profile
    • New Folder
    • Quit
  • Help menu:
    • About OrbitHub

Build and Run

Detailed platform instructions:

Quick start (Linux/macOS with Ninja):

cmake -S . -B build -G Ninja
cmake --build build
./build/orbithub

Packaging

Detailed packaging instructions for all platforms:

Linux (.deb):

./packaging/linux/build-deb.sh

Linux (Flatpak):

./packaging/flatpak/build-flatpak.sh

Windows (Inno Setup installer):

.\packaging\windows\build-installer.ps1

macOS (.dmg):

./packaging/macos/build-dmg.sh

Dependencies

Core dependencies:

  • Qt 6 (Widgets, SQL)
  • CMake 3.21+
  • C++17 toolchain

Protocol/runtime dependencies:

  • SSH client (ssh) available on PATH for SSH sessions

Bundled/vendored third-party components:

  • KodoTerm
  • libvterm
  • FreeRDP/WinPR

Licensing

Project license:

License links:

Important third-party license notes:

  • Qt6 is dynamically linked in this project build setup.
  • Qt6 is used under LGPLv3 terms in this project build setup.
  • KodoTerm and libvterm are MIT-licensed.
  • FreeRDP/WinPR is Apache-2.0 licensed.

Repository license files:

See in-app Help -> About OrbitHub for license links and third-party inventory.

Repository Structure

  • src/ - application source code
  • docs/ - build guide, spec, and progress tracking
  • third_party/ - vendored third-party dependencies
  • build/ - local build output (generated)

Notes

  • Passwords are requested at connect time and are not stored in the profile database.
  • VNC support covers standard VNC Authentication and no-auth servers (e.g. TigerVNC, x11vnc, TightVNC); it doesn't yet reach macOS's built-in Screen Sharing server, which uses a different authentication scheme (see docs/PROGRESS.md, Milestone 6).
S
Description
No description provided
Readme MIT
12 MiB
2026-09-16 03:58:20 -06:00
Languages
C++ 95.7%
CMake 2.3%
Shell 1.1%
C 0.4%
Inno Setup 0.3%
Other 0.2%