Skip to content

feat(config): add macOS vibrancy state setting - #3457

Open
zelenskymike wants to merge 1 commit into
wavetermdev:mainfrom
zelenskymike:feat/macos-vibrancy-state
Open

feat(config): add macOS vibrancy state setting#3457
zelenskymike wants to merge 1 commit into
wavetermdev:mainfrom
zelenskymike:feat/macos-vibrancy-state

Conversation

@zelenskymike

Copy link
Copy Markdown

Summary

  • add an optional window:visualeffectstate setting with followWindow, active, and inactive values
  • pass the validated value to Electron's BaseWindow when macOS vibrancy is enabled
  • document the setting and update the generated config schema and types

Motivation

Electron defaults visualEffectState to followWindow, which changes the vibrancy backdrop to its inactive appearance whenever the Wave window loses focus. For translucent window configurations, this can make the blur appear to disappear when switching to another app.

This setting lets users opt into active so the native vibrancy backdrop remains visually consistent across focus changes. Existing behavior is unchanged when the setting is omitted or invalid: Wave uses followWindow.

{
  "window:blur": true,
  "window:visualeffectstate": "active"
}

The setting is macOS-only and is ignored on Windows and Linux. Windows keeps its existing acrylic material behavior; no cross-platform defaults change.

Validation

  • npm test -- --run — 14 test files, 46 tests passed
  • npm exec eslint -- emain/emain-window.ts
  • go test ./pkg/wconfig
  • git diff --check
  • packaged an arm64 macOS app with Electron 41.1.0 and verified its ad-hoc signature
  • manually verified that active preserves native vibrancy after moving focus to another application

Scope

This PR intentionally does not add new vibrancy materials or alter fullscreen behavior. It exposes only Electron's existing visual-effect activity state as a focused, opt-in configuration option.

@CLAassistant

CLAassistant commented Jul 30, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6ebcbe73-58a4-49c4-ad60-e44ce22f053d

📥 Commits

Reviewing files that changed from the base of the PR and between a4447c1 and 7a38990.

📒 Files selected for processing (6)
  • docs/docs/config.mdx
  • emain/emain-window.ts
  • frontend/types/gotypes.d.ts
  • pkg/wconfig/metaconsts.go
  • pkg/wconfig/settingsconfig.go
  • schema/settings.json

Walkthrough

Adds the window:visualeffectstate configuration key with followWindow, active, and inactive values across Go settings, frontend types, constants, and JSON schema. On macOS, blurred windows now apply the configured visual effect state, defaulting to followWindow for other values. Documentation describes the macOS-only behavior and restart requirements.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: adding a macOS vibrancy state setting.
Description check ✅ Passed The description accurately covers the setting, its behavior, and the related schema/type updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Biome (2.5.5)
frontend/types/gotypes.d.ts

File contains syntax errors that prevent linting: Line 1880: Expected a property, or a signature but instead found '#'.; Line 1880: Expected an expression, or an assignment but instead found ':'.; Line 1880: Expected an expression but instead found ']'.; Line 2193: Expected a statement but instead found '}'.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@zelenskymike
zelenskymike marked this pull request as ready for review July 30, 2026 08:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants