Awesome
Moraea non-Metal Frameworks
The core of the non-Metal patches: wrappers for downgraded frameworks, consisting of a mixture of autogenerated stubs and handwritten shims.
build
Run Dependencies.tool
to fetch dependencies from GitHub, or set MORAEA_LOCAL_DEPENDENCIES=1
to use local versions. Run Build.tool
to generate binaries in the Build
subfolder.
Most users will want to just use OCLP, which includes stable versions of these fixes.
credits
- EduCovas
- QuartzCore downgrade idea and shims (fixes numerous graphical bugs and improves performance)
- refresh rate shims (fixes Catalyst scrolling and WebKit freezing)
- swipe between pages workaround discovery
- window rim improvement code
- auto appearance switching reimplementation
- occlusion research (Safari extensions, disabled buttons, frozen apps)
- display backlight insights
- updating downgraded binaries and binpatch offsets for the latest security updates
- unification of codebase and build scripts for Big Sur, Monterey, and Ventura
- extensive Ventura SkyLight research identifying the functions responsible for:
- flushing a display update transaction
- updating window positions and sizes
- updating window shapes/regions, corners, and shadows
- capturing windows (used in fullscreen animation and screenshots)
- handling split-screen window management
- various other changed functionality in Ventura
- Ventura screenshot inverted colors research
- patch for downgraded QuartzCore crashes in Ventura
- CABL/CAPL blur hack research and code
- producing and testing builds for OCLP
- Sonoma research and shim development (ongoing)
- identification of many functions responsible for:
- window grouping/ordering
- setting the frontmost process
- setting window tags (attributes)
- SkyLight notifications
- implmentation of shims for some of the above
- identification of windowing functionality dependent on WindowManager interfaces
- QuartzCore filter research and fallback idea (fixes monochrome widgets)
- QuartzCore patch for white UI elements
- workarounds for loginwindow issues in 14.4 (ongoing)
- setting to keep transparent MenuBar2 with Reduce Transparency/Increase Contrast (
defaults write -g MB2_KeepTransparency -bool true
)
- identification of many functions responsible for:
- countless other code contributions, insights, testing, and maintenance
- ASentientHedgehog
- QuartzCore downgrade idea
- swipe between pages workaround code
- window rim improvement code
- auto appearance switching reimplementation
- keyboard backlight workaround code
- TeraScale 2 insights
- OpenCL downgrade
- Night Shift prefpane fix code
- shim to selectively reenable transparency with Reduce Transparency/Increase Contrast enabled (ex.
defaults write com.apple.dock Moraea_EnableTransparency 1
) - AppKit
issetugid
workaround help - countless other code contributions, insights, and testing
- Flagers
- LegacyRVPL for rapid testing of new framework shims/patches
- preserves snapshots and delta OTAs for developer convenience
- Ventura SkyLight transactions/softlinks research
- Ventura/Sonoma WindowManager research
- Objective-C and dynamic linker cache research
- Sonoma research and shim development (ongoing)
- countless other macOS insights, explanations, and help
- LegacyRVPL for rapid testing of new framework shims/patches
- ASentientBot
- most build scripts and stubbing/binpatching/swizzling utils
- misc fixes (defenestrator-on window contents, menu bar contents and styling, sidebar glyphs, user input, sessions, Dock collisions, display sleep, accessibility zoom, greyscale, occlusion detection, CABL/CAPL hacks, Cycle Through Windows, wait cursor, unresponsive Catalyst/SwiftUI buttons, sshd/cryptexd, permissions, various crashes)
- downgraded QuartzCore fixes (animations, Catalyst issues, Siri issues, black videos)
- app-specific hacks (Photos, Discord, Safari, Books, Logic)
- misc Ventura/Sonoma shims (many based on Edu's research, see above)
- various other code and research
- khronokernel
- OpenCore Legacy Patcher development and leadership
- TeraScale 2 insights
- excellent hackintosh guides
- countless other explanations, insights, help, patience, and testing
- dosdude1
- 10.14.4+ OpenGL/GPUSupport downgrade (fixes mysterious WindowServer crash)
- Mojave/Catalina patcher development and leadership
- countless other macOS insights and help
- SpiraMira (pkouame), testheit
- various SkyLight insights and explanations
- previous light mode transparency workarounds
- fabioiop
- window rim improvements, SkyLight analysis and explanations
- jackluke
- 10.14+ Penryn panic fix (telemetry plugin)
- Tesla insights
- Minh Ton
- display brightness workaround (fixes greyed Control Center slider with downgraded QuartzCore)
- many other macOS insights and testing
- parrotgeek1
- numerous macOS and graphics insights regarding Tesla, TeraScale 2, SIP, OpenGL and more
- IronApple
- OpenCL downgrade testing
- dhinakg
- Syncretic
- Acidanthera
- Julian Fairfax
Thank you as well to other contributors, moderators, and testers on Unsupported Macs Discord, OCLP Discord, and MacRumors Forums. Please contact us or open an issue if we forgot to mention you!
changes
2024-4-18
- resolve 14.4 session issue due to Amy's bad code from 2022 🤦🏻♀️
2024-2-3
- fix loginwindow hack for 14.4
- improve Sonoma Dock hack
- workaround loginwindow shutdown crashes
2023-10-3
- mimic the correct lock screen clock tint
- fix MenuBar2 server
- workaround window focus glitch
- fix catalyst buttons
2023-9-19
- fix blank Safari windows with downgraded QuartzCore
2023-9-9
- fix popup sheet windows
2023-6-16
- fix white artifacts with downgraded QuartzCore
2023-6-14
- preliminary Sonoma support
- build script update (requires
non-metal-common:sonoma
); SkyLight libSystem symbols hack - essential SkyLight transactions shims (as usual, credit EduCovas for most research and significant parts of the shims!!)
- WSCA tweaks (
SLSNewWindowWithOpaqueShapeAndContext
, permit layer changing, Dock-specific surface size hack 🤦🏻♀️, WallpaperAgent connection ID hack) - menubar is currently broken with the new AppKit path, force Carbon path with
defaults write -g NSEnableAppKitMenus -bool false
- monochrome widgets fix
- QuartzCore downgrade currently causes white artifacts, workaround is to set display profile to sRGB/Unknown Display (as for HD 3000 problem)
- build script update (requires
2023-6-2
- rewrite MenuBar2; improve stability and implement Reduce Transparency/Increase Contrast handling
2023-5-29
- replace
SLS*DockRectWithOrientation
implementation (fix incorrect orientation returned to root processes) - retry occlusion-related swizzles if AppKit is not available at SL init (fix OCLP indeterminate progress bar)
2023-5-12
- workaround
cryptexd
/sshd
crashes due to SkyLight initializers - stub
SL*Preflight*Access()
functions (fix screen recording regression)
2023-3-27
- implement automatic light/dark menubar text based on average wallpaper brightness, rounded selections, and text shadows (
defaults write -g Amy.MenuBar2Beta -bool true
to enable, will be on by default after further testing)
2023-3-15
- add Logic Pro playhead hack (
defaults write -g Moraea.LogicPlayheadHack -bool true
to enable)
2023-3-11
- workaround Safari 16.4 blank windows when focused
2023-3-7
- update fixes version scoping (brings buttons, books, fullscreen, splitscreen, etc. to Big Sur/Monterey)
2023-2-15
- replace Catalyst buttons hack with a better (still awful) hack
2023-2-6
- improve fullscreen transition reliability
- add wait cursor hack (enable with
sudo defaults write /Library/Preferences/.GlobalPreferences.plist Moraea.EnableSpinHack -bool true
) - add Books hacks (reimplement cover image generation, disable broken page curl animation)
2023-1-31
- fix System Settings hover effects, including Bluetooth connect button
2023-1-23
- update menubar styling patches
sudo defaults write /Library/Preferences/.GlobalPreferences.plist Moraea.MenuBar.BackgroundColor 'R,G,B,A'
where 0 ≤ R, G, B, A ≤ 1 (default: 0, 0, 0, 0)sudo defaults write /Library/Preferences/.GlobalPreferences.plist Moraea.MenuBar.Radius N
where N is horizontal gaussian blur radius (default: 128)sudo defaults write /Library/Preferences/.GlobalPreferences.plist Moraea.MenuBar.Saturation M
where M is the saturation value described here, negative = invert, less than 1 = desaturate, 1 = identity, more than 1 = saturate (default: 1.2)
2023-1-22
- workaround Safari download hang issue on Ventura
2023-1-7
- preliminary support for Ventura
2022-12-21
- fix full-screen transition
- partially fix split-window
- improve menubar blur radius
2022-12-1
- partially fix unresponsive Catalyst buttons
- Re-enable HardRim and improve rim appearence. White rim is now enabled by default (
defaults write -g Moraea_RimBetaDisabled -bool true
to disable)
2022-8-4
- Add
_AXInterfaceGetIncreaseContrastEnabled
interposing to EnableTransparency.m to fix selective re-enabling
2022-5-31
- update 10.14.6 and 10.15.7 binaries to latest security update
2022-5-27
- workaround VirtualBox AppKit
issetugid
crash with Cycle Through Windows implementation
2022-5-23
- fix Discord (app) screen sharing by making it think it's on High Sierra
2022-5-22
- allow selectively re-enabling transparency with reduce transparency enabled (
defaults write (bundle identifier) Moraea_EnableTransparency 1
)
2022-5-16
- temporarily disable Cycle Through Windows due to VirtualBox issue
- re-add CABackdropLayer scale hack for Cat QC builds
2022-5-14
- fix crashes caused by prior occlusion change
2022-5-13
- refresh status bar when item length changes
2022-5-12
- reduce rim blacklists
- update occlusion workaround to fix unresponsive UNCAlert buttons
2022-5-9
- add back
SLSSetWindowType
shim for Big Sur with defenestrator off - smooth transition for auto appearance
2022-5-3
- Change Plugin logging to a default - disabled by default (
Moraea_PluginLogging
)
2022-4-23
- disable Cycle Through Windows implementation on Big Sur
2022-4-21
- fix Catalyst app instability with Mojave QuartzCore
- disable Night Shift patch by default since OCLP handles that
- fix upside-down Catalyst UI elements with Mojave QuartzCore
2022-4-20
- fix Siri regression with Stubber 2
2022-4-19
- reduce Display prefpane icon pixelation
- reimplement Cycle Through Windows
- replace last
ASB_
andNonMetal_
prefixes withMoraea_
2022-4-18
- improve rim detection heuristic
2022-4-17
- improve auto appearance stability
2022-4-10
- fix swipe between pages automatically
- improve auto appearance stability
2022-4-5
- significantly improve window rim appearance
2022-4-4
- add window rim blacklist
- automatically disable fake window rims in light mode
- add Fabio's window rim tweak
- improve build scripts
- fix 1200 second Catalyst crash
2022-4-3
- add initial auto appearance reimplementation
earlier history
Previous history is available in the old repository.
todo
- reimplement AppKit menubar
- reimplement WindowManager communication
- fix stuttering/out-of-order frames when seeking in videos with Mojave QuartzCore
- fix blank Wabbitemu, Anka VM windows with Mojave QuartzCore
- fix beachball with hardware cursor (workaround: downgrade
IOHIDFamily
to Catalina and edit WindowServer's sandbox file to allowHIDWaitCursorFrameInterval
) - rewrite blur fix to work with Mojave QC and fix flickering/performance issues
- investigate rare binaries not seeing re-exported symbols (Dropbox-specific workaround: SkyLight plugin)
- investigate slow compositing in all browsers (at least partially fixed with Mojave QuartzCore)
- investigate broken WebGL in some browsers (workaround: use Chrome's
ignore-gpu-blocklist
) - fix Maps
- fix Migration Assistant
- fix "Move to Display"