This is what it will do- early betas' will try to get this vision working
Clarity Desktop is a full desktop replacement suite for AtheOS. It provides a nice launchbar that lets you easily select open windows, start new windows and change desktops. It lets you configure the icons on the desktop and what they do.
It isn't reinventing other bits of code. It is intended to use the Launcher menubar and the Landscape desktop, in coordination with new window list and desktop switcher plug-ins for Launcher and a new central Clarity theme (using ATheme to apply) and a custom Window Decorator. In essence, what Clarity is is Varfar's look and feel for AtheOS
Initial coding effort has targetted the window manager and desktop switcher (they are integrated, really), and the rest of this page just looks at it from their perspective. In the longer term Clarity will mean a whole lot more when these other excellent AtheOS applications are integrated
- | Rolling up the launchbar |
- | Listing windows on desktop |
- | Activating windows from launchbar |
- | Desktop switcher |
- | Desktop naming |
- | Desktop icons |
- | Minimize and Maximize |
![]() |
The launchbar can take up quite a bit of screen space. When you want it out of the way, you can roll it up to hide it. Of course, it is just a click away! Click on the arrow button in the top-left corner of the screen to unroll it. |
^top |
There are two parts- the appserver (the AtheOS window manager) now notifies registered window manager instances when windows are added, changed or removed. This is done by message passing, as is the neat AtheOS way.
The client part is the Clarity window manager (which I call cwm
). This is just a normal AtheOS
application, except that at startup it sends a registration
message to the appserver telling the
appserver to send these window info notifications to it. (To simplify implementation the appserver only allows
one window manager to register at the current time. There is also no granularity of messaging available- it is
all or nothing.)
Applications
and Windows
are given unique IDs in the appserver, as pointers etc would not
cross application boundaries very well
The window manager can command the appserver to change desktops and activate applications by sending messages
Ok, maybe not kernel, but at least changes to the AtheOS source!
To build Clarity from source, you have to modify a few things! Here is what I changed in the source:
WID()
, and each
window calls clarity methods to notify when a window is changedAID()
W_WND_MGR_MSG
message code to identify messages
sent from the window manager to appserverM_WND_MGR_MSG
message code to identify messages sent
from the appserver to the window managerAt the moment there is no binary distribution available. The code isn't tried enough, isn't bugfree, and and it would probably consume my Geocities bandwidth too fast! If you want to use Clarity, you are going to have to get your hands dirty :-)
DISCLAIMER! This software is not a robust solution, but rather a play to see how a desktop manager might work. This version probably doesn't work. It hasn't nuked my machine yet, but your milage might vary. USE IT AT YOUR OWN RISK. Always store backups of any data you might want to survive a rebuild on separate media, e.g. a floppy disk
First, ensure you have the appserver source. You can get this from the <a href="http://www.atheos.cx/download/list.php3?current+src" target="atheos">atheos.cx download source</a> page.
I advise you untar these into the /atheos/src/
directory. Make sure your ATHEOS_SRC
environment variable is set correctly.
To do a base compile you will also have to download the gcc
compiler for Atheos (from <a href="http://www.atheos.cx/download/list.php3?current+pack" target="atheos">atheos.cx download packages</a> page)
But if you are reading this, then gcc
and tar
and make
are not scary for you, so I don't need to explain them in detail! (They still
scare me though!)
Second, get the clarity
source from here.
Place the expanded files into a temporary directory somewhere.
Create a directory /Applications/Clarity/WindowManager
and place the code from the source archive's WindowManager/
directory into it.
Copy the files in the source archive's appserver/
directory to the /atheos/src/system/appserver/server/
directory, overwriting where necessary.
Copy the files in the source archive's ainc/
directory to the /ainc/gui/
directory, overwriting where necessary.
Third, edit the Makefile
for the appserver to include clarity.o
Forth, make
the appserver and the Desktop Manager
Fifth, copy the new appserver binary (/atheos/src/system/appserver/server/objs/appserver
) to /system/appserver
, overwriting the old appserver.
Sixth, reboot the system with ctrl-alt-delete
Seventh, if it reboots ok that is a good sign. Now open a terminal and go to the /Applications/Clarity/WindowManager/
directory
(which you just made) and run cvm
. Lots of debug info should scroll in the terminal, and a window should appear etc and you are now up and running!
Finally, you want to have it auto-start with AtheOS? Not recommended practice, but you could add the command
/Appserver/Clarity/WindowManager/cwm &
to the end of your /system/user_init.sh
file..?