This is release 1.1 of Dash, the Athena "dashboard", as described in the Spring issue of The X Resource. While complete documentation for Dash and the Jets is still being written, this README should provide enough help to allow you to compile the sources and begin playing. A new version of the sources with a documentation subdirectory should be available soon. For more information on this, send mail to "info-dash@athena.mit.edu". I have also been considering creating a mailing-list for users of Dash -- if you are interested in being on such a list, send mail to "info-dash" and I'll start one. This directory contains: Dash.menus the menu file for dash as it exists on Athena Imakefile an Imakefile for building dash and console README this file console/ sources for the console program dash/ sources for the dash program lib/ sources for the "Xj" library mit-copyright.h mit copyright notice To build Xj, dash, and console, you should be able to simply create a Makefile (using "xmkmf") and typing "make world". To install everything, type "make install". The install process is likely to break and will need fixing. Watch for a future release. There are a few "Athena-isms" that you should know about and may have to change. First, Athena uses remote filesystems (both AFS and NFS) for storage of many software applications. Since filesystems may be located anywhere, Athena uses a program called "attach". Users simply say "attach filesystemname", the name is looked up in a name service called Hesiod, and a mountpoint for the filesystem is created (AFS) or an NFS "mount" is performed ("attach" is setuid root since mounts must be performred as root). The user is also subscribed to Zephyr notifications about the filesystem. If you are using the "attach" program, define HaveAttach in the Imakefile in the dash directory. Otherwise, make sure it is undefined. Second, Athena uses the Kerberos authentication system. Dash has a feature whereby it checks the lifetime of the users' Kerberos tickets to make sure they are still valid. If authentication is about to expire, the user is displayed a warning box. If you are using Kerberos, make sure HaveKerberos is defined in the Imakefile in the dash directory. Otherwise, make sure to undefine it. Simpler procedures for these two options will be provided in the future. Third, since Athena runs on many different hardware platforms, it is necessary to put binaries for multiple architectures into the remote filesystems described above. The convention on Athena is to create subdirs within those filesystems named sun4bin, decmipsbin, vaxbin, etc. Dash provides two mechanisms by which you can access the correct subdir. The first is the use of "%M" to substitute for the appropriate "Machine-type". For example, the callback might read 'attach("maple"),exec("/mit/maple/%Mbin/maple")' to attach the maple filesystem and execute the Maple software found there. The second mechanism is the "add" callback. This callback attaches the named filesystem and adds the appropriate path to the search path for the next exec call. The previous example can then be acheived by doing: 'add("maple"), exec("maple")'. Both accomplish the same effect. The "machine-types" are defined in lib/Jets.h. You may need to add more machine-types to the list, as we only have a limited set at Athena. There are undoubtedly other things I have forgotten, and there are assuredly some hard-coded paths that need to be turned into #define's. Hopefully, with help from users around the net, these things will be cleared up in future releases. Thank you for using dash. Please let me know what you think of it, what problems you may encounter, what features you'd like to see, and if you've made any improvements to it. Again, if you would like to be informed of future releases, or would like to be on a dash users mailng list, please send mail to "info-dash" as described above. Enjoy! -Chris VanHaren (vanharen@mit.edu) 5/29/93