Conversation
…co comment toggle The "\\" accelerator token matched both Backslash and Slash physical keys under a mistaken "Korean keyboard parity" assumption — KeyboardEvent.code is layout-independent, so Korean layouts already report the ₩/\ key as "Backslash". The extra "Slash" code made ⌘/ resolve to group.splitRight at capture phase, swallowing Monaco's comment toggle. Now "\\" matches only the Backslash code; tests assert ⌘/ passes through. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s visible tier() pre-blended fg onto the surface and emitted OPAQUE colors (alpha=ff). Monaco renders DecorationsOverlay above SelectionsOverlay, and WordHighlighter keeps the word-at-cursor decorated (own range included) while a selection stays inside one word — so the opaque, surface-colored wordHighlightBackground painted a cover over the selection, hiding it until the selection crossed a word boundary. tier() now emits true translucent overlays (white over dark surfaces, black over light) with the alpha embedded in the 8-digit hex, matching stock VS Code themes; decorations compose with the selection underneath. inactiveSelectionBackground also derives from the selection hue at half alpha instead of a near-invisible surface blend. Orphaned alphaOnSurface removed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ortcuts Add a VSCode-style keybinding customization system on top of the declarative KEYBINDINGS table, plus fixes for embedded-component shortcut delivery. Core (override/conflict engine): - overrides.ts: immutable defaults + persisted delta (replace / unbind / default) applied at runtime; unknown command ids dropped at apply time for version-skew tolerance. - conflicts.ts: command-vs-command + reserved-key detection. Table-wide detectTableConflicts() surfaces conflicts as a property of the whole effective table (incl. indirect ones), with X-vs-!X disjoint-scope suppression so browser-routed defaults (CmdR/Cmd+ShiftR) aren't false positives. - reserved-keys.ts: explicit catalog of system/electron/monaco/terminal keys (the Cmd+/ shadow class made into data). - resolver runtime recompile (setActiveBindings) + lazy shortcut labels. - persistence via appState.keybindingOverrides + keybindingsChanged broadcast; main rebuilds the native menu labels on change. Settings UI (Settings -> Keyboard Shortcuts): - Collapsible Application / Editor sections (default collapsed, chevron affordance, auto-expand on search/filter, conflict count badge). - Inline recorder (raw keystroke capture, IME guard, chord support); saving is never blocked - conflicts warn and persist (VSCode model), with persistent per-row conflict badges + "Conflicts only" filter. Editor (curated Monaco commands): - editor-commands.ts catalog + apply.ts reconciler that diffs against Monaco's addKeybindingRules (idempotent live rebinding/reset). - separate editorKeybindingOverrides delta + editorKeybindingsChanged broadcast. Browser tab shortcuts: - Route the formerly-hardcoded browser shortcuts (focusUrl/reload/ hardReload/back/forward) through the table, scoped by a browserTabActive state probe; fixes the Cmd+R files.refresh race via disjoint when-scopes. - main before-input-event interceptor (keyboard.ts) so these fire even while the WebContentsView page has focus (outside the renderer DOM), honoring user overrides. DevTools intentionally left to the Electron menu role (app window); browser page DevTools stays button-only. Foundation: - remove the duplicate Monaco Cmd+S ghost binding (global dispatcher owns it) - shared matchesKeyState core reused by the renderer dispatcher and the main key interceptor (single source of accelerator matching) - Win/Linux shell-key guard (!terminalFocus || isMac) on Ctrl-letter bindings to preserve readline/job-control keys Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v0.7.0
Added
Fixed
Cmd+/가 split-right를 가로채던 문제 수정, Monaco 주석 토글 복원.Protocol & Remote 영향
keybindingOverrides,editorKeybindingOverrides)를 추가하는 델타 방식. 부재 시 전부 기본값, 모르는 command id는 apply 시점에 drop(버전 스큐 내성). 신규 저장 파일/캐시 구조 변경 없음 → 마이그레이션·SSH 재업로드 불필요.🤖 Generated with Claude Code