Visual Bell Synchronization Across Platforms
No, the visual flash behavior does not synchronize automatically across all supported platforms when the auditory bell is disabled. Because VS Code's integrated terminal acts as a wrapper for the underlying system shell and terminal emulator, the actual execution of a "visual flash" is often delegated to the operating system's window manager or the specific terminal backend (e.g., xterm.js) interacting with the OS API.
Explanation of Platform Variance
The inconsistency occurs because the Terminal > Integrated: Enable Bell setting tells VS Code whether to process the ASCII BEL character (\a or 0x07), but it does not dictate how the OS renders that alert. The behavior typically splits as follows:
- Windows: Often relies on the system's "Visual Alerts" accessibility settings or the specific behavior of the underlying console host.
- macOS: Frequently defers to System Settings > Accessibility > Audio, where "Flash the screen when an alert sound occurs" must be enabled for a visual cue to appear.
- Linux: Highly dependent on the Desktop Environment (GNOME, KDE, etc.) and the window manager's handling of urgency hints or accessibility flashes.
Standardizing the Visual Alert
There is currently no internal VS Code configuration to force a standardized, cross-platform visual flash that bypasses the OS window manager. To achieve a consistent visual cue without audio, you must align the OS-level accessibility settings:
- Disable Audio: Ensure
Terminal > Integrated: Enable Bell is checked in VS Code, but mute the system's "System Notification" or "Default Beep" sound in the OS sound mixer.
- Enable OS Visuals:
- Windows: Search for "Visual alerts" in Accessibility settings.
- macOS: Navigate to
System Settings > Accessibility > Audio > Flash the screen when an alert sound occurs.
- Linux: Check the "Accessibility" or "Notifications" section of your specific Desktop Environment settings.
Verification
To verify if the visual bell is triggering independently of audio, run the following command in the integrated terminal:
echo -e "\a"
Note: For Windows Command Prompt/PowerShell, you may need to use a script or a tool that sends the 0x07 character specifically.
Diagnostic Detail Needed: Are you using a specific terminal backend (e.g., xterm.js via the default settings) or a customized shell integration (like Oh My Zsh or PowerShell profiles) that might be intercepting the BEL character before it reaches the VS Code UI?