Skip to content

Generic backend and OSX support #321

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 8 commits into
base: develop
Choose a base branch
from
Draft

Generic backend and OSX support #321

wants to merge 8 commits into from

Conversation

sminez
Copy link
Owner

@sminez sminez commented Apr 3, 2025

I've been playing around with some ideas on how to support running Penrose as a window manager for OSX here. This requires stripping out all of the x11-isms from core and really making the WindowManager backend agnostic (also required for Wayland but there's a lot more work to do there). The initial state of this PR is what is required to move over to driving things using a Conn trait (rather than XConn) while also allowing for X11 specific behaviour if the user wants/needs it. I need to move my POC work for the OSX backend and verify that everything works so I'm leaving this up as a draft for now.

It should go without saying that merging this will require a 0.4 release 😉

⚠️ Breaking changes ⚠️

  • Xid is now WinId
  • XConn bounds are mostly replaced with Conn bounds (other than for extensions and actions that are using X11 specific behaviour from XConn)
  • XConnExt is gone (Conn and ConnExt fill a similar role but do not provide exactly the same methods)
  • Events are now an associated type on Conn rather than always being XEvent
  • Send bounds are now required for most of the traits so that WindowManager can be moved between threads (OSX requires that it's main event loop runs on the main thread of the program)

@sminez sminez force-pushed the wip/generic-conn branch from 95fd050 to feaebe6 Compare April 11, 2025 18:49
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.

1 participant