A script to fix EDID problems on external monitors in macOS.
-
Connect only the problem display.
-
Create this directory structure (if it doesn't already exist):
| std::string get_module_path(void* address) | |
| { | |
| char path[FILENAME_MAX]; | |
| HMODULE hm = NULL; | |
| if (!GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | | |
| GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, | |
| (LPCSTR)address, | |
| &hm)) | |
| { |
| #!/usr/bin/ruby | |
| # Create display override file to force Mac OS X to use RGB mode for Display | |
| # see http://embdev.net/topic/284710 | |
| require 'base64' | |
| data=`ioreg -l -d0 -w 0 -r -c AppleDisplay` | |
| edids=data.scan(/IODisplayEDID.*?<([a-z0-9]+)>/i).flatten | |
| vendorids=data.scan(/DisplayVendorID.*?([0-9]+)/i).flatten |
| /*--- checkForBadJavascripts() | |
| This is a utility function, meant to be used inside a Greasemonkey script that | |
| has the "@run-at document-start" directive set. | |
| It Checks for and deletes or replaces specific <script> tags. | |
| */ | |
| function checkForBadJavascripts (controlArray) { | |
| /*--- Note that this is a self-initializing function. The controlArray | |
| parameter is only active for the FIRST call. After that, it is an | |
| event listener. |