Hacker News new | past | comments | ask | show | jobs | submit login

While we are on the subject of macOS internals.

Do you know where I can read about what it would take to replace WindowManager and the rest of the desktop environment on macOS?

I would like to make my own implementation of the desktop environment, including replacing the top bar with the menus and stuff, and replacing the dock with a dock of my own, as well as replace spotlight search and Finder. Furthermore to also replace the open file dialog that is called to from programs when they open files.




> I would like to make my own implementation of the desktop environment, including replacing the top bar with the menus and stuff, and replacing the dock with a dock of my own, as well as replace spotlight search and Finder. Furthermore to also replace the open file dialog that is called to from programs when they open files.

While they may seem like a unified application, these are all separate components. Dock, Spotlight, and Finder are apps, and the open dialog is an XPC service.


How isolated are they from one another? For example, if I manage to replace the Dock first, does the Dock need to provide a lot of interfaces for the other parts of the DE to call into?

For example, when an application is started from the spotlight search, its icon pops up in the dock (if not already there) and becomes active, and when applications exit they become inactive in the dock and optionally disappear.


Darwin is just the os kernel not the GUI stack on top. You can, however, take a look into KDE’s codebase to see how they manage panels (docks) and using bonobo for search and dolphin as a finder replacement. Menu has a special Application mode which moves the app menu to a panel (that Is docked to the top of the screen for instance)


> Darwin is just the os kernel not the GUI stack on top.

I know. I was speaking about the broader part of macOS, and of replacing the desktop environment.

Specifically I need to know how to prevent the default desktop environment with all the parts I mentioned from launching on log in.

WindowManager on macOS is started by launchd at least. Don’t know how intertwined the desktop environment as a whole is.

But yeah, how to prevent the stuff I mentioned from running, and then what I need to implement in my own DE so that I can have my own working DE on my MacBook Air where I can still run all of the applications that I have installed such as CLion, Photoshop, etc.

What KDE does is not of interest to me in this context. That being said I run KDE neon on my desktop so it’s not like I have anything against it. In fact I like it a lot. But it’s not relevant to what I am talking about here.


You are asking how to create your own DE for macOS, this is not possible or it would have been done already.


What a silly attitude.

It is almost certainly /possible/, but most people in a position to do so haven't thought it was worth the amount of effort involved.


People keep saying that but why wouldn’t it be? It’s not magic, it’s just software.


— some lazy cynic


>also replace the open file dialog that is called to from programs when they open files.

Maybe take a look at Default Folder X or contact the dev to see how they go about this. I think they just inject into the existing implementation, but it might provide a starting point.


Injecting into the existing implementation is one way of achieving some of the stuff I want to for sure but it feels like that would be more fragile (though less work) and also it would limit what I would be able to do quite a bit.

That being said, DFX does look interesting and it looks like it is doing some of the kinds of things that I had in mind for my own imagined DE so I will have a close look at it for sure.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: