fix: Configurable focus target + streamlined settings/config install - #6
Open
jvasallo wants to merge 3 commits into
Open
fix: Configurable focus target + streamlined settings/config install#6jvasallo wants to merge 3 commits into
jvasallo wants to merge 3 commits into
Conversation
The daemon previously always raised Cursor's window when a session key was pressed. Add config.focus.appName so other apps work, and give iTerm2 its own AppleScript path: iTerm2's window/tab chrome title never reflects the tmux session inside it, so it matches by the attached client's tty (via tmux list-clients) instead of window title, falling back to a name-based match when no tmux session is known. Also add bin/install-launchd.sh to generate the launchd plist from the template instead of manually editing its placeholders.
Hand-editing both files was the most error-prone part of setup: the hooks JSON for ~/.claude/settings.json had to be merged by hand into a file users often customize, and ~/.deck-neo/config.json had no guided path at all. Add `npm run check-hooks` (reports exactly which hooks are missing/stale, never writes the shared settings file) and `npm run init-config` (interactively generates config.json, since deck_neo fully owns that file). Trim the docs to match — one example hook block instead of all seven repeated inline. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Two independent silent failures compounded to make +NEW look completely broken: - The launchd job's PATH (bin/deckneo-daemon.sh, deckneo-launch.sh) pinned node and Homebrew but not wherever `claude` itself lives (e.g. ~/.local/bin). Since `tmux new-session -d` reports success before the spawned command actually execs, a missing `claude` failed with zero error output -- the session spun up and self-destructed the instant tmux couldn't find it. - Even with claude launching correctly, +NEW never opened a window for the new session -- it only ever creates the tmux session detached. The focus key can only raise an *existing* window, so for iTerm2/Terminal users (no Cursor-style always-open workspace) there was nothing to find. Fixes both: adds ~/.local/bin to the pinned PATH, and -- for focus.appName values of iTerm2 or Terminal -- opens a real window attached to the tmux session that was just created. Both apps' window/command verbs skip login-shell init, so a bare `tmux attach` couldn't find tmux either; wrapping it in `zsh -lc` fixes that the same way an interactive terminal would. Co-Authored-By: Claude Sonnet 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.
The daemon previously always raised Cursor's window when a session key was pressed. Add config.focus.appName so other apps work, and give iTerm2 its own AppleScript path: iTerm2's window/tab chrome title never reflects the tmux session inside it, so it matches by the attached client's tty (via tmux list-clients) instead of window title, falling back to a name-based match when no tmux session is known.
Also add bin/install-launchd.sh to generate the launchd plist from the template instead of manually editing its placeholders.
Summary
Describe the user-visible change and why it belongs in
deck_neo.Verification
npm testnpm run buildHardware context
If this touches the device layer, include the macOS version, Stream Deck model, Elgato app state, and manual checks performed.