MonitorControl

repository·main·Indexed 12 days ago

https://github.com/monitorcontrol/monitorcontrol

A macOS utility that enables control of external display brightness, volume, and contrast using native Apple keyboard keys and menubar sliders by bridging Apple's proprietary protocols with standard DDC/CI protocols.

Tokens
871
Snippets
2
Records
6
Agent score
49%

What's inside MonitorControl

  1. Supported display protocols and hardware limitations

    main

    MonitorControl uses different protocols depending on your hardware:

    Supported Protocols

    • DDC (Display Data Channel): Used for external displays via USB-C, DisplayPort, HDMI, DVI, or VGA to control hardware backlight, volume, and contrast.
    • Native Apple Protocol: Used for Apple displays and built-in Mac displays.
    • Gamma Table Control: Software-based dimming.
    • Shade Control: Used for AirPlay, Sidecar, DisplayLink, and virtual screens.

    Hardware Limitations

    • HDMI on specific Macs: DDC control via the built-in HDMI port is not supported on the 2018 Intel Mac mini, all M1 Macs (MacBook Pro 14"/16", Mac Mini, Mac Studio), and the entry-level M2 Mac mini. Use USB-C instead for hardware control, or use software-only dimming.
    • Televisions: Most LCD/LED TVs do not implement DDC and rely on software dimming.
    • DisplayLink: Does not allow DDC; only software dimming is available.
    • EIZO Displays: Often use MCCS or custom protocols; supported via software dimming only.
  2. Configure Accessibility permissions for keyboard control

    main

    To use native Apple keyboard brightness and media keys, you must grant the app Accessibility permissions:

    1. Open System Settings.
    2. Navigate to Privacy & Security > Accessibility.
    3. Add and enable MonitorControl.

    Note: If you only intend to use the menubar sliders and not the keyboard, this step is optional.

  3. Install MonitorControl via Homebrew or DMG

    main

    You can install MonitorControl using one of the following methods:

    Install the cask via Terminal:

    brew install --cask monitorcontrol

    Manual Installation

    1. Go to the Releases page.
    2. Download the latest .dmg file.
    3. Open the .dmg and copy the MonitorControl app to your Applications folder.
  4. Build MonitorControl from source

    main

    To build the project locally, ensure you have Xcode, Swiftlint, SwiftFormat, and BartyCrouch installed.

    Build Steps

    1. Clone the repository:
      git clone https://github.com/MonitorControl/MonitorControl.git
    2. Open MonitorControl.xcodeproj in Xcode.
    3. Dependencies should download automatically. If they do not, go to File > Packages > Resolve Package Versions in Xcode.
    git clone https://github.com/MonitorControl/MonitorControl.git
  5. How to use MonitorControl

    main

    Once installed, you can control your displays using several methods:

    • Menubar Sliders: Click the brightness symbol in the macOS menubar to access sliders for brightness, volume, and contrast.
    • Keyboard: Use standard Apple brightness and media keys, or configure custom shortcuts in Settings > Keyboard.
    • Customization: Open Settings... to tweak app behavior. To access more advanced options, ensure you enable Show advanced settings within the app settings menu.
  6. MonitorControl macOS compatibility and requirements

    main

    MonitorControl supports various macOS versions, but functionality varies:

    MonitorControl versionmacOS versionNotes
    v4.0.0Catalina 10.15**Full functionality requires macOS 11 Big Sur or newer
    v3.1.1Mojave 10.14
    v2.1.0Sierra 10.12

    Important Compatibility Notes:

    • macOS Sequoia and Tahoe: Requires v4.3.3 or newer.
    • macOS Tahoe OSD: Current versions have limited native OSD support; the Control Center OSD appears, but the percentage value may not show or update.
    • Warning: MonitorControl v4.2.0 may crash on certain configurations running macOS 15 Sequoia or Tahoe and will not update automatically. Upgrade manually to resolve.