github waydabber/BetterDisplay v4.1.0

pre-release7 hours ago

This pre-release version contains various enhancements and bug fixes, as well as improved compatibility with current macOS Tahoe versions.

The release introduces experimental support for certain networked devices (LG webOS TVs, Samsung Tizen TVs, Philips Android TVs, Yamaha AVRs), providing volume control, power control, image adjustments (on LG webOS TVs), service menu access (LG, Samsung) and virtual remote capabilities (TVs). You can configure networked device support under the display's tab in app Settings (see the Device Control > Additional controllers section).

Please report all issues.

Information about the v4.x update for v1.x and v2.x Pro licenses: outdated license FAQ

Download for macOS

Enhancements

  • Added option to deprioritize hardware brightness control (instead of fully disabling it) (#4850)
  • Do not animate the app menu icon with Tahoe-style OSD on displays with a notch when the icon is faded out (in full screen) (#4847)
  • Show the OSD at the top-center when the menu bar is not visible (macOS Tahoe 26.2+ only) (#4846)
  • Added an OSD shadow (macOS Tahoe 26.2+ only) (#4842)
  • Implement OSD close button (introduced in macOS 26.1) (#4835)
  • Added Bottom-Center OSD location (#4682)
  • Added proper OSD for non-scale-based volume up/down/toggle on pre-Tahoe macOS versions (#4831)
  • Added ambient light sensor lux reading for the built-in display (#4727)
  • Added CLI feature to query the ambient light sensor (#4788)
  • Show an appropriate warning when another controller takes precedence (#4794)
  • Do not animate app menu sliders on reveal by default (macOS Tahoe 26) (#4761)
  • Added UI + backend to add/remove additional built-in control options for displays (#4741)
  • Added option to prevent overlays from affecting screenshots and screen recordings (#4703)
  • Improve menu alignment and presentation consistency (#4651)
  • Added bounce animation to custom simple OSD icon on activity (#4649)
  • Prevent disconnecting the built-in display when starting in Safe Mode with external display configured to disconnect it (#4694)
  • Reorganize Image Adjustments menu + make it scrollable along with the Device Control menu (#4648)
  • Added support for basic step-based volume and mute-toggle keyboard control for supported integration options (#4642)
  • Show which controller (DDC, integration, Tizen, native, etc.) supports volume control under the Volume Control… sheet (#4641)
  • Added basic CLI support for sending remote commands to LG, Samsung, and Philips Smart TVs (#4709)
  • Display Group Layout Protection — Define Main Display (#4168)
  • Added percentage display to the volume OSD when a native audio device is being controlled (#4667)
  • LG webOS TV control (#4801)
  • Added auto-reconnect to LG webOS controllers if the connection fails (#4844)
  • Added volume and image-setting subscription and polling options for LG webOS TVs to sync settings with the device (#4834)
  • Added picture controls (backlight/OLED pixel brightness, contrast, color) for LG webOS TVs (#4823)
  • Added feature to enter LG webOS TV service menus and unlock full service menu (#4820)
  • Added LG webOS TV power control on sleep/wake and soft-connect/disconnect (#4818)
  • Added full-range and up/down/toggle volume control methods for LG webOS TVs (#4813)
  • Added PIN-based pairing method for LG webOS (alongside prompt-based) for added security (#4814)
  • Added Philips Android TV control (using Philips API v6) (#4771)
  • Added virtual remote control for LG webOS TVs (#4812)
  • Added virtual remote control for Philips Android TVs (#4791)
  • Added full-range and up/down/toggle volume control methods for Philips Android TVs (#4792)
  • Added Philips Android TV power control on sleep/wake and soft-connect/disconnect (#4790)
  • Added built-in support for Yamaha AVR (used as digital audio output) (#4707)
  • Periodic volume/mute updates for Yamaha AVRs (#4757)
  • Added power control on sleep/wake for Yamaha AVRs (#4756)
  • Added auto-power-on + input switching on volume change for Yamaha AVRs (#4755)
  • Added zone selection to Yamaha AVR control (#4754)
  • Samsung control via WebSocket (#3871)
  • Added Samsung TV power control on sleep/wake and soft-connect/disconnect (#4686)
  • Added full virtual remote control for Samsung Smart TVs (#4645)
  • Added WOL power control for Samsung Smart TVs (#4643)
  • Added feature to enter Samsung TV hospitality, service, and advanced service menus (#4640)
  • Added basic Samsung Smart TV volume control (volume up/down/mute toggle) (#4639)
  • Improved compatibility with macoOS 26.1 (and 26.2 betas)

Fixed

  • OSD may disappear after switching Spaces and entering/exiting full-screen (macOS 26 Tahoe) (#4827)
  • Sidecar connection does not work in clamshell mode (only disconnect) from the app menu (#4841)
  • Menu customizer picker and input-switcher keyboard shortcut configurator have visual issues (#4829)
  • App menu background rendering artifacts and flickering when the menu is not key window (latest macOS 26 Tahoe) (#4822)
  • Heavy resource use on frequent audio-device change messages (#4770)
  • When changing display order via ordering string, menu header corners are not updated while open (#4767)
  • Menubar does not display on full-screen apps when the Settings window is open on a desktop (#4743)
  • Built-in display repeatedly connects/disconnects when configured to turn off on external connection and the external display is AirPlay, Sidecar, or DisplayLink (#4665)
  • If a virtual screen is streamed to a real screen, brightness control affects both, and OSD may duplicate in some scenarios (#4660)

Included Localizations

This version includes the following localizations which are considered complete (90%+ completion). New pre-release features may not yet be localized. This pre-release includes unfinished or semi-complete localizations as well.

Help improve BetterDisplay localization, correct mistranslations, or assist in adding new languages!

Special thanks to all contributors!

The changelogs above include all changes since the last v3.x stable version. For previous release notes, visit the GitHub Releases page. Developed by @waydabber.

Don't miss a new BetterDisplay release

NewReleases is sending notifications on new releases.