Now Rootless mode is becoming part of the main distribution has anyone thought of replacing twm with Aqua itself? It seems a little silly that we have two window managers running - one under Quartz and one under X. Now I know we need X to render the contents of the windows but can't the actual windows be normal Aqua windows we can minimise to the dock and that look like Aqua windows?
As my old chemistry professor used to say "I second that thought." Perhaps the Tenon implementation could provide some helpful clues on how best to accomplish this. Can any of the more experienced developers on this list point out a window manager which would be a good starting point or place to learn how to go about writing a window manager?
There is a major problem with XTool's Aqua wm, and that is the X11 windows have Aqua title bars making them more difficult to distinguish from mac apps.
Why is that a problem? I would think that making them indistinguishable should be a goal.
Yes and no. On the surface, it seems obvious that they shoudl look the same. The problem, however, is that they won't feel the same - X apps don't follow Mac guidelines, which can be confusing in some cases, especially to newbies.
I have not used XTools, but I have used Xceed on NT more than I would've chosen (I was responsible for getting it to work in a lab environment, but that's a long story). Exceed has the option to use NTs window manager instead of mwm, which is also included. After hearing the arguments for both sides, and trying it both ways, I found that using NTs window manager was preferable. The windows weren't that similar, mostly because the colors and fonts were so different.
I agree that X and Aqua should not be indistinguishable, but the benefits of having the same window manager outweigh the potential confusion, as the different fonts and color schemes still distinguish the two. X apps don't generally blink in blue, so the difference should be even larger than in the NT case above. It's in any case better than having quick-and-dirty Mac ports that still don't feel Mac like (Word 6 springs to mind). The ones who don't agree with me, feel free to use Windowmaker or something.
One problem if we make an Aqua window manager is that Xapps don't register in the Dock right now - all windows would appear to belong to XDarwin, which could be confusing. Windowmaker makes a dock with icons from the programs - I wonder if we could register those icons in the MacOS X dock somehow? Documentation, Apple, documentation!
I have used XTools and found the Aqua wm totally unusable! X11 apps do not behave like mac apps, they shouldn't look like them. I have had this exact same problem with Swing apps which don't use the Metal theme and the Qt demo apps as well.
Instead of making X11 apps look like mac apps (which serves no purpose but to confuse), why not provide hooks in XDarwin to minimize X11 windows into the Dock so wmaker can be hacked to use them? That way we have the functionality without using Aqua title bars.
Can't do that. First, there's no way to notify WindowMaker when the window is un-minimized. Second, the X11 window is destroyed when minimized; XDarwin would need knowledge of WindowMaker's internal structures to tell it which window was un-minimized. Adding the required changes would be tremendously ugly.
We all know how much you love to flame anything that is similar but not exactly like Aqua, but please remember that this is a development discussion, not an advocacy list. Optional features that you don't like are not bugs.
You don't need to notify wmaker, and it need not be destroyed.
Instead of docking a window itself, wmaker will instead notify XDarwin that the window should be minimized. XDarwin then takes that window and minimizes it. The status of the window, as far as wmaker is concerned, has not changed a single bit!
The problem is that X11 *does* need to be told the window is minimized, or else its internal mouse tracking will be incorrect. It might be possible to have XDarwin itself move the X11 window on and off the screen.
And you're telling me that isn't what happens when you Dock *any* window?
This is your opinion, and you are of course entitled to it, but please trust me when I say that a large number of people will not agree with you. I'm certain that the majority of the people who will be using rootless X on MacOS X will prefer using an Aqua window manager. For those who don't, feel free to use another window manager. Noone's going to stop you. I have an Aqua theme for Classic to make those windows similar as well (even though they don't minimize the same way).
An Aqua manager would be nice if it was a full-fledged window manager. We ran into several applications (mostly based on mainwin) that refused to run under the Aqua window manager under Xtools. Tenon's explanation was that some applications need a "real" window manager which the Aqua window manager was not. Using mwm worked but was significantly slower.
It's definitely possible to implement an Aqua-based window manager. There are some difficulties with keeping the Aqua and X11 window synchronized, but those should be solvable with a period of trial and error. We would need to add a hook for the wm to access the Cocoa window number, and a hook for the wm to tell XDarwin to create windows with title bars, but that's not hard.
I don't know of any window manager documentation. You might start with the twm or mwm source - they may not be the cleanest code but they're relatively simple as window managers go.
I don't know what would make Tenon's implementation not a "real" window manager. With the two hooks above, it should be possible to make a window manager that looks just like any other simple window manager.
I've been toying with the idea of an aqua window manager, and concluded that a simple aqua replacement for twm is absolutely not the right way to go.
However, I noticed that in XAqua rootless, the x-windows windows have drop shadows, and using Quartz Debug, I determined that they are independent quartz windows. Therefore, it should not be extremely difficult to simply change these to decorated aqua windows.
I would do it, but I can't seem to find the XDarwin source in the xfree cvs repository. Could someone point me to the location of the XDarwin source??
Adding Aqua window decorations is easy. The hard part is keeping X11 and Aqua coordinated when the user manipulates the window.
The XDarwin-specific code is (mostly) in
Rootless mode lives in hw/darwin/bundle/
I certainly don't object to an Aqua WM as an option. And that seems to be the idea among those who want it, so no problem.
However, there are certain features of (at least some) X11 window managers that I find essential, and that are not part of the standard Mac interface. Therefore, an Aqua WM that adhered entirely to the Mac way would not be useful to me. In particular, and most important, is "input focus follows mouse." That is, I must be able to type into a window that is partially covered by another.
Would this Aqua WM be able to control things like X client geometry, either on the X client command line, or in a X defaults file? Ditto for client background colors? I am of the opinion that here are a lot of personalization options in X11 window managers that are either available or less flexibly implemented in "the Mac way". I would miss them.
I don't think it's possible to do anything in X11 "the Mac way". The only proposal I see here is to make X11 apps look like mac apps without behaving like them.
If XDarwin could merely minimize windows which don't have title bars (and provide a hook to activate this), a small modification to any current X11 wm would do the trick.
Still, it seems that a lot of people want an Aqua wm, and noone is going to force you to use it. L&F is - at least partially - a subjective thing, and I can tell you that I'd prefer using one window manager for all windows despite the fact that they come from different interface paradigms. That you do not want it that way should not deny the rest of us the _option_ of having it that way.
XDarwin will merely be telling Quartz services how to order the windows. The OS X wm doesn't change ordering, each app must activate it's own window to bring it to the foreground (whether the Carbon or Cocoa library does this for you in most cases isn't material).
What XTools does, for example, is make NSWindows and manage them like any other Cocoa app. There is no inherent utility inthe Aqua mode in XTools except you can minimize them into the OS X Dock. I'm merely suggesting XDarwin provide a hook to minimize any X11 window. This will provide the best of all worlds, and is potentially easier to implement.
Not true! CoreGraphics *DOES* reorder windows *without* any help from the application. One particular case is when the app is stuck in a loop. CG will bring the window to the front even though the app isn't processing events.
An Aqua window manager does not simply tell Quartz how to arrange the windows in response to X11 changes; it must also tell X11 how to arrange the windows in response to Quartz changes. Keeping them synchronized is the hard part.
Because X11 windws reside in their own buffer, you only need to notify the active window that it's active.
As Greg pointed out, an Aqua WM needs to do a lot more than just keep track of the active window. One obvious reason you need to keep track of window ordering and position is so that X11 can display the appropriate cursor image depending on what X window it is over.
That would create a major problem. Only the active application in OS X should be changing the cursor.
I don't know if you haven't realized, but OS X doesn't use mouse cursor focus (thank gawd), thus changing the cursor for windows which aren't even in the same 'app' would cause major problems.
Currently that's not a problem because XDarwin behaves like ONE application where all it's windows are brought to the foreground at once. However if they start mingling with OS X windows and don't behave like OS X windows, then you have a problem.
No one is talking about XDarwin changing the cursor when it is not the foreground application. However when XDarwin is the foreground app, it needs to correctly change the cursor image as the user mouses over the various X11 windows. To do this, the X server thread needs to know where these windows are on the screen and how they are stacked. Thus any theoretical Aqua WM, has to make sure it keeps the X server thread up to date with more than just which window is active.
Personally, I'd rather use a pure command line terminal typing with my nose than use pointer focus, but I agree that the Mac OS X interface needs more customization. I don't think XDarwin is the place to implement it, though - it's be better to implement such a thing systemwide, and I don't doubt that someone will write a plug-in that does what you are asking for. If said someone could also add the feature to switch between windows in an app with command-option-tab, like I tweaked my OS 9 setup to do...
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.