metashell - User Friendly Shell

Daniel Hollocher danielhollocher at
Wed Jan 30 03:27:44 UTC 2008

Hello all,
I had an idea for metashell this morning, that takes into account some of
the dialog on this list.  So, to restate, right now, metashell offers users
the value of MIME-types and application associations, whatever, via the same
interface that see or open uses.  You just feed in the file name, and it
tries to open the file with the correct application.
I personally felt a little lackluster toward that, because it doesn't teach
you anything.

My inspiration this morning was to offer the same value of MIME-types and
application associations through a tab completion like interface.  Right now
(in my shell anyway), tab completion offers suggestions on how to complete
the end of your command, or, if there is only one natural choice, it fills
in what it can.  You could have shift+tab completion for the front of your

So, a user, with tab completion, can locate a file, and get its name typed
into the terminal.  Then, the user can hit shift+tab, and then a menu shows
up offering various commands that make sense for that file.  If its a
.tar.gz file, maybe F1 will insert tar xvzf into the front of the line.  Or,
you could hit F5, and it opens up a more general menu, for moving or copying
files, or even ftp, whatever.  (please use your imagination to picture an
appropriate console ui)  Whatever selection you make, it inserts the correct
command into the terminal.

This would actually match the current behavior of a gnome-desktop or windows
user.  You find files, and then figure out what you want to do with the
file.  You use a file browser, and then double clicking, right-clicking,
drag and drop, whatever.

If making the CLI easier to learn is an interesting topic to you, then I
would like to shamelessly plug my project at .
I call it climl for short, standing for Command Line Markup Language, or
Command Line Buddy as the long name.

This project offers a new way to document the CLI.  Right now, most
documentation is in the form of sonnets and novels written by programmers
(and... at MY college, you could get out of your single writing class
requirement by taking a class in software design).  With climl, you would
instead document a task with an html like format.  GUIs are then generated
from that documentation which can perform said CLI tasks, and in plain view
of/for the user.  Two windows are opened, one with buttons that can execute
commands, and another with the default shell running.  Pressing a button
just sends a text string over to the shell.  In a sense, you could criticize
the project for being an over-glorified copy-and-paster.

So, with one document, you get documentation of the task, a GUI for the
task, and a tutorial for the task regarding how to perform it on the command

Thanks for listening, bye.


In science and in mind, the impossible and the hasn't-happened-yet are
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Ubuntu-devel-discuss mailing list