Skip to content

Conversation

@waydabber
Copy link
Member

@waydabber waydabber commented Sep 29, 2021

Changes in this update

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 control + option + command + 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.

Known Issues

  • N/A

- Leaner AppDelegate
- Groundwork for additional preference panes
- Fix classification of external Apple displays in Prefs/Displays
…ss change occures (OS slider, touch bar, ambient sensor)
…(work in progress - still does not show under Displays)
…hievable using a combination of settings even when there is in fact a supported display.
@waydabber
Copy link
Member Author

Well it seems simply setting

      - name: xcodebuild
        uses: sersoft-gmbh/xcodebuild-action@v1.4
        with:
          project: MonitorControl.xcodeproj
          scheme: MonitorControl
          destination: platform=macOS
          action: build
          build-settings: CODE_SIGN_IDENTITY="-" DEVELOPMENT_TEAM=""

Does not work due to the following:

Screen Shot 2021-09-30 at 10 25 07

Adding CODE_SIGNING_REQUIRED=NO doesn't help either. Probably I should go deeper into this but I'll just leave it as it is, if I manually remove signing info from the main project (which essentially changes to CODE_SIGN_IDENTITY="-" DEVELOPMENT_TEAM="" for the main project) then xcodebuild does not fail.

@github-pages github-pages bot temporarily deployed to github-pages September 30, 2021 08:52 Inactive
@github-pages github-pages bot temporarily deployed to github-pages September 30, 2021 08:53 Inactive
@github-pages github-pages bot temporarily deployed to github-pages September 30, 2021 11:21 Inactive
@github-pages github-pages bot temporarily deployed to github-pages September 30, 2021 12:20 Inactive
@github-pages github-pages bot temporarily deployed to github-pages September 30, 2021 12:21 Inactive
@waydabber
Copy link
Member Author

Hey @JoniVR

as requested, I added the following:

  • Option to enable both media keys and custom shortcuts (+ tweaked keyrepeat times a bit)
  • Option to enable/disable automatic check for updates

I think with this all review issues should be fixed.

Thanks!

@github-pages github-pages bot temporarily deployed to github-pages September 30, 2021 12:35 Inactive
@github-pages github-pages bot temporarily deployed to github-pages September 30, 2021 12:48 Inactive
@Muirium
Copy link

Muirium commented Sep 30, 2021

Nice one!

I've got more feedback (on build 6171 on M1).

Keyboard controls for Brightness and Contrast are awesome! Brightness looks great and works great, just like my MacBook Air's internal display. Contrast works great, but the on-screen graphic is blank. You get the roundrect overlay just like Brightness, and the string of squares to show the level. but no symbol in there. Just a niggle really. Maybe Apple doesn't supply one in the OS as all their displays have just 1 axis of Brightness?

Also: keyboard controls for Brightness and Contrast don't work when MonitorControl's own pulldown menu is selected. I have percentages turned on in there so I can see precise values, but the keyboard controls just refuse to operate when that menu is in the foreground. Which is odd, as every other app I'm trying (and every other menubar pulldown menu) lets them work just fine (as they should, acting as system-wide controls).

Assigning custom keyboard controls works great. Got my F1/F2/Shift setup all good to go. Nice.

Very pleased with how this app is coming along. v4 is epic!

@waydabber
Copy link
Member Author

Nice one!

I've got more feedback (on build 6171 on M1).

Keyboard controls for Brightness and Contrast are awesome! Brightness looks great and works great, just like my MacBook Air's internal display. Contrast works great, but the on-screen graphic is blank. You get the roundrect overlay just like Brightness, and the string of squares to show the level. but no symbol in there. Just a niggle really. Maybe Apple doesn't supply one in the OS as all their displays have just 1 axis of Brightness?

Also: keyboard controls for Brightness and Contrast don't work when MonitorControl's own pulldown menu is selected. I have percentages turned on in there so I can see precise values, but the keyboard controls just refuse to operate when that menu is in the foreground. Which is odd, as every other app I'm trying (and every other menubar pulldown menu) lets them work just fine (as they should, acting as system-wide controls).

Assigning custom keyboard controls works great. Got my F1/F2/Shift setup all good to go. Nice.

Very pleased with how this app is coming along. v4 is epic!

Hi @Muirium, thanks for your feedback! :)

The blank image for contrast is intentional. There is no (accessible) way to change the OSD image provided by Apple and I didn't want to go with the brightness image for contrast so I opted for blank (still better than not showing OSD at all).

Keyboard controls do work with the menu down but only if you use the standard media keys - custom shortcuts are not working at this time indeed.

@JoniVR
Copy link
Member

JoniVR commented Sep 30, 2021

I'll create a new branch to modify the appcast file without having to do a PR, but to me this one is ready for merging! Fantastic job @waydabber! 🚢 🚀

@JoniVR
Copy link
Member

JoniVR commented Sep 30, 2021

That signing thing is indeed annoying, will revert settings after creating the build and then we'll resolve this later.

@waydabber waydabber merged commit 30da9a8 into master Sep 30, 2021
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.

5 participants