Skip to content

Cannot type @ in sessions - terminal hardcodes macOptionIsMeta: true, breaking Option-composed characters on non-US keyboard layouts #103

Description

@demedlher

Environment

  • SlayZone 0.35.0, macOS 15.6 (Darwin 25.6.0)
  • Keyboard layout: Swedish - Pro

Problem
Characters that require Option on non-US Mac layouts cannot be typed in terminal
sessions. On Swedish - Pro this includes @ | \ [ ] { } ~ $. Option+2 emits ESC 2
instead of @.

Repro

  1. Set macOS input source to Swedish - Pro (or any Nordic/German layout).
  2. Open a task session in Claude mode.
  3. At the Claude prompt, press Option+2.
    Expected: @ is inserted and the file-reference picker opens.
    Actual: no @ is inserted. The terminal receives ESC 2.

Cause
Contents/Resources/app.asar constructs the xterm.js terminal with:

  const terminal = new Tn({
     allowProposedApi: true,
     macOptionIsMeta: true,
     ...

macOptionIsMeta: true disables xterm.js's third-level-shift handling
(_isThirdLevelShift), which is what allows Option to compose characters on macOS.

Fix
Set macOptionIsMeta: false (the xterm.js default), or expose it as a setting.
Ghostty's model is the better shape: option-as-alt = left | right | both | none,
which keeps one Option key composing and the other available as Meta for
word-navigation bindings.

Impact
Blocks @ file references in Claude sessions, and shell metacharacters generally,
for all non-US layout users. No workaround exists in-app; settings contain no
keyboard options, and ElectronAsarIntegrity prevents patching the bundle.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions