NeilandOrca 6834a980d8 fix(terminal): restore Polish / US-Extended Option+letter composition (#1205) (#1209)
* fix(terminal): restore Polish / US-Extended Option+letter composition (#1205)

The macOptionAsAlt layout probe only inspects `navigator.keyboard.getLayoutMap()`,
which surfaces the base (unshifted) layer. Polish Pro, US Extended, ABC
Extended, and the CJK Roman IMEs all ship a US-QWERTY base layer and put
their dead-key composition on the Option layer — invisible to the
fingerprint. The probe therefore classified them as `'us'`, flipped
`macOptionIsMeta=true`, and xterm.js translated every Option+letter into
an Esc+letter readline chord, silently swallowing ą, ć, ę, ł, etc.

Adds a main-process IPC that reads macOS's
`AppleCurrentKeyboardLayoutInputSourceID` (the same signal Ghostty uses
via TISCopyCurrentKeyboardInputSource) and an explicit denylist of input
source IDs whose Option layer composes. When the active ID is on the
denylist, the probe forces `'non-us'` so `effectiveMacOptionAsAlt`
resolves to `'false'` and Option+letter compositions reach the shell.

Co-authored-by: Orca <help@stably.ai>

* fix(terminal): widen Option+letter composition fix to ABC + all non-US layouts

My earlier attempt at #1205 missed the broader bug: Option+A wasn't working
on the plain "ABC" layout either (Option+A → å got swallowed). Two
corrections:

1. systemPreferences.getUserDefault only reads NSGlobalDomain / the app's
   own domain. AppleCurrentKeyboardLayoutInputSourceID lives in
   com.apple.HIToolbox, so the previous IPC returned null on every
   machine. Switched to execFileSync('/usr/bin/defaults') with a 500ms
   timeout — the same mechanism Apple documents — so the real ID reaches
   the renderer. Verified live: the IPC now returns
   `com.apple.keylayout.ABC` instead of `null`.

2. The denylist approach was too narrow. macOS ships many layouts that
   share a US-identical base layer but compose via Option (ABC, Polish
   Pro, US Extended, ABC Extended, every CJK Roman IME). Flipped to an
   allowlist matching Ghostty: only com.apple.keylayout.US and
   com.apple.keylayout.USInternational-PC get Option-as-Meta; everything
   else defaults to compose. When the IPC returns a concrete ID, the
   classifier is authoritative and the layout fingerprint is skipped;
   the fingerprint only runs as a fallback on non-Darwin / IPC failure.

Verified live in dev: on ABC, Option+A now produces å in the terminal.

Co-authored-by: Orca <help@stably.ai>

* fix(ipc): read keyboard input source ID asynchronously

Avoids blocking the main-process event loop on every focus-in probe
(up to 500ms). Same behavior, same timeout — just non-blocking.

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Orca <help@stably.ai>
2026-04-28 00:32:28 -07:00
2026-03-16 20:29:24 -07:00
2026-04-06 23:32:45 -07:00
2026-03-16 22:27:51 -07:00
2026-03-19 00:36:36 -07:00
2026-03-28 10:19:14 -07:00
2026-04-28 06:40:35 +00:00

Orca

Orca

Supported Platforms Discord Follow on X

English · 中文 · 日本語 · Español

The AI Orchestrator for 100x builders.
Run Claude Code, Codex, or OpenCode side-by-side across repos — each in its own worktree, tracked in one place.
Available for macOS, Windows, and Linux.

Download at onOrca.dev

Orca Screenshot

Supported Agents

Orca supports any CLI agent (not just this list).

Claude Code   Codex   Gemini   Pi   Hermes Agent   OpenCode   Goose   Amp   Auggie   Charm   Cline   Codebuff   Continue   Cursor   Droid   GitHub Copilot   Kilocode   Kimi   Kiro   Mistral Vibe   Qwen Code   Rovo Dev


Features

  • No login required — Bring your own Claude Code or Codex subscription.
  • Worktree-native — Every feature gets its own worktree. No stashing, no branch juggling. Spin up and switch instantly.
  • Multi-agent terminals — Run multiple AI agents side-by-side in tabs and panes. See which ones are active at a glance.
  • Built-in source control — Review AI-generated diffs, make quick edits, and commit without leaving Orca.
  • GitHub integration — PRs, issues, and Actions checks linked to each worktree automatically.
  • SSH support — Connect to remote machines and run agents on them directly from Orca.
  • Notifications — Know when an agent finishes or needs attention. Mark threads unread to come back later.

Install


[New] Annotate AI Diff

Comment directly on AI-generated diffs.

Annotate any line in an AI-generated diff with your feedback, then send it back to the agent to revise. Keep the review loop tight — no copying line numbers, no context switching.

Orca Annotate AI Diff — comment on AI-generated diffs and send feedback to the agent


[New] Hot Swap Codex Accounts

Multiple Codex accounts? Switch in one click.

If you run multiple Codex accounts to get the best token deal, Orca lets you hot-swap between them instantly — no re-login, no config files. Just pick an account and keep building.

Orca Codex Account Switcher — hot swap between multiple Codex accounts


[New] Per Worktree Browser & Design Mode

See your app. Click any element. Drop it into the chat.

Orca ships with a built-in browser right inside your worktree. Preview your app as you build, then switch to Design Mode — click any UI element and it lands directly in your AI chat as context. No screenshots, no copy-pasting selectors. Just point at what you want to change and tell the agent what to do.

Orca Design Mode — click any UI element and drop it into the chat


[New] Introducing the Orca CLI

Agent orchestration from your terminal.

Let your AI agent control your IDE. Use AI to add projects to your IDE, spin up worktrees, and update the current worktree's comment with meaningful progress checkpoints directly from the terminal. Ships with the Orca IDE (install under Settings).

npx skills add https://github.com/stablyai/orca --skill orca-cli

Community & Support

  • Discord: Join the community on Discord.
  • Twitter / X: Follow @orca_build for updates and announcements.
  • Feedback & Ideas: We ship fast. Missing something? Request a new feature.
  • Show Support: Star this repo to follow along with our daily ships.

Developing

Want to contribute or run locally? See our CONTRIBUTING.md guide.

S
Description
Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.
Readme MIT
1.4 GiB
Languages
TypeScript 95.2%
JavaScript 4.1%
Swift 0.2%
CSS 0.1%
HCL 0.1%