PDA

View Full Version : Replace Mac OS X's login with GDM


ravendon
01-16-2003, 07:35 PM
Does anyone know of a way to replace the Mac OS X login screen with Gnome Display Manager? Someone told me this has been done, but I can't find any information on the web.

ClarkGoble
01-17-2003, 01:29 PM
I can't see how this could be done. OSX applications require the OSX window manager to be running. That requires that a user be logged in. This leads to all sorts of issues with CGI control of programs like iTunes, for instance. O'Reilly had an interesting discussion of the issue and security issues involved.

My point though is that to replace the login manager leads to a circular project. To use X11.app you need to be logged in as a user. But to be logged in you need to have already used the Login Screen.

While I'm sure Apple could make X11 a system process that runs prior to the full window manager executes, I can't see them wanting to do this. (For a wide variety of reasons) Certainly at this point in time you can't do the above.

Erik Toh
01-17-2003, 10:13 PM
If that's the case then how do they get KDE to run on Darwin x86 (http://darwinunderground.com/pub/screenshots/buddy/kde.jpg)?

PimpDaddy
01-17-2003, 10:33 PM
Darwin is not Mac OS X. You can also run KDE in OS X, using X11, but I think he's asking how to run it as opposed to aqua. The answer would basically be to login as >console, then login as a user and run startx.

Erik Toh
01-18-2003, 12:19 AM
Originally posted by PimpDaddy
Darwin is not Mac OS X. You can also run KDE in OS X, using X11, but I think he's asking how to run it as opposed to aqua. The answer would basically be to login as >console, then login as a user and run startx.

Of course Darwin is not OS X. That was not my point.

I'm just suggesting that it is possible to run another window manager instead of "Window Server". Look here. (http://developer.apple.com/techpubs/macosx/Essentials/SystemOverview/BootingLogin/Customizing__Procedures.html)

nemomeansnobody
04-21-2009, 01:20 AM
:) I like your thinking. I checked your "Look Here" link but didn't see anything relevant to this post.

Of course Darwin is not OS X

Correct, sort of, Darwin ISN'T OS X but OS X IS Darwin. :cool:
Furthermore, OS X is certified Posix (meaning Apple has $$$ and OS X includes a complete Unix API). So you do not need to use the Apple loginwindow app to switch users at all. For our purposes any GNU or BSD toolchain should work (google macports).

If you can stand having the Apple windowserver in memory and using the loginwindow App then you can EASILY delete Dock.app and Finder.app and set up a a pseudo GNOME/KDE system using Apples X11.app and macports. It isn't hard to script it to run on login. If you like, upon request, I will give instructions on building a GNOME or KDE system and scripting it. I've tried it with Nautilus (GNOME) and it works great except having to manually set all of the Open With associations. Also, rarely, certain OS X apps like Preview don't play well with having their binary loaded directly (bypassing the bundle as a directory) when using it to, say, view a second .jpg while it is already open and viewing another .jpg, but I may just be using the wrong command parameters. Plus temporary burn folders, minimizing windows, expose, and etc. will no longer work without loading Dock/Finder.

However, that is not at all what you asked for and that brings us to the bad news. :( I am not 100% about the next part of this post but I will explain the situation to the best of my knowledge.

It seems that OS X was designed to be a graphical OS from the ground up. As far as Cocoa Apps are concerned, the windowserver might as well be part of the kernel. More specifically, there are these NS objects that are tightly integrated with the windowserver called NSApplication, NSWindow, and NSView. These objects are responsible for the main loop, video out, and interface of every single native OS X app.

It IS possible for a very skilled person, with lots of time, and the required documentation to write a "NSWrapper" that would route all of the NS functions to their X11 equivalents found in a plain, vanilla Darwin X11 port, almost exactly the way WINE does with MS Windows system calls, thus replacing windowserver. Though you will likely have to kiss quartz acceleration goodbye. OpenGL should be unchanged.

The really bad news is that not only would you have to be really bored, insane, or both to work on this, but there is no practical reason to do any of it so nobody will help you even if you had the skills needed (and I don't).

:D Thanks for the good topic though and best of luck! :D

sebastianlewis
04-21-2009, 09:36 AM
Dammit all I didn't even realize I was responding to a post from 2003, and the OP only ever posted once on this site. Thanks @nemomeansnobody for reviving a long dead discussion that was abandoned by it's OP. The reason that Look Here link doesn't work is because it's documentation from 2003 and Apple doesn't know the meaning of Permalinks. Something more relevant would be http://developer.apple.com/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/BootProcess.html#//apple_ref/doc/uid/20002130

In theory it is possible, but the end result would basically be a Darwin system running GNOME if you successfully compiled X and GNOME and was able to change the Boot Process so that it would either go into a Console mode allowing you to start the X server (and presumably you would have a script to start the system as normal as well when you wanted to use your Mac OS X apps) or just start X and GNOME automatically.

Sebastian

nemomeansnobody
04-25-2009, 01:54 AM
Thanks for the kudos from sebastianlewis! I am a firm believer that even oldies (threads) can be goodies. :)

I also would like to thank you for the link. It really was useful. Especially regarding launchd in 10.4 and later.

The idea of diverting the boot process like that and ditching the idea of providing OS X support while using GDM just doesn't seem to fit. There would be directory hierarchy headaches from things expecting things to be installed somewhere else that just wouldn't be worth it. In that case I would recommend dual-booting Darwin from a second partition as it wouldn't eat that much disk space. I have to admit that I kind of took the thread towards my own direction and possibly that of Erik Toh's while ignoring the original subject at hand.

I really wonder what the end result was intended to be for the means suggested by the threads creator. Though I seriously doubt they still remember ever making their post.