dpz@topaz.RUTGERS.EDU (David P. Zimmerman) (09/22/86)
A discussion has been going on in net.unix over how the Mac's user interface could be a front end for a Unix machine, since Apple has been looking for Unix wizards but is not, repeat not, building a Unix box (yeah, right). I posted an article which someone suggested that I also post in net.micro.mac since it might be of interest. There have already been replies, from which good ideas are coming. I have included net.unix in followups to this. ------ reposting of net.unix article ------- Add another few comments into this discussion. I'd like to present a more solid proposal for an interface instead of a theoretical one. The present Macintosh interface could do nicely for a Unix front-end with some work. Put the Mac screen in a full screen, resizable window. At the bottom of the window, add a command line. Just above the command line, have a single line of graphic gadgets symbolic of redirection, appending, piping, etc, and "go". Add gadgets to the window border to shove it to the back, to "cd ..", and to start a new shell. This is your basic shell. Assume a 2+ button mouse. In my examples, I only need 2 buttons, but the single button of the present Mac is not enough. This shell imitates the Finder to a certain extent. All application icons in the current directory show up in the window. Subdirectories are folder pictures. If it doesn't have an associated icon, use a standard application/data file icon. The top border of the window has the close gadget, the full-screen gadget, and the name of the current directory. Double click with the left button to start an application or "more" a file if it doesn't have an associated application. Click once and pull down the menu bar for file stats, etc. This is all for Mac compatibility. The only difference is that an application is run in the "background", as opposed to taking up the whole machine. Sort of like choosing "Puzzle" from the Finder apple menu. Every application will have its name at the top of its window, a close gadget, and a "shove-to-back" gadget ("stdout" - see below). Click once with the *right* button and watch a picture of the icon show up in the command line at the bottom. Redirection and piping can be specified by clicking an appropriate gadget with either button. Click "go" to make it go. "go" can also be done by double-clicking the right button on the last application in the chain, or pressing RETURN. Of course, you can type in filenames and whatever you want in the command line. With this, you could theoretically run "who" and pipe it through grep and more without touching the keyboard. I am tempted to deal with command-line options like GEM does - specify in the application icon/description whether it needs options. If it does, ask for them. Of course, in specifying the options you could use redirection and such with the appropriate gadgets. Trashcan sits on the desktop (not inside any window). Standard use. Empty it with "Empty trash" under "Special" menu bar option. The menu bar will have apple on it, as well as the File, Dir, Edit, View, and Special. File would have chmod, chown, more, ln and other goodies. Dir would have cd, rmdir, mkdir, other dir stuff. Edit would have the Cut, Copy, and Paste, as usual. View would let you view the files one of many ways - only applications, only current directory, whole path, by icon, by small icon, by speck icon :-), by name, etc. Special would have empty trash, man, shutdown, and other fun miscellaneous stuff. Stdout by default goes to a window titled "<application>" as mentioned above. In a chain, <application> will be the last program in the pipe, since the final output is coming from it. Stderr is the same, but <application> will be of the form "<application-1>|...|<application-n>" with the applications in between replaced by "|...|" for conservation of space. One thing we must keep in mind is that shell use and shell programming are two different beasts. I have described shell use. Shell programming wouldn't be much different from a normal Unix box, except for graphics extensions. Shell programming isn't hindered by any of my MacUnix interface (I don't think) - you still write your script with vi/Emacs/whatever and chmod it executable. Comments? A problem I see right away is that, say, piping a program in /bin to a program in /usr/local/bin, without using the keyboard, involves a lot of directory hopping with the mouse. Possibly a different way of Viewing the programs would help. Always in search of a better user interface... David -- David P. Zimmerman "Unix RULES!!!" - anonymous Arpa: dpz@topaz.rutgers.edu Uucp: ...{allegra | harvard | seismo | sri-iu | ut-sally}!topaz!dpz