feature: Sound suppression settings (focus/visibility modes)#39
Open
akdoan1 wants to merge 2 commits into
Open
feature: Sound suppression settings (focus/visibility modes)#39akdoan1 wants to merge 2 commits into
akdoan1 wants to merge 2 commits into
Conversation
- Add three-way picker: Never, When Focused, When Visible - When Focused: Suppress when Claude Island or terminal is active - When Visible: Suppress when terminal is visible (>50% unobscured) - Fix terminal focus detection for iTerm/Warp child process architecture - Add window occlusion detection using z-order and bounds overlap Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace custom occlusion logic with OcclusionKit library for more accurate window visibility detection in session state dots. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
pjh4993
pushed a commit
to pjh4993/claude-island
that referenced
this pull request
Feb 20, 2026
…roj (farouqaldori#39) agvtool new-marketing-version doesn't work when Info.plist uses $(MARKETING_VERSION) variable references - it fails silently. This fix: - Uses sed to directly update MARKETING_VERSION in project.pbxproj - Uses sed to directly update CURRENT_PROJECT_VERSION in project.pbxproj - Also manually sets project.pbxproj to 1.3.3 (the correct version after the v1.3.3 release, which was built with the buggy workflow) Tested: sed commands correctly update both version fields in project.pbxproj
Kel-Antony
added a commit
to Kel-Antony/claude-island
that referenced
this pull request
Apr 10, 2026
Phase 3 features: - farouqaldori#35/farouqaldori#53: Terminal focus without Yabai. Walks the process tree to find the parent terminal (Ghostty/iTerm2/Warp/Terminal.app/Alacritty) and activates via NSWorkspace. Adds non-tmux message send via AppleScript and System Events. - farouqaldori#40: Session state dots in the collapsed island. Shows colored dots (blue=approval, orange=processing, green=waiting for input) when multiple sessions are active. Rendered in both notch and pill modes. - farouqaldori#45: External display pill mode. Uniform rounded PillShape for displays without a physical notch, with a compact "X running / Y idle" status row. Phase 4 fixes from upstream: - farouqaldori#78: security/correctness/perf bugs - socket 0o600, stable SHA256 IDs in MessageBlock (replaces randomized hashValue), GenericResult equality with rawData, Bool-before-NSNumber in MCPToolFormatter, cached ISO8601DateFormatter, generate-keys key pair bug + chmod, create-release in-place sed, build.sh set -eo pipefail with error reporting. - farouqaldori#51: Local.xcconfig support in build.sh plus .gitignore entry. - farouqaldori#39: Sound suppression picker (Never / When Focused / When Visible). - farouqaldori#34: Periodic 3s session recheck in SessionStore detects dead processes and re-syncs active ones. - farouqaldori#61: Quit/menu hover fix - moves .contentShape onto the Button. UX polish: - Hover-to-open delay reduced from 1.0s to 0.1s; auto-close on mouse leave after 0.15s for hover-opened panels (chat mode stays sticky). - Opened-panel hit rect now uses full menu height so tall menus with expanded pickers stay hoverable all the way down to Quit. - Right-click anywhere on the pill shows a "Quit Claude Island" context menu via a global rightMouseDown event monitor.
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.
Summary
Add a setting to suppress notification sounds based on terminal/app focus or visibility state.
Fixes #38
Changes
Dependencies
New Files
ClaudeIsland/Core/SuppressionSelector.swift- Picker state managementClaudeIsland/UI/Components/SuppressionPickerRow.swift- Picker UI componentModified Files
Settings.swift- Add SoundSuppression enum and settingNotchViewModel.swift- Observe suppression selectorNotchMenuView.swift- Add picker to menuNotchView.swift- Update sound logicTerminalVisibilityDetector.swift- Fix focus detection, add occlusion detection via OcclusionKitTest plan
🤖 Generated with Claude Code