mirror of
https://github.com/MonitorControl/MonitorControl.git
synced 2026-05-29 06:02:16 -06:00
### Added/improved functionality - Added proper support for controlling Apple displays. - Added option to show/hide brightness slider. - Added option to show brightness slider for internal display and apple displays (enabled by default). - Replication of built-in and Apple display brightness to corresponding brightness slider. - Added suffix to similarly named displays for better differentiation. - Option to disable slider snapping for finer control + disable slider snapping by default. - Added option to show slider tick marks for better accuracy. - Added option to use window focus instead of mouse to determine which display to control. - Ctrl+Command+Brightness now controls external displays only (Ctrl+Brightness continues to control internal display only) - Added separate tab for menu options. - Added option to restore last saved values upon startup. - Added option for audio device name matching for display volume control selection. - Separated option to change all screens for brightness and volume. - Added option for keyboard fine scale for brightness. - Added option for keyboard fine scale for volume. - Added version check upon startup for mandatory preferences reset upon downgrade or incompatible previous version + notification about this. - Added implementation for Command+F1 macOS shortcut to enable/disable mirroring. - Added safer 'Assume last saved settings are valid' option as default instead of startup DDC read (or restore). - Streamlined preference panes, 'Show advanced settings' now affect all tabs. This leads to a better and safer first timer experience (especially because of the influx of many new features). - Added a Quit button to Preferences if menu is hidden (it was not passible to quit the application until this time in this mode only by re-enabling the menu). - Lowered default first-run volume DDC default from 75% to 15% if read is not possible or disabled to prevent unexpectedly loud sound. - Added slider skew setting on a per control basis to have the ability to manipulate DDC slider balance and OSD scale if display control is not linear. - Added the ability to set min. and max. DDC bounds on a per display, per control basis. - Audio device name override option for a display (manually assign a specific audio device to a display). - Advanced setting to invert DDC control range (some displays have the scale reversed). - Advanced setting to remap DDC control code (some displays have contrast and brightness mixed up). - Ability to mark a DDC control as available or unavailable in advanced settings under Displays. - Ability to automatically hide menu icon if there is no slider present in the menu. - Option to show slider percentage for more precision. - Option to set combined or separate OSD scale when combined hardware+software brightness is used. - Apple like smooth brightness change (both for software, hardware, mixed and DisplayServices). - Added support for DisplayLink, AirPlay, Sidecar, screen sharing etc. using window shades (this is an inferior technique to the existing software implementation - gamma control - but still better than nothing). Disabled for any kind of mirroring setups. _(Only on Big Sur and above)_ - Brightness change synchronisation from Built-In and Apple displays to other displays. This makes Touch Bar, Ambient light sensor, Control Center and System Preferences induced changes affect all displays. Synchronisation uses a sophisticated indirect delta method + the user can intervene and adjust individual screen brightness at any time to easily compensate mismatching native brightness levels. - Preferences pane tab selector has a simpler look on Catalina. - All menu sliders are now scrollable using a magic mouse/trackpad swipes or mouse wheel. - Added option for menu to show only items that are relevant to display which shows the menu currently. - Added option to enable combined sliders (note: this option combined with enabled Apple/built-in display syncing and enabled 'change all' keyboard settings finally provides full synchronised control of all displays). - Combined sliders can now display multiple displays when keyboard and brightness syncing is not enabled. _(Only on Big Sur and above)_ - Redesigned sliders to look like Big Sur/Monterey Control Center's sliders. _(Only on Big Sur and above)_ - Quit and Preferences... are now icons for a much cleaner look. _(Only on Big Sur and above)_ - Added option to change additional menu options style or hide them. _(Only on Big Sur and above)_ - Multiple displays are now in nice Big Sur styled blocks - no more ugly separators. _(Only on Big Sur and above)_ - Added customisable gamma/ddc switchover point for combined brightness in the advanced section of Displays. - Added comma separated list for control code override to enable edge cases like controlling Brightness and Contrast at the same time (use VCP list entry `10, 12` for that) - Contrast can now be controlled from keyboard via <kbd>control</kbd> + <kbd>option</kbd> + <kbd>command</kbd> + brightness up/down. - Custom keyboard shortcuts for brightness, contrast, volume and mute - Added automatic update. ### Other under the hood changes and bug fixes - Standardised internal scale among various displays and DDC ranges for ranged controls. - Uses the new internal scale for combined hardware-software brightness mode. - Migrated scales to internal float representation to prevent loss of fine detail on transformations. - Fixed double sound when muting multiple external displays at the same time. - Fixed lack of initial volume configuration if slider is not shown in menu. - Fixed wrong settings being applied to a display when replaced on Apple Silicon (UserDefaults preferences are now tied to specific display strings instead of CGDirectDisplayID - which is no longer semi-unique on arm64). - A lot of refactoring, streamlining and general optimisations.
108 lines
4.2 KiB
Markdown
108 lines
4.2 KiB
Markdown
<img src=".github/Icon-1024.png" width="175" alt="App icon" align="left"/>
|
|
|
|
<h2>MonitorControl - Now with Apple Silicon support!</h2>
|
|
|
|
<p>
|
|
<b>Control your external display brightness and volume!<br>
|
|
Use menulet sliders or the native Apple keyboard keys!<br>
|
|
Shows native brightness and volume OSDs as well!</b>
|
|
</p>
|
|
|
|
<br/>
|
|
|
|
<div align="center">
|
|
<!-- shields -->
|
|
<!-- downloads -->
|
|
<a href="https://github.com/MonitorControl/MonitorControl/releases">
|
|
<img src="https://img.shields.io/github/downloads/MonitorControl/MonitorControl/total.svg?style=flat" alt="downloads"/>
|
|
</a>
|
|
<!-- version -->
|
|
<a href="https://github.com/MonitorControl/MonitorControl/releases">
|
|
<img src="https://img.shields.io/github/release-pre/MonitorControl/MonitorControl.svg?style=flat" alt="latest version"/>
|
|
</a>
|
|
<!-- license -->
|
|
<a href="https://github.com/MonitorControl/MonitorControl/blob/master/License.txt">
|
|
<img src="https://img.shields.io/github/license/MonitorControl/MonitorControl.svg?style=flat" alt="license"/>
|
|
</a>
|
|
<!-- platform -->
|
|
<a href="https://github.com/MonitorControl/MonitorControl">
|
|
<img src="https://img.shields.io/badge/platform-macOS-lightgrey.svg?style=flat" alt="platform"/>
|
|
</a>
|
|
<!-- backers -->
|
|
<a href="https://opencollective.com/monitorcontrol">
|
|
<img src="https://opencollective.com/monitorcontrol/tiers/badge.svg" alt="backers"/>
|
|
</a>
|
|
|
|
<br/>
|
|
<br/>
|
|
|
|
</div>
|
|
|
|
<img src=".github/screenshot.png" width="840" alt="Screenshot"/><br/>
|
|
|
|
<hr>
|
|
|
|
## Download
|
|
|
|
Go to [Releases](https://github.com/MonitorControl/MonitorControl/releases) and download the latest `.dmg`
|
|
|
|
## Compatibility
|
|
|
|
- macOS Big Sur (`macOS 11`) and newer are supported
|
|
- Current version is compatible with macOS Catalina (`10.15`) as well (with some limitations).
|
|
|
|
_(Note: you can download [version 2.1.0](https://github.com/MonitorControl/MonitorControl/releases/tag/v2.1.0) for Sierra `10.12` and [version 3.1.1](https://github.com/MonitorControl/MonitorControl/releases/tag/v3.1.1) for Mojave `10.14` support)_
|
|
|
|
## How to help
|
|
|
|
Open [issues](https://github.com/MonitorControl/MonitorControl/issues) if you have a question, an enhancement to suggest or a bug you've found. If you want you can fork the code yourself and submit a pull request to improve the app.
|
|
|
|
## How to build
|
|
|
|
### Required
|
|
|
|
- Xcode
|
|
- [Swiftlint](https://github.com/realm/SwiftLint)
|
|
- [SwiftFormat](https://github.com/nicklockwood/SwiftFormat)
|
|
- [BartyCrouch](https://github.com/Flinesoft/BartyCrouch) (for updating localizations)
|
|
|
|
Clone the project via this Terminal command:
|
|
|
|
```
|
|
git clone https://github.com/MonitorControl/MonitorControl.git
|
|
```
|
|
|
|
If you want to clone one of the branches, add `--single-branch --branch [branchname]` after the `clone` option.
|
|
|
|
You're all set ! Now open the `MonitorControl.xcodeproj` with Xcode! The dependencies will automatically get downloaded once you open the project. If they don't:
|
|
|
|
`File > Packages > Resolve Package Versions`
|
|
|
|
(In earlier XCode versions `Packages` menu is titled `Swift Packages`)
|
|
|
|
### Third party dependencies
|
|
|
|
- [MediaKeyTap](https://github.com/MonitorControl/MediaKeyTap)
|
|
- [Preferences](https://github.com/sindresorhus/Preferences)
|
|
- [SimplyCoreAudio](https://github.com/rnine/SimplyCoreAudio)
|
|
- [KeyboardShortcuts](https://github.com/sindresorhus/KeyboardShortcuts)
|
|
- [Sparkle](https://github.com/sparkle-project/Sparkle)
|
|
|
|
## Contributors
|
|
|
|
- [@the0neyouseek](https://github.com/the0neyouseek)
|
|
- [@JoniVR](https://github.com/JoniVR)
|
|
- [@waydabber](https://github.com/waydabber)
|
|
|
|
## Thanks
|
|
|
|
- [@bluejamesbond](https://github.com/bluejamesbond/) (original developer)
|
|
- [@Tyilo](https://github.com/Tyilo/) (fork)
|
|
- [@Bensge](https://github.com/Bensge/) - (used some code from his project [NativeDisplayBrightness](https://github.com/Bensge/NativeDisplayBrightness))
|
|
- [@nhurden](https://github.com/nhurden/) (for the original MediaKeyTap)
|
|
- [@kfix](https://github.com/kfix/ddcctl) (for ddcctl)
|
|
- [@reitermarkus](https://github.com/reitermarkus) (for DDC.Swift)
|
|
- [@zhuowei](https://github.com/zhuowei) (figured out M1 I²C communication)
|
|
- [@tao-j](https://github.com/tao-j) (figured out M1 I²C write)
|
|
- [@alin23](https://github.com/alin23) (generally spearheaded M1 DDC support and figured out a many of the caveats)
|
|
- [javierocasio](https://www.deviantart.com/javierocasio) (app icon background)
|