Skip to content

macos 26 stability fix - #963

Open
lxy1992 wants to merge 78 commits into
jordanbaird:mainfrom
lxy1992:codex/macos-26-stability-fix
Open

macos 26 stability fix#963
lxy1992 wants to merge 78 commits into
jordanbaird:mainfrom
lxy1992:codex/macos-26-stability-fix

Conversation

@lxy1992

@lxy1992 lxy1992 commented Jul 14, 2026

Copy link
Copy Markdown

No description provided.

Misc additional changes and cleanup
`RunLoopLocalEventMonitor` seems to prevent certain buttons from receiving events in macOS 26 Developer Beta 1. This might be a bug in the beta, or `RunLoopLocalEventMonitor` itself. For now, let's just move to a better mouse check implementation that doesn't use continuous event monitoring.

Note the `FIXME` (line 1057). The previous implementation had this problem too, but it was never documented.
A big part of this is hopefully a temporary measure. We need an accurate identifier for every item, and the old way just isn't cutting it right now. Items are all owned by the Control Center in macOS 26, and try as I might, I couldn't find a great way to get the _actual_ host apps for the items.

Must dig deeper into the mines...

Oh yeah, there's also a bunch of random stuff here too that I don't really want to explain. Just know that it probably all fixed something.
This is what I get for trusting Xcode to update my build settings
- Refactor screen capture
- Rework menu bar item getters
- Update immovable/non-hideable info lists
- Remove OSLog wrapper
- Minor migration rework
- Remove old entitlements file
Should also fix a crash when accessing `ControlItem.windowNumber`.
- Rework app lifecycle
- Rework how windows are initialized
- Update documentation comments
- Refactoring and cleanup
This should fix some performance issues that occur during mouse tracking operations (e.g. highlighting a button on hover).
We also store the status item and layout constraint in a separate storage class. Not sure I like this, but the idea is to convey the tightly coupled relationship between the constraint and status item, and to ensure that they are initialized (and deinitialized) at the same time.
Relying on the default behavior seemed to work fine, but is now broken in the macOS 26 Developer Beta. Probably better to handle it explicitly, even if it is just a beta bug.
jordanbaird and others added 28 commits August 24, 2025 05:00
- Documentation changes
- Misc event handling improvements
- Fix temporarily shown item interface check
- Fix broken on screen item check
- Additional minor refactoring
Revert to using a direct call to the `CGImage` initializer, rather than calling it through a static protocol method (this was originally done to suppress the deprecation warning, but it seems to cause screen capture to fail for some users).
@richiehug

Copy link
Copy Markdown

This PR is super nice. Much more stable than the current release version (tested on MacOS 26.6). Any chance we can merge this to main?

@lxy1992 lxy1992 changed the title Codex/macos 26 stability fix macos 26 stability fix Aug 5, 2026
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.

3 participants