mirror of
https://github.com/MonitorControl/MonitorControl.git
synced 2026-05-16 14:15:55 -06:00
3.0.0 bug fixes and enhancements
- Fixed not working after sleep mode for some on Apple Silicon Not working after sleep mode #530 - Fixed some LG and Samsung displays having problems with Mute (improved 'Enable Mute DDC command') - LG Monitor: have to unmute manually after muting #170 - Fixed app not working with multiple identical monitors on Intel - App does not work with multiple identical monitors #49 - Added 'Safe Mode' option - pressing the Shift key during startup resets preferences and disables DDC read. - Upon first start if DDC is unreadable, default brightness/volume/contrast values are now set to a sensible 75% instead of 0% - DDC write commands are issued twice on Intel (as it already was on Arm64) to improve stability on some setups. - Make sure DDC communications don't happen in parallel when both slider menu and keyboard is used (this might have caused problems with some docks with multiple display outputs). - Fixed volume control feedback audio (clicking sound) during key repeat (it should play on keyup only as this is the macOS standard). - Fixed duplication of volume control feedback audio if there are multiple external displays and 'Change... for all screens' is enabled. - Internal DDC library for Intel (based on the work of reitermarkus)
This commit is contained in:
parent
035897a5a5
commit
30ac465034
31 changed files with 808 additions and 375 deletions
|
|
@ -8,14 +8,11 @@
|
|||
|
||||
/* Begin PBXBuildFile section */
|
||||
2894D9B82280B30500DF58DA /* CGDirectDisplayID+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2894D9B72280B30500DF58DA /* CGDirectDisplayID+Extension.swift */; };
|
||||
28D1DDF0227FBD99004CB494 /* EDID+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28D1DDEC227FB8F2004CB494 /* EDID+Extension.swift */; };
|
||||
28D1DDF2227FBE71004CB494 /* NSScreen+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28D1DDF1227FBE71004CB494 /* NSScreen+Extension.swift */; };
|
||||
28D1DDF3227FC8C6004CB494 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 56754EB01D9A4016007BCDC5 /* Assets.xcassets */; };
|
||||
56754EAF1D9A4016007BCDC5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56754EAE1D9A4016007BCDC5 /* AppDelegate.swift */; };
|
||||
56754EB11D9A4016007BCDC5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 56754EB01D9A4016007BCDC5 /* Assets.xcassets */; };
|
||||
6C20466C23153E4F00859767 /* Display+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C20466B23153E4F00859767 /* Display+Extension.swift */; };
|
||||
6C2EA1CD228F644B00060E3F /* OnlyIntegerValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C2EA1CC228F644B00060E3F /* OnlyIntegerValueFormatter.swift */; };
|
||||
6C2EA1CF228F7DFB00060E3F /* PollingMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C2EA1CE228F7DFB00060E3F /* PollingMode.swift */; };
|
||||
6C85EFDA22C941B000227EA1 /* DisplayManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C85EFD922C941B000227EA1 /* DisplayManager.swift */; };
|
||||
6C85EFE122CC00AD00227EA1 /* NSNotification+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C85EFE022CC00AD00227EA1 /* NSNotification+Extension.swift */; };
|
||||
6CBFE27A23DB266000D1BC41 /* Display.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CBFE27923DB266000D1BC41 /* Display.swift */; };
|
||||
|
|
@ -23,13 +20,14 @@
|
|||
6CC260F6256AD8F900613714 /* Preferences+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CC260F5256AD8F900613714 /* Preferences+Extension.swift */; };
|
||||
6CD35F53264FFFC6001F1344 /* SimplyCoreAudio in Frameworks */ = {isa = PBXBuildFile; productRef = 6CD35F52264FFFC6001F1344 /* SimplyCoreAudio */; };
|
||||
6CD35F5626500008001F1344 /* MediaKeyTap in Frameworks */ = {isa = PBXBuildFile; productRef = 6CD35F5526500008001F1344 /* MediaKeyTap */; };
|
||||
6CD35F592650002E001F1344 /* DDC in Frameworks */ = {isa = PBXBuildFile; productRef = 6CD35F582650002E001F1344 /* DDC */; };
|
||||
6CD35F5C2650003F001F1344 /* Preferences in Frameworks */ = {isa = PBXBuildFile; productRef = 6CD35F5B2650003F001F1344 /* Preferences */; };
|
||||
6CDA0FCF26485A8300F52125 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6CDA0FCD26485A8300F52125 /* Main.storyboard */; };
|
||||
AA062E8A26C9A039007E628C /* DisplaysPrefsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA062E8926C9A039007E628C /* DisplaysPrefsViewController.swift */; };
|
||||
AA062E8E26CA7BE5007E628C /* DisplaysPrefsCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA062E8D26CA7BE5007E628C /* DisplaysPrefsCellView.swift */; };
|
||||
AA16139B26BE772E00DCF027 /* Arm64DDCUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA16139A26BE772E00DCF027 /* Arm64DDCUtils.swift */; };
|
||||
AA16139B26BE772E00DCF027 /* Arm64DDC.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA16139A26BE772E00DCF027 /* Arm64DDC.swift */; };
|
||||
AA3B4A2826AE103C00B74CD2 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = AA3B4A2726AE103C00B74CD2 /* README.md */; };
|
||||
AA4398A926DD55DA00943F16 /* IntelDDC.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA4398A826DD55DA00943F16 /* IntelDDC.swift */; };
|
||||
AA473EB126DFF8DE0063A181 /* Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA473EB026DFF8DE0063A181 /* Command.swift */; };
|
||||
AA665A5D26C5892800FEF2C1 /* AboutPrefsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA665A5C26C5892800FEF2C1 /* AboutPrefsViewController.swift */; };
|
||||
AA9AE86F26B5BF3D00B6CA65 /* OSD.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA9AE86E26B5BF3D00B6CA65 /* OSD.framework */; };
|
||||
AA9AE87126B5BFB700B6CA65 /* CoreDisplay.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA9AE87026B5BFB700B6CA65 /* CoreDisplay.framework */; };
|
||||
|
|
@ -63,7 +61,6 @@
|
|||
1E7ECF3F22A4552400E4E701 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
1E7ECF4122A4553000E4E701 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/MainMenu.strings; sourceTree = "<group>"; };
|
||||
2894D9B72280B30500DF58DA /* CGDirectDisplayID+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGDirectDisplayID+Extension.swift"; sourceTree = "<group>"; };
|
||||
28D1DDEC227FB8F2004CB494 /* EDID+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "EDID+Extension.swift"; sourceTree = "<group>"; };
|
||||
28D1DDF1227FBE71004CB494 /* NSScreen+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSScreen+Extension.swift"; sourceTree = "<group>"; };
|
||||
2EAA5B7E24BF9E9A00937821 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/MainMenu.strings; sourceTree = "<group>"; };
|
||||
2EAA5B7F24BF9E9A00937821 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
|
|
@ -78,8 +75,6 @@
|
|||
56754EAE1D9A4016007BCDC5 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
56754EB01D9A4016007BCDC5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
6C20466B23153E4F00859767 /* Display+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Display+Extension.swift"; sourceTree = "<group>"; };
|
||||
6C2EA1CC228F644B00060E3F /* OnlyIntegerValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnlyIntegerValueFormatter.swift; sourceTree = "<group>"; };
|
||||
6C2EA1CE228F7DFB00060E3F /* PollingMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollingMode.swift; sourceTree = "<group>"; };
|
||||
6C85EFD922C941B000227EA1 /* DisplayManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DisplayManager.swift; sourceTree = "<group>"; };
|
||||
6C85EFE022CC00AD00227EA1 /* NSNotification+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSNotification+Extension.swift"; sourceTree = "<group>"; };
|
||||
6CAD134F23624CC1009BD53F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/MainMenu.strings; sourceTree = "<group>"; };
|
||||
|
|
@ -102,8 +97,10 @@
|
|||
6CDA0FD826485AAE00F52125 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Main.strings; sourceTree = "<group>"; };
|
||||
AA062E8926C9A039007E628C /* DisplaysPrefsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplaysPrefsViewController.swift; sourceTree = "<group>"; };
|
||||
AA062E8D26CA7BE5007E628C /* DisplaysPrefsCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplaysPrefsCellView.swift; sourceTree = "<group>"; };
|
||||
AA16139A26BE772E00DCF027 /* Arm64DDCUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Arm64DDCUtils.swift; sourceTree = "<group>"; };
|
||||
AA16139A26BE772E00DCF027 /* Arm64DDC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Arm64DDC.swift; sourceTree = "<group>"; };
|
||||
AA3B4A2726AE103C00B74CD2 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
||||
AA4398A826DD55DA00943F16 /* IntelDDC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntelDDC.swift; sourceTree = "<group>"; };
|
||||
AA473EB026DFF8DE0063A181 /* Command.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Command.swift; sourceTree = "<group>"; };
|
||||
AA665A5C26C5892800FEF2C1 /* AboutPrefsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutPrefsViewController.swift; sourceTree = "<group>"; };
|
||||
AA6686F026B8172E00AF74A2 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Main.strings; sourceTree = "<group>"; };
|
||||
AA6686F126B8172E00AF74A2 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/MainMenu.strings; sourceTree = "<group>"; };
|
||||
|
|
@ -147,7 +144,6 @@
|
|||
AA9AE87126B5BFB700B6CA65 /* CoreDisplay.framework in Frameworks */,
|
||||
6CD35F53264FFFC6001F1344 /* SimplyCoreAudio in Frameworks */,
|
||||
6CD35F5626500008001F1344 /* MediaKeyTap in Frameworks */,
|
||||
6CD35F592650002E001F1344 /* DDC in Frameworks */,
|
||||
AA9AE86F26B5BF3D00B6CA65 /* OSD.framework in Frameworks */,
|
||||
6CD35F5C2650003F001F1344 /* Preferences in Frameworks */,
|
||||
AADB625A26BC196900DFFAA5 /* DisplayServices.framework in Frameworks */,
|
||||
|
|
@ -178,7 +174,6 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
2894D9B72280B30500DF58DA /* CGDirectDisplayID+Extension.swift */,
|
||||
28D1DDEC227FB8F2004CB494 /* EDID+Extension.swift */,
|
||||
28D1DDF1227FBE71004CB494 /* NSScreen+Extension.swift */,
|
||||
6C85EFE022CC00AD00227EA1 /* NSNotification+Extension.swift */,
|
||||
6C20466B23153E4F00859767 /* Display+Extension.swift */,
|
||||
|
|
@ -248,10 +243,10 @@
|
|||
F01B0685228221B6008E64DB /* Bridging-Header.h */,
|
||||
F01B0680228221B6008E64DB /* Localizable.strings */,
|
||||
F01B0683228221B6008E64DB /* Utils.swift */,
|
||||
6C2EA1CC228F644B00060E3F /* OnlyIntegerValueFormatter.swift */,
|
||||
6C2EA1CE228F7DFB00060E3F /* PollingMode.swift */,
|
||||
FE4E0895249D584C003A50BB /* OSDUtils.swift */,
|
||||
AA16139A26BE772E00DCF027 /* Arm64DDCUtils.swift */,
|
||||
AA16139A26BE772E00DCF027 /* Arm64DDC.swift */,
|
||||
AA4398A826DD55DA00943F16 /* IntelDDC.swift */,
|
||||
AA473EB026DFF8DE0063A181 /* Command.swift */,
|
||||
);
|
||||
path = Support;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -310,7 +305,6 @@
|
|||
packageProductDependencies = (
|
||||
6CD35F52264FFFC6001F1344 /* SimplyCoreAudio */,
|
||||
6CD35F5526500008001F1344 /* MediaKeyTap */,
|
||||
6CD35F582650002E001F1344 /* DDC */,
|
||||
6CD35F5B2650003F001F1344 /* Preferences */,
|
||||
);
|
||||
productName = MonitorControl.OSX;
|
||||
|
|
@ -383,7 +377,6 @@
|
|||
packageReferences = (
|
||||
6CD35F51264FFFC6001F1344 /* XCRemoteSwiftPackageReference "SimplyCoreAudio" */,
|
||||
6CD35F5426500008001F1344 /* XCRemoteSwiftPackageReference "MediaKeyTap" */,
|
||||
6CD35F572650002E001F1344 /* XCRemoteSwiftPackageReference "DDC" */,
|
||||
6CD35F5A2650003F001F1344 /* XCRemoteSwiftPackageReference "Preferences" */,
|
||||
);
|
||||
productRefGroup = 56754EAC1D9A4016007BCDC5 /* Products */;
|
||||
|
|
@ -494,7 +487,7 @@
|
|||
};
|
||||
F03A8DF01FFB9D4C0034DC27 /* [Lint] Run SwiftLint */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
buildActionMask = 12;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
|
|
@ -516,22 +509,21 @@
|
|||
56754EAF1D9A4016007BCDC5 /* AppDelegate.swift in Sources */,
|
||||
6C85EFE122CC00AD00227EA1 /* NSNotification+Extension.swift in Sources */,
|
||||
AA062E8A26C9A039007E628C /* DisplaysPrefsViewController.swift in Sources */,
|
||||
6C2EA1CD228F644B00060E3F /* OnlyIntegerValueFormatter.swift in Sources */,
|
||||
AA473EB126DFF8DE0063A181 /* Command.swift in Sources */,
|
||||
2894D9B82280B30500DF58DA /* CGDirectDisplayID+Extension.swift in Sources */,
|
||||
6CC260F6256AD8F900613714 /* Preferences+Extension.swift in Sources */,
|
||||
AA665A5D26C5892800FEF2C1 /* AboutPrefsViewController.swift in Sources */,
|
||||
6C2EA1CF228F7DFB00060E3F /* PollingMode.swift in Sources */,
|
||||
6CBFE27C23DB27A200D1BC41 /* InternalDisplay.swift in Sources */,
|
||||
AA062E8E26CA7BE5007E628C /* DisplaysPrefsCellView.swift in Sources */,
|
||||
FE4E0896249D584C003A50BB /* OSDUtils.swift in Sources */,
|
||||
6CBFE27A23DB266000D1BC41 /* Display.swift in Sources */,
|
||||
F03A8DF21FFBAA6F0034DC27 /* ExternalDisplay.swift in Sources */,
|
||||
28D1DDF0227FBD99004CB494 /* EDID+Extension.swift in Sources */,
|
||||
6C20466C23153E4F00859767 /* Display+Extension.swift in Sources */,
|
||||
AA16139B26BE772E00DCF027 /* Arm64DDCUtils.swift in Sources */,
|
||||
AA16139B26BE772E00DCF027 /* Arm64DDC.swift in Sources */,
|
||||
F0445D3820023E710025AE82 /* MainPrefsViewController.swift in Sources */,
|
||||
28D1DDF2227FBE71004CB494 /* NSScreen+Extension.swift in Sources */,
|
||||
F01B069F228221B7008E64DB /* SliderHandler.swift in Sources */,
|
||||
AA4398A926DD55DA00943F16 /* IntelDDC.swift in Sources */,
|
||||
6C85EFDA22C941B000227EA1 /* DisplayManager.swift in Sources */,
|
||||
F01B069A228221B7008E64DB /* Utils.swift in Sources */,
|
||||
);
|
||||
|
|
@ -756,6 +748,7 @@
|
|||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "MonitorControl/Support/Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
SYSTEM_FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
|
@ -790,6 +783,7 @@
|
|||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "MonitorControl/Support/Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
SYSTEM_FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
|
@ -905,14 +899,6 @@
|
|||
kind = branch;
|
||||
};
|
||||
};
|
||||
6CD35F572650002E001F1344 /* XCRemoteSwiftPackageReference "DDC" */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/reitermarkus/DDC.swift";
|
||||
requirement = {
|
||||
branch = master;
|
||||
kind = branch;
|
||||
};
|
||||
};
|
||||
6CD35F5A2650003F001F1344 /* XCRemoteSwiftPackageReference "Preferences" */ = {
|
||||
isa = XCRemoteSwiftPackageReference;
|
||||
repositoryURL = "https://github.com/sindresorhus/Preferences";
|
||||
|
|
@ -934,11 +920,6 @@
|
|||
package = 6CD35F5426500008001F1344 /* XCRemoteSwiftPackageReference "MediaKeyTap" */;
|
||||
productName = MediaKeyTap;
|
||||
};
|
||||
6CD35F582650002E001F1344 /* DDC */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = 6CD35F572650002E001F1344 /* XCRemoteSwiftPackageReference "DDC" */;
|
||||
productName = DDC;
|
||||
};
|
||||
6CD35F5B2650003F001F1344 /* Preferences */ = {
|
||||
isa = XCSwiftPackageProductDependency;
|
||||
package = 6CD35F5A2650003F001F1344 /* XCRemoteSwiftPackageReference "Preferences" */;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue