New Features in OroborOSX v0.9 public preview
- Now uses a much more up-to-date version of XDarwin.app (based on XFree86 v4.3), which includes the following improvements (amongst others):
- Hardware accelerated OpenGL;
- Much faster 'direct drawing' (draws directly into the window buffer);
[Note that 'direct drawing' makes XDarwin incompatible with OSX10.0, as well
with changes in screen depth while it is running.]
- Support for multi-threading.
- Other improvements to this specialised version of XDarwin.app (beyond those already added from previous versions):
- Now recognises native OSX enter/leave events, for improved integration with native OSX windows - no more rollover effects or popup windows appearing from parts of X11 windows which should be hidden behind other applications;
- Allows OroborOSX to switch on/off recognition of subwindows within the window manager's frame when tracking the cursor - this means 'click to focus' mode now prevents the inconsistent appearance of popup-tooltip-type windows and 'cursor rollover effects' for controls (buttons and sliders, etc);
- Big improvements to the window resizing code, giving a smoother resize;
- Removed some irrelevant settings from the bundled XDarwin's preferences dialog;
- Added some code to begin to deal with changes to the screen geometry (no longer constrains the cursor when it goes beyond the original root window bounds) - but if you try it now, you'll find problems with non-managed windows, like menus and tooltips, which still try to pop up within the bounds of the original root.
- New rules-based control over default window properties. A window which matches a chosen set of X11 window attributes can be given any set of chosen properties (similar to those available in the Properties submenu) as soon as it appears. Choose "About Rules" from the Help menu for more information on the syntax for creating your own rules, and "Edit Property Rules" from the Properties submenu to edit the rules file to your own taste;
- Now uses native OS X APIs to position X11 windows correctly when zoomed (and when they first appear) - so they respect the space taken by the Dock;
- New "Presentation" type mode, which hides the Dock and Menu (useful for Slide Shows in OpenOffice, for example) - see the "Hide Menubar and Dock" item in the Options menu. To show them again, put the cursor into the place where the menubar was, and hit control+option+command+Z (could probably do with a dialog to explain this when first hiding).
- Works with either XDarwin (i.e. XFree86 from XonX), or with Apple's X11 - only other installation which may be necessary is libfreetype v6.3;
- Automatically makes use of Apple's X11 Plugin library (if installed through Apple's X11) for even more acceleration of drawing;
- Removed the need for XDarwinStartup, and changed around the order of a few things at startup - altogether, these help to cut down the startup time quite considerably;
- New properties added to the Property submenu (not all yet implemented):
- Drag on First Click - the window can be dragged from the background by clicking anywhere in the content (not just the titlebar or other frames);
- Ignore Mouse Clicks - prevents the window from receiving mouse clicks (at any time) - though it can still be brought in front, moved, and resized by clicking on it (note that setting this and Drag on First Click means you can then drag a window by its content when it has focus - useful for a frameless xeyes window, for example);
- Ignore Keyboard Focus (not yet implemented) - prevents the window from receiving keyboard focus, even when in front - the titlebar of this window will not become 'highlighted' (and/or opaque, if appropriate);
- Edit Property Rules - opens up your property rules file, so you can edit it;
- Rebuild Property Rules - rebuilds the property rules, by reading the rules file again (should be used after editing the file).
- Fixed the problems with the localisation of various personal folders (Launch Menu Items, Helper Scripts and Themes);
- Various fixes to help it work with Mac OS X 10.3:
- Recognises when the window order is changed through the Expose mechanism (but you must ensure you are not in the middle of dragging an X11 window when you use Expose, otherwise it can get confused about the location of the window);
- Should be compatible with fast user switching, as long as different users have different DISPLAY numbers in their XDarwin preferences (may be able to produce a more elegant solution for this...);
Still to be completed before v0.9 final:
- Bring localisations much more up to date again;
- Finish off extra code in XDarwin needed to deal with screen configuration changes in the "Displays" System Preferences;
- Look into dealing with screen depth changes (don't try it - you'll probably crash XDarwin at the moment...)
- More intuitive cut/copy/paste between XDarwin/OroborOSX and OS X applications. (Also so I don't have anyone asking why the "Edit" menu is greyed out... ;-)
- Put back support for large cursors - should be able to use Apple's X11 Plugin library, too, if that exists, to get truly large cursors, rather than the 'shrinking cursor' that was in v0.8.5;
- Try to add back the "Dim Inactive Windows" option;
- Remove the need to explicitly set different DISPLAY numbers for different users running at the same time under OS X 10.3;
- Sort out the problem of using Expose while dragging an X11 window;
- Prevent some of the unnecessary output in the console log.
Other issues which need addressing:
- Needs a GUI for editing the property rules list - thinking of something along similar lines to the filtering rules in Mail.app;
- Needs a Preferences GUI, so that some of the infrequently-used items in the Options menu can go into it (and so that I don't have anyone asking why the "Preferences" item is greyed out in the application menu).
- the Change Group submenu needs finishing off so that windows can be moved between groups (which will start to give functionality similar to virtual desktops, when used in conjunction with the group cycling and hiding [cmd-shift-up/down and cmd-H]).
- A nice GUI for picking a background colour for a particular window, so the translucency can be set for just that colour. (This will allow, for example, completely transparent backgrounds for xterm windows, with the text staying fully opaque - just like Terminal.app.)
- Occasionally the modifiers still get out of sync - hitting them a few times while switching between OSX apps and XDarwin will usually sort it out after a few tries...