|
OroborOSX
More than just another window manager!
A complete environment for X11 on Mac OS X
|
New features (since v0.9 preview) for v0.9 final
(available now):
Also see below for new features of v0.9 public preview for a complete list of changes
since v0.8.5.
- Added new command-key-shortcut mode which sends all command-modified keypresses
to OroborOSX directly, rather than to the X Server. This means you no longer need to have
the cursor in the menubar to use shortcuts like command-M (to minimise to Dock), or
command-Q to quit. To enter command-key mode, simply press and release the command key
(without pressing any other keys, or any mouse button) - the cursor will change to the
command-key symbol as a reminder that you are in command-key-shortcut mode. To get out
of command-key-shortcut mode, hit the command key again.
- When in 'presentation mode' (see item 5 from section "New Features in v0.9 public
preview" below), the menu reappears when moving the cursor back into the menubar
region, so you can use it more easily (eg, to get out of presentation mode via the
menu item, rather than remembering the ctrl-opt-cmd-Z shortcut). Moving out of the
menubar makes it disappear again (as long as you remained in presentation mode).
- On-the-fly keyboard switching using the new "X11 Keyboards" menu.
(Also means it no longer requires the /System/Library/Keyboards folder [i.e. the
keymapping files it contained] which were removed from OSX10.3.) - See the relevant
section in the README file for more information.
- While OroborOSX has a menu open, a click in an X11 window now removes the menu.
- Large cursor support - uses Apple's XPlugin library (if installed through
one of Apple's X11 installations) to draw cursors. Also brought back the 'shrinking
cursor' support from v0.8.5 for the case when Apple's XPlugin lib is not installed.
- Made some major changes to the Launch Menu Items and Helper Scripts:
- They now make use of a 'generic search script', which looks for a set of
possible executable names in a provided list of search paths, making the scripts
much simpler - see the template scripts in each folder for more detailed explanations;
- Added new search paths for OpenDarwin
- Note this means your current Launch Menu Items and Helper Scripts folders will be
replaced with new ones - your old folders will be renamed, so any scripts you have
created yourself are safe, and ready for use again (though I recommend you try to
change them to make use of the new GenericSearcher script...)
- New "buffered updates" for X11 window drawing - the built-in XDarwin now waits a
little for drawing updates to accumulate before flushing to screen, which helps
improve drawing speed slightly. (There's a possibility this could cause issues
- let me know if you see any strange drawing artefacts which were not present
in v0.9 preview...)
- Improved support for screen geometry changes since v0.9 preview:
- X11 apps launched after a change to screens will now recognise the bounds of
the new display - but menus and tooltips, for example, of X11 apps which were
open before the change will still be constrained by the original bounds (see
item 2(v) in the v0.9 public preview features below);
- Fixed a problem where a change would not be recognised when only the number
of screens changed (eg, when a screen was removed);
- Now recognises screen changes as soon as they happen, rather than only noticing
the next time an X11 window is moved/resized.
- Added keyboard-confirmation for quit alert
(hit command-Q and it chooses the "Quit" button).
- Fixed a problem where hitting command-Q with an alert window on the screen would
activate the default button.
- French localisation of menus is up-to-date (apart from the new X11 Keymaps submenu) compared to v0.9 preview -thanks Thierry! Anyone for any more...?
- Attempted to fix an intermittent problem which would cause focus to flip
repeatedly between windows which have autofocus/autoraise set - also affected
iconbars.
- Added an icon to the About box (does not work for OSX10.1,
so this uses the old About box).
- Hidden various unnecessary items from the built-in XDarwin's prefs window.
(Not ideal, since it's still possible to 'tab' between hidden text-boxes,
for example, but should be OK for now.)
New features for v0.9 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 beyo
nd 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...);
New features for v0.8.5:
- Now accepts files dropped onto its icon (either in the Dock, or its Finder icon), and 'routes' them to an appropriate X11 application for editing/viewing:
- The "Helper Scripts" folder includes a whole load of new scripts which are used like "helper applications" when a file is sent to OroborOSX. When a file is dragged onto OroborOSX it tries to find what sort of file it is and then produces a list of possible helper scripts. Matching helper scripts are tried sequentially until one is found which can run its helper X11 app (i.e. it can find where its X11 app is located);
- The whole mechanism is highly extensible and configurable, with file type matching based on the unix "file" command (with "File Descriptor to Extension List" giving a method to transform from the description to an extension), the HFS+ Type/Creator, and the filename extension - see the new item in the Help menu for documentation on extending the Helper Scripts yourself;
- Double-clicking a helper script will open it in TextEdit, so it can be easily changed;
- A new item in the Launch menu, Open "Helper Scripts", opens the "Helper Scripts" folder (and the new Open "Launch Menu Items" item replaces the previous Edit Launch Menu Items);
- Certain compressed file types (".gz", ".bz", ".bz2", ".z" and ".Z") are uncompressed automatically before searching for an appropriate X11 application to use for the uncompressed file - this is useful if you want to, say, drag a ".ps.gz" file onto OroborOSX (or even send it directly from a web browser, perhaps) - this will gunzip the file, then open the resulting PostScript file in an available X11 application;
- Also includes expansion of a dropped tar (or tar.gz/tgz) or zip archive into a folder that is automatically opened (can be used to expand other versions of OroborOSX, or new themes!)
- X11 applications which it attempts to use as helpers include OpenOffice, AbiWord, Nedit, XEmacs, gimp, ImageMagick, xv and ghostview;
- Major breakthrough in functionality with CodeTek VirtualDesktop (from v2.0 -also includes recent v2.1, which caused a headache for a couple of days, since CodeTek changed a few things...) -many thanks to CodeTek for adding notifications to help with this:
- Recognises when X11 windows have been moved via the VirtualDesktop pager, and lets the X server know about it;
- Knows when VirtualDesktop hides and shows windows as they are dragged between desktops - the X server is told the window is no longer on the screen;
- Knows when a window wants to be raised via the VirtualDesktop pager - the modified XDarwin prevents VirtualDesktop from raising the window, but tells the window manager to do it instead (so, once again, the X server is kept informed of what's happening);
- Standard behaviour is to ignore X11 windows that are on a different desktop, so they are not included in window/group cycling;
- But also has an option to include them - which is for use in the case when you have checked the option in VirtualDesktop which switches desktop to the topmost window.
- Added some new window commands and properties:
- Force Close -forces a window to be removed from the screen (useful if an X11 app has become unresponsive);
- First Click if Modal Child on Top -this new property acts like "Accept First Click", but only when a window has a modal child which is frontmost (useful for some X11 apps that keep a window topmost, but still expect clicks to get through to the lower window);
- Modal Window -this new property allows you to get at the parent of a modal window to change its properties while the modal window is still visible (again, this is useful for some X11 apps that force a window to remain in front, but still expect the window below to receive mouse clicks);
- XDarwin is now started with "-xauth" (if it is able to generate a magic cookie for the xauth file), and uses the .Xauthority file as it should - see the new page on the OroborOSX web site for details of how to use the xauth mechanism:
http://oroborosx.sf.net/remotex.html
- This version replaces the entire "Launch Menu Items" folder with a new one containing updated x11app scripts (the old folder is renamed to "Launch Menu Items -pre0.85" -so you should move any items you have created yourself into the new folder, as well as your StartupItems):
- template -updated template script now allows a search for one of two possible commands;
- NEdit.x11app -now tries to use the "nc" (nedit-client) command to connect to an already-running instance of nedit, if possible, so that it acts more like a single application with multiple document windows;
- MacGimp.x11app -updated so it can be used by the MacGimp helper script to start up a new instance of gimp (-so don't move or rename this item if you want the helper scripts to use gimp correctly).
- xcutsel.x11app -new item, with X resources changed to give more meaningful strings.
- A ".x11app" script no longer needs to be in the Launch Menu Items folder to run correctly - you can place it wherever you like. This should help prevent cluttering up the Launch menu with your many different scripts, so you can drag them out of the Launch Menu Items folder and arrange them in a nice hierarchical, global Dock-based menu (see the information about Launch Menu Items from the Help menu for more on this...), and leave the Launch menu for just a few select items of your choosing;
- Attempted localisation of certain folders under OSX10.2 (your personal "Launch Menu Items", "Helper Scripts" and "Themes" folders). Unfortunately this does not seem to be working, and I don't have OSX10.2 to play around with it (what currently happens under OSX10.2 is that the folders appear with a ".localized" extension - even though that extension is supposed to be hidden)... However, I've left it there in case anyone knows why it fails - please let me know!
- Localisations updated:
- French localisation and documentation translation is now almost completely up to date (thanks Thierry!),/LI>
- Swedish localisation of menus and alerts is now almost completely up to date (thanks Patrik!)
Others would be greatly appreciated!
- Now tries to ungrab the pointer when switched to the background, and when focus window is switched via the Dock icon, or the Window menu (or with Lower/Next/Hide), or via CodeTek VirtualDesktop - this usually has the effect of removing any pull down menus that are currently being shown by an X11 window;
- Changed the included themes from Eau and Greyphyte to New Eau and New Greyphyte;
- The xinitrc script (which runs the keepalive process to keep XDarwin going) now attempts to perform a 'cleanup operation' if it finds XDarwin and/or OroborOSX has not quit cleanly - it removes the OroborOSX socket, kills various XDarwin processes (if they hang around too long after OroborOSX has quit), removes certain X11 lock files (/tmp/.X-lock), and also checks for any OpenOffice processes which have got 'left behind' (which seems to happen sometimes...);
- Fixed a crash when using X11 windows that have no class (examples of apps which do this are ghostscript, gnuplot and IDL);
- Fixed an issue with Motif-based text edit widgets losing keyboard focus when the same window has a pop-up menu;
- Scaled back a bit on the TransientFor "modal window" assumption introduced in the last version - it will not make a window modal if it has MWM hints, unless the MWM hints say it should be. TransientFor windows which do not have MWM hints are still assumed modal;
- Fixed an issue with XDarwin getting mouse up/down in slightly the wrong place (it was sending through the position of the cursor at the time it noticed the event, rather than the position where the press/release actually occurred);
- Added a possible workaround (kludge!) for the compatibility problems with Unsanity's "Application Enhancers"-based haxies. *Note this could mean other applications started at the same time as OroborOSX may also not have access to haxies themselves - for example, if you have OroborOSX as a login item, you might find other login apps cannot use FruitMenu, or Silk;
- The shell started by the private XDarwin is no longer a login shell - it does not run any shell init scripts. (It doesn't need to, since all it does is start the keepalive process, and has no need of any extra PATH or other environment variables). This should prevent a whole load of problems seen recently with users' shell init scripts;
- Updated the OpenOffice Launch Menu Items (in the "Extra Goodies" folder), so that they work with versions other than just OpenOffice.org 1.0. They now look in /Applications for folders called OpenOffice.org*, ordered by number (well, alphabetically, which makes them have the right numerical order for versions of the form X.Y.Z where X,Y,Z are single digits), and it takes what is hopefully the newest version and uses that. (The new OpenOffice Helper Scripts also work in a similar way);
- Made some tweaks to the resizing code in the modified XDarwin - should make it a bit faster (especially on machines with not so much memory);
- Fixed a crash which occurred when changing the icon hiding option;
- Added new items to the Help menu which give some information about the Launch Menu Items and the Helper Scripts, as well as the Themes (this is the same as the "About Themes..." item in the Themes submenu).
Still NOT fixed, or still to be done:
- 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]).
- Default Properties for windows matching specific criteria (such as X11 class, name, title, hostname, command, etc.), including such things as which screen to appear on (under a multi-monitor setup).
- 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... ;-)
- 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.)
- Some X11 apps (the Mac version of Ghostview, and dosemu, for example) don't much like the pointer-grabbed check, so their pop-up menus/buttons don't quite behave correctly. If anyone understands what is happening here, please let me know...
- 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...
- The dreaded hanging bug (with OSX10.0). (I've not seen this for a while...) This sometimes occurs when OroborOSX has been left for a while in the background Šthis is still a mystery to me, though I am quite convinced that it is actually due to a problem with NetInfo in OSX10.0 occasionally losing its information for localhost and the / domain.
I added an attempt at a workaround for this problem starting in v0.75 alpha 3 (note: this will NOT work if you start XDarwin before OroborOSX, since it requires the xinitrc file built in to OroborOSX to be running).
If you still get this problem, please check the console log and let me know what output is produced after the last line that says "Last fifteen routines:", or if this line does not exist at all.
New Features for v0.8 beta 2:
- Windows are now placed into "groups", currently based on the class of a window.
Each group with more than one window is now given a new item in the Window list:
- The class usually corresponds to windows from the same X11 app (but not every
app does this correctly), so it's a bit like having X11 applications listed;
- Choosing the "group proxy window" from the window list will bring forward all
windows in that group - rather like clicking on the Dock icon of an OSX application;
- Groups can be "cycled" using the "Send Group to Back" and "Next Group" menu items
(in the Window menu);
- The window cycling ("Send to Back" and "Next") now cycles windows only within
the current group (unless there is only one window within the group);
- Window/group cycling now has extra keyboard shortcuts, using the arrow keys
with the command and shift keys (shift-cmd-right-arrow and shift-command-left-arrow
cycle the windows of group, while up and down cycle groups -note that the
shift-command-up/down shortcuts don't appear in the Window menu for some reason...);
- Windows in a group use the extra space to the left of the window name to give
information about the window state (a black dot if docked, a dash if it is an iconbar);
- Added a new "Group" submenu (in the Window menu), which will soon allow for window
movement between groups;
[Expect to see much more work in this area. For example: much more configurability for which
types of window belong in which groups, and also the default properties for specific types of
windows.]
- Added several new window properties:
- Auto-lower -for use with "Auto-raise", this will make an auto-raised window go
back to its original position (or as near as possible) when you move out of it;
- Don't Grab Focus -this prevents the chosen window from taking focus away from the
top-most window if its owning client application wants to raise it in front (it will
instead only raise to just below the top-most window);
- Retain Focus -this is complementary to "Don't Grab Focus" in that the chosen
window will not allow any client application to bring a window in front of it;
- Put together a "semi-fix" in XDarwin for the "oversized cursors" issue (particularly seen
in the Gimp) - if a cursor is too large, a 'half-sized' version is used instead (not great,
but it's an improvement over the arrow!)
- Added extra functions to the maximise widget - middle-click now maximises horizontally only,
right-click maximises vertically only;
- Japanese localisation is (almost) up-to-date (Thanks Masao!);
- Changed the window title in the Window menu (and Dock menu) so that if it starts with the same
as the class name of the window, it does not appear twice. (Netscape does this, for example,
giving a window title "Netscape: ...". Since I prepend the window class to the window title in the
Window menu and Dock menu, this would come out as "Netscape: Netscape: ...");
- OroborOSX now provides XDarwin with its own hints about the state of the modifiers,
and has completely taken over toggling Caps Lock. Hopefully, this will help to ensure that
the modifiers do not get 'out-of-sync' with the X server;
- Improved the window cycling (Send to Back) in the case when there are modal windows
(though some apps may still appear to act a bit odd if they try to order their own windows
in a modal-like way - for example, the Open dialog in OpenOffice.org);
- Made the assumption that any TransientFor window should be modal, unless the MWM hints
say otherwise - many apps (eg. Abiword) seem to want all their TransientFor windows to be modal
(if anyone knows of one which doesn't, please let me know!)
- Fixed a problem with gnome-compliance (_WIN_PROTOCOLS atom not supported). This would cause
OpenOffice to abort;
- Fixed an issue with menus (and probably other override-redirect windows) that belong to
auto-focus windows becoming obscured by the previously topmost X11 client window (i.e. the one
that gets the focus when the cursor is not within an auto-focus window) - and also with
auto-raise clients obscuring their own menus;
- Fixed a problem introduced with the previous beta version which prevented the xinitrc item
from running correctly at startup;
- Tweaked the update buffering code in the modified XDarwin so that it immediately draws any
small update rectangles that are not 'subsumed' into larger updates -this means it gives a much
better response to small changes, such as the highlight changes of menu items as the cursor
moves over them;
- Fixed a couple of issues which prevented OroborOSX from running correctly on the newer Jaguar
releases (thanks Matthias!);
- Really fixed the theme-change-with-docked-window crash this time (thought I had with
the first beta, but it turned out to be somewhat OS-version-dependent, too);
- Sorted out the strings for the "Get Info" box (they were wrong for the first beta release);
- Updates several scripts in the Launch Menu Items folder (as it was supposed to in preview 3):
- template - now includes better support for fink-installed apps (please use this template
script as a basis for writing your own ".x11app" scripts, rather than any of the other
existing ".x11app" scripts)
- xterm.x11app - includes an extra line which prevents CCacheServer processes from starting
- ETerm.x11app - same change as xterm.x11app
The original scripts are renamed, with the string " -old" placed after their names (i.e. "template -old",
"xterm.x11app -old", "ETerm.x11app -old");
- Made a few minor changes to some of the Bourne shell scripts (for the sake of consistency, but
also to avoid some problems caused by forcing a "sh" script to run under "ksh").
- Included some "Extra Goodies" -a new theme (New Eau) for use with Aqua, and some
"x11app" scripts for use with OpenOffice.org1.0. See the ReadMe in the "Extra Goodies"
folder for more information.
New Features for v0.8 beta:
- Added support for 'TransientFor' and 'WM_CLIENT_LEADER';
- Now checks positioning of windows (when they are first mapped and when the client requests
them to be moved) and tries to correct for clients that don't take account of more than one screen
(i.e. it tries to figure out where the client probably wanted the window to appear with respect to
one particular screen, rather than the entire X desktop);
- Made the items in the StartupItems file case insensitive;
- Changed the editor used for the StartupItems file
back to TextEdit (rather than xedit);
- Changed the way it searches for the "xinitrc" item in the StartupItems - no longer needs to
be exactly as in the Launch menu (which can be different for different localisations),
but just has to contain the word "xinitrc";
- Fixed a major problem (introduced in preview 3) which prevents emulated right-click from working correctly, instead
causing confusion with XDarwin as to which modifier keys are down;
- Sorted out option-click on an X11 window while in the background, which hides the frontmost application
and brings XDarwin/OroborOSX in front, but did
not correctly redraw the focus window (on OSX 10.0.x);
- Fixed a hang which happens when OroborOSX comes back in front after
being hidden with no X11 windows;
- Fixed a problem caused when fink installs an alternative version of "tar" placed in
/sw/bin, and renames the original version (in /usr/bin) so that it cannot be found on
the first launch of OroborOSX;
- Fixed a crash caused by using a scroll-wheel when no window has keyboard focus;
- Fixed an issue with window focus when clicking on a window's frame while an X11 pop-up menu
is visible (so the button was 'grabbed' by an X11 client) -particularly noticeable
if the "dim/translucent inactive windows" option was switched on;
- Finally figured out why double-clicking the titlebar does not
reliably windowshade! -Now fixed...
- Fixed a crash caused by changing theme while a window is Docked.
New Features for OroborOSX v0.8 preview 3:
OroborOSX v0.8 preview 3 has essentially the same functionality as v0.8 preview 2,
providing mainly fixes for some problems, along with a few minor features and tweaks:
- Made window resizing even smoother and faster!
- Made window zooming happen in one step (rather than 'move then resize');
- Updated some of the localised menus and alerts (thanks Masao, Patrik, Paul and Philippe!)
- Sorted out a problem with initial iconbar positioning with more than
one screen;
- Moved alerts to more sensible positions on the main screen (centred horizontally,
and slightly towards the top);
- Fixed a problem where windows that start iconic (eg; xterm -iconic) would not
not come out of the Dock correctly, and would often cause OroborOSX to hang;
- Fixed some problems with minimised windows occasionally springing out of the Dock unexpectedly;
- Fixed some drawing glitches (with drop-down menus, tooltips, non-shaped windows, some selection
tools in gimp and Sketch, and also problems in rdesktop and some java apps);
- Fixed some serious problems with frameless windows (so the "No Frames" item can now be enabled
in the window's Properties sub-menu);
- Added a new item to the Help menu - "Verbose Logging" - which switches on much more detailed
output to the console log - useful for debugging...
- Changes to XDarwin's drawing update routines - it now buffers update rectangles (for 0.03secs)
and performs some simple rectangle changes for new rects that overlap old rects (i.e. to prevent
areas being updated more than once);
- Stopped XDarwin from putting up a "sure you want to quit?" window (instead telling OroborOSX to
put up its own window), and then waits for OroborOSX to tell it the reply - this should prevent problems
caused by logging out with XDarwin and OroborOSX still running;
- Fixed problem with scroll-wheels that would cause the focus window to become dim/translucent
(if that option was chosen in the Options menu) when it should still have the focus;
- Fixed a problem with XDarwin that prevented it from starting up if the user's path contains
a space (and probably other 'strange' characters, too);
- Fixed a silly assumption I made which would cause a hang in certain X11 applications that wait for an
event to be sent back if they configure their own window;
- The xinitrc script now runs a process called "keepalive". This does several new things:
- it communicates with OroborOSX (to check it is still alive) via the OroborOSX socket - this should
remove the problem that prevented systems from going to sleep;
- if it detects OroborOSX has died, it will automatically run the "gdbthem"
script (which connects the gdb debugger to the OroborOSX and XDarwin processes, if gdb exists),
giving a debug trace on the console log;
- OroborOSX sends it a signal which tells it to end - this prevents the xinitrc script
from 'hanging around' for several seconds after OroborOSX has been quit (which prevents potential problems,
since XDarwin will now quit much quicker);
- Fixed a problem with windows that managed to vanish before OroborOSX had a chance to finish
reparenting/mapping them;
- Fixed a problem where, if the system is under heavy load, OroborOSX would not wait long
enough to receive the DISPLAY from xinitrc (now sent from keepalive) - this was particularly
happening if OroborOSX was set as an item to run at login;
- Fixed a crash caused when a window has zero length title;
- Added a potential fix for an instability in XDarwin on dual-processor machines;
- Added a fix for a problem with XDarwin running under the recent Jaguar preview (given out at the
WWDC) where it would leave windows on the screen after they should have vanished;
New Features in OroborOSX v0.8 preview 2:
OroborOSX v0.8 preview 2 has essentially the same functionality as v0.8 preview, but there are a couple of changes which fix some problems, plus one or two new features and tweaks:
- Japanese localisation! (Thanks Masao!)
- Fixed the "crash on quit" bug;
- Fixed the "mouse-warping" when used with Xinerama on multiple screens;
- Now waits (a bit longer) for the xinitrc file (.orobxinitrc) to supply it
with XDarwin's DISPLAY number. This means you can now set the display in
XDarwin's preferences to something other than zero. (It also turns out that
any user .Xdefaults/.Xresources files will now be processed before the startup
items are launched -something that I had not really noticed did not happen before,
even though I had noticed that some of my windows did not seem to have the right
settings sometimes...)
- New "Quiet Startup" option (thanks for the idea, Jens);
- German menu items all translated (thanks again, Jens), except for one I added
at the last second... (sorry Jens);
- Windows no longer update their contents by default during resize;
- New window properties (in the Properties submenu):
- "Accept First click" - clicking in a window will not just activate/focus the
window, but also cause the click to "pass through" and be processed;
- "Raise on Click" - for auto-focus windows, this makes it come in front when
clicked, even though it will already have the focus;
- "Live Resize" - to allow a window to update contents during resize;
- Implemented background resizing, using middle-button drag, and possibly
command-drag (but that does not always work for some reason...)
[Note: Background window dragging, using middle-button drag and possibly
command-drag, was implemented in v0.8 preview];
- If an archive in the application bundle has already been unpacked, then the
archive is ignored if it still exists (so it does not try to unpack it again);
- Removed the erroneous empty "window.nib" folder for the US English localisation;
- Fixed the Spanish localisation of the Options menu (now it just needs to be in
Spanish...);
- Worked around a bug in XDarwin which meant it would not start up if its path
contained some unusual characters (eg, );
- Added a new quit confirmation alert box;
- Cleaned up the quit procedure, so it tells XDarwin to quit when it quits;
- Changed XDarwin's window buffering slightly -hopefully this will give a
slight improvement to resizing speed;
- Added a semi-workaround for the problem of XDarwin's menus reappearing after
running a Java (swing) app. (I've just changed XDarwin's menus so they match up
with the ones from OroborOSX.)
- Changed the alpha drawing so it is not set to "premultiplied". This is now how
it should be, although with the current Eau and Greyphyte themes it makes the
translucent titlebars look darker than before. (I really need to create modified
Eau and Greyphyte themes that do not have any darker tint on the inactive
titlebars -they should be identical to the active ones, apart from the inactive
red/yellow/green widget pixmaps. Then, just to complicate matters, there's the
issue that the 'lit up' widgets for inactive windows should be opaque...)
OroborOSX v0.8 preview has the following new features and fixes:
- Now contains its own private version of XDarwin, which has been modified to allow a whole host of nifty new features :-)
- Minimise-to-dock! (-be aware this is still to be considered as code under testing, and might possibly be unstable under some circumstances);
- Better tracking of cursor through OSX enter/exit events rather than X11 enter/leave events, thus allowing interleaving of auto-focus windows;
- Above also means that iconbars can now be allowed not to autohide;
- Semi-fix for the "can't type in Preferences window" bug in XDarwin -if you open up XDarwin's prefs window from OroborOSX then all keyboard input is directed to the prefs window (instead of the X11 focus window) until it is closed;
- On-the-fly toggling of interleaving (from the Options menu);
- Optional inactive window dimming;
- Optional inactive window translucency;
- Per-window translucency (see the Properties sub-menu);
- Translucent titlebars/frame for inactive windows (just like 'real' Aqua windows :-);
- Smoother resizing of X11 windows;
- Background mouse tracking, so xeyes still move even when another OSX application is in front :-)
- Options now saved to disk between launches of OroborOSX;
- XDarwin's preferences now available from the Options menu;
- Shows the window size in the titlebar while resizing a window;
- Shows the window position in the titlebar while moving a window;
- Spanish localisation (many thanks to Alejandro Villanueva!)
-If anyone is willing to do some translating, I can add extra localisations very quickly... (Japanese, anyone?)
- Significant changes to the themes (but it's still backwards compatible with the old themes):
- New pixmaps so the shaded window titlebar is different to the non-shaded titlebar;
- New pixmaps to go behind the title text in the titlebar (used in the ClassicMac theme, for example);
- Changed the names of some of the pixmap files so they are more consistent with each other;
- Specific positioning of window widgets (see the themerc files in the updated Nextish theme, and also the ClassicMac theme, for examples);
- Updated the Nextish themerc file to make use of widget positioning (automatically copied from the built-in Nextish theme to your personal Themes folder, if needed);
- Switched back on the ability to choose title text positioning (left, middle, or right) in the themerc file (oroborus used to allow this);
- New Info.rtf file in a theme's top-level folder, providing information about the theme's creator(s) and changes made to it (automatically copied from the built-in themes to your personal themes folder, if needed).
- Lots of new alerts when things go wrong (-of course, nobody should notice these ;-)
- This HISTORY file, the README file, and an RTF version of the Gnu General Public License can be accessed directly from the items in the Help menu;
- Translations for the main README file (starting with French, German, Swedish & Italian, at least -thanks Philippe, Jens, Patrik & Giacomo!);
- Now correctly makes 'iconic' windows into iconbars when they first appear (eg: xterm -iconic), and if OroborOSX takes over from another window manager;
- Information about creating themes available from the Themes submenu;
- Support for ssh-agent (the script that launches the X11 apps from the Launch menu will search for and link to a running ssh-agent -i.e. once you start one manually, any xterms/eterms/etc. you open after that should have everything set up as required);
- Fixed a major bug which caused a crash if X11 windows disappeared while OroborOSX was hidden, and worked around a similar bug in OS X!
- Also had to work around possibly the same sort of bug in the OS X window manager! (If an app removes a window while it is hidden, its Window menu is not updated correctly, and its dock icon menu causes a crash...)
- Fixed a problem that gave BadMatch errors and weird behaviour on X11 windows that start in a strange state (xv does this, for example);
- Fixed a problem with theme switching that caused windows which were iconbars during the switch to come back with the window content in slightly the wrong place (if the frame size changed between the two themes);
- Deal correctly with different height iconbars when switching themes;
- Various minor bug fixes and small tweaks...
New Features in OroborOSX v0.75a4
NOTE: OroborOSX v0.75a4 release 2 (Dec.24th) is functionally identical to the original alpha 4 release (Dec.20th), but includes a fix for a serious issue which has arisen when used with XDarwin 1.0.6 (released Dec.22nd). It also includes some tidying of the output (usually seen in the console log), and a small change to prevent its in-built xinitrc file sending a HUP signal during a menu selection.
OroborOSX v0.75a4 has the following new features and fixes:
- New localisations: German and Italian (many thanks to Jens & Giacomo!)
- Added support for themes! "Eau", "Greyphyte" and "Nextish" (more to come...) -See the section above on themes.
- Personal "Launch Menu Items" folder, created in each user's Preferences folder (this is initially based on the template Launch Menu Items folder which is buried in the application bundle).
- Added a limited form of auto-focus and auto-raise, toggled on a per-window basis using the items in the Window menu.
For technical reasons, auto-focus and auto-raise can only be used when XDarwin is the frontmost application (i.e. there is an X11 window in front). Also, windows that have auto-focus switched on must all come forward together (i.e. they cannot 'interleave' like the other X11 windows);
- Groups together windows of the same "class" in the dock icon window list;
The next stage will be to provide control over these groups of windows (hide them, bring them forward etc.), and then to give more flexible control over the definitions of these groups...
- Real rounded titlebars! (Requires XDarwin 1.0.4/1.0.5/1.0.6) -see the section on themes in the README file...
- Also works out which version of XDarwin is running, and automatically uses SHAPEd windows only if it is not versions 1.0a1/2/3;
- Removed the 'Leave gap for menubar' Option -instead it uses the above check (for which version of XDarwin is running) and works out whether to leave the gap based on the XDarwin version number;
- Made windowshading from the background much more reliable;
- Switched off the (annoying!) ten second interval output to the console log;
- Fixed a problem with the built-in xinitrc script, that meant it still would not read personal .Xdefaults/.Xresources/.Xmodmap if the home path contained any 'strange' characters;
- Fixed a bug which caused new iconbars to go to the wrong places on Xinerama screen numbers greater than zero;
- Fixed a problem accessing the little icons on the right side of the menubar in OS X 10.1;
- Fixed a bug which made windowshaded windows go to the wrong place on a second screen if they were above the "y=0" level before being shaded;
- Fixed a bug (which became apparent from XDarwin v1.0.4) that caused artifacts to be left on the screen near shrunk iconbars;
- Fixed a bug in the "x11app" scripts and the template script which meant that the "-title" argument caused an error if there was another argument supplied which should go at the end of the command (eg, xterm -e ...)
- Fixed a problem with launching scripts within the app bundle if the path contains a single-quote character;
New Features in OroborOSX v0.75a3
OroborOSX v0.75a3 has the following new features and fixes:
- Added an attempt at a workaround for the "dreaded spinning cursor" problem. Please let me know if it helps!
- Hacked together a workaround for the "blank windows" problem on extra monitors; (Thanks to Eric for the help with testing!)
- Removed all the built-in items from the Launch menu (xterm, xedit etc.) and replaced them with x11app items in the Launch Menu Items folder;
- Hiding OroborOSX now hides the X11 windows;
- Iconbars can now be moved onto any screen (if you have more than one, of course!)
- Swedish localisation! (Many thanks to Patrik!)
- French localisation has been tweaked by Philippe;
- Added U.S. English translation ;-)
- Extra item in the Launch menu ("Rebuild Launch Menu') which tells OroborOSX to check through items in the Launch Menu Items folder and rebuild the Launch menu from this list of items;
- The user items in the Launch menu can now be rearranged. They are placed into the Launch menu (using the "Rebuild Launch Menu" command) in last modified order. In other words, figure out the order you want your Launch menu, then open each of the x11app files and make a small (non-destructive!) change to each one, and then save them in the order you want them to appear;
- Extra user items added to the Launch menu now have a number in the title that starts from one (which is left out) rather than zero (duh!)
- Added extra options to the default "xterm" (in the Launch menu) forcing it to produce scroll-bars. (Thanks Mark!)
New Features in OroborOSX v0.75a2
OroborOSX v0.75a2 has the following new features and fixes:
- French localisation of menus, startup windows and 'About' box! (Many thanks to Philippe!)
- And Dutch localisation! (Many thanks Paul!)
- Switched on Xinerama support (honestly! I have this time... somehow it got switched off at the last minute in alpha 1);
- Added a faster iconbar minimisation method (switch off "Fancy Iconbar Shrinking" in the Options menu) which does not resize the bar as it moves to/from the side of the screen. This speeds up iconbars tremendously, for those that need it;
- Now adds a number (in brackets) to the titles of many of the items launched from the Launch menu (so you can tell the difference between them in the window list and iconbars) -very similar to the titles Mac apps are supposed to give to new windows (i.e. "Untitled 2", "Untitled 3" etc.);
- Choosing "Edit Startup Items" from the Launch menu now opens up the list in an xedit window rather than with TextEdit (which was not brought in front, and could therefore be missed);
- Now, by default, OroborOSX allows windows (and iconbars) to go right to the top of the screen when using XDarwin 1.0a2/3 (this means they can go under the menubar in XDarwin 1.0a1, but see next item); (Thanks Jonathan!)
- Added an item in the Options menu to prevent new windows and iconbars from going under the menubar -for those still using XDarwin 1.0a1;
- Makes sure that items in the "Launch Menu Items" folder are executable; (Thanks Ulrich!)
- At launch, OroborOSX now makes use of the system-wide and/or user's .Xmodmap and .Xresources/.Xdefaults files; (Thanks Andrew!)
- Added some extra options to the xeyes Launch command, which prevents it trying to use the SHAPE extension (since that does not work correctly under XFree86 4.1) -also gave it a bit of colour!
New Features in OroborOSX v0.75a1
OroborOSX v0.75a1 has the following new features and fixes:
- The Launch menu can now be configured by adding items into the "Launch Menu Items" folder - edit the "template" script using TextEdit, and rename it as required with an extension of ".x11app". This will show up in the Launch menu (it may take a few seconds -if it does not, then choose "Edit Items..." again, which should make it read the items from the folder a few seconds after OroborOSX is brought in front;
- Now has a list of items to start at launch -see the "StartupItems" file in the "Launch Menu Items" folder;
- OroborOSX is now registered as the application to open files with extension ".x11app" -so if you double-click on such a file it will look for an item by that name (without the extension) in the Launch menu, and launch it. Note that the contents of the file do not matter (as long as there is a file by the same name in the "Launch Menu Items" folder -you can, for example, even have an empty file called "Run xinitrc.x11app" and it will execute your xinitrc file when double-clicked, because there is an item in the Launch menu called "Run xinitrc"...);
- New icons for the above Launch Items with a ".x11app" extension;
- Brings OroborOSX in front of XDarwin when the cursor enters the menubar -hopefully, this will sort out the common problem which prevents the menus working under Mac OS X 10.1 (...please let me know!);
- Tweaked the code that brings XDarwin in front when a window is clicked -this will hopefully make window interleaving more reliable (it tends to be less so if you click very quickly in an X11 window, i.e. if you want it to work better then spend a little bit longer on your mouse button); (Thanks Francois!)
- Adds Xinerama support -OroborOSX should now place items more sensibly on dual screen setups. (Please let me know how this goes, since I cannot test it myself!)
- Brings all X11 windows in front when the Dock icon is clicked; (Thanks Aneel!)
- No longer disables the Window menu when there are no windows selected -so if it has a list of windows (like from the dock icon), then it can be used to get at a specific iconbar when all windows are 'iconbar-ised';
- Fixed some bugs in the OroborOSX dock menu -it could get confused when the About/Help window was open and all X11 windows were iconbars.
- Fixed miscellaneous minor bugs...
New Features in OroborOSX v0.71
OroborOSX v0.71 is largely a bug fix over v0.7, though there are also a couple of extra features included:
- New options to change the speed of the iconbars - choose from 4 steps (fast), 7 steps (standard), or 20 steps (slow), depending on the speed of your machine; (Thanks Robert!)
- Determines when the X11 screen size is different to the 'real' screen size (as happens with XDarwin 1.0a2/3, which starts the X11 screen below the menu bar), and alters its behaviour accordingly; (Thanks Jonathan!)
- Fixes a problem with the scripts which run from the "Launch" menu - it would not find gimp or nedit if they were placed in /sw/bin by fink -the launch scripts now also look in /sw/bin; (Thanks Ulrich!)
- Fixes a problem with running xinitrc from the "Launch" menu - OroborOSX waits for the launch script to finish, which in turn (unnecessarily) used to wait for the xinitrc script - so if xinitrc did not finish, OroborOSX would appear to hang; (Thanks Nik!)
- Fixes a crash when launched on the command-line with the DISPLAY variable set, or if DISPLAY is set up in a user's .OpenStep/environment file (OS X 10.0.4) or .MacOS/environment.plist file (OS X 10.1); (Thanks Jan & Eric!)
- The Interleave script no longer overwrites XDarwin's Info.plist file (thereby destroying its version number for v1.0a2), but edits it to add the required lines for window interleaving - if you have XDarwin v1.0a2 and it is already set up for interleaving, then you should run the Uninterleaving script to get back its original Info.plist, and then re-run the Interleaving script so that it has both interleaving and the correct version numbers.
New Features in OroborOSX v0.7
The original release of OroborOSX (v0.1) was almost entirely a 'standard' X11 window manager, in the sense that there was no specialisation towards Mac OS X - it could be used on any Unix box.
By contrast, however, this version of OroborOSX(v0.7) is a fully-fledged Mac OS X application, with its own icon that appears in the Dock. This has allowed a number of extra features to be incorporated:
- Interleaving of X11 windows with Mac OS X windows (see instructions above) - note that this does not work 100% of the time - for some reason, it still occasionally brings all X11 windows in front;
- Menu bar (you will need to set up window interleaving for this, otherwise XDarwin's menu bar will take over -window interleaving disables XDarwin's menu bar) - including a "Window" menu to perform window operations (close, minimise etc.), an "Options" menu for some simple configuration changes, and a "Launch" menu to start up some common X11 applications (see the section below about the Launch menu);
- Choice of iconbar location - the new "Options" menu allows you to choose from any of four positions for the iconbars (top-left, top-right, bottom-left, bottom-right);
- Window list from dock icon - allowing you to easily pick out an individual X11 window and bring it in front;
- Background mouse tracking - window buttons, and iconbars, still 'light up', even when another application is in front;
- Deactivation of frontmost X11 window when another application is in front;
- Iconbar hiding - iconbars will automatically popup when the cursor moves over the small iconbar tab, and will automatically slide away to the tab, after a small delay, when the cursor is moved off them (note: I'm hoping to make this an option, since X11 is still a bit slow on Mac OS X, and this operation can have too much delay if there are lots of iconbars - however, it is currently needed to work around a problem with background mouse tracking);
- Automatic launch of XDarwin, if necessary - when OroborOSX is launched, it will check to see if XDarwin is already running, and launch it if not;
- Click-to-focus X11 windows - a click on an X11 window will only bring it in front, making it act just like a normal Mac OS X window, and preventing any unwanted action (later on, I plan to add the ability to make some windows behave differently, in a user-configurable manner);
- Simple installation - the OroborOSX application can be in any folder you like! (But make sure that you put the "Launch Menu Items" folder with it.)
If you have any ideas for future development of OroborOSX (I have!), please let me know!
e-mail: adrian@ic.ac.uk
web: http://wrench.et.ic.ac.uk/adrian/