Copyright (C) 2010 Alexander Taler (dissent@0--0.org)
This file is part of hsh.
hsh is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
hsh is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with hsh. If not, see
http://www.gnu.org/licenses/
.
hsh is the {Happy|Human|History} shell, a replacement for your traditional shell (bash, csh, etc.) intended to be more usable for humans. It is a curses app, which means full screen interaction and a small ugly palette of colours. Currently it's usable and stable, although lightly tested and with plenty of features still to come.
The purposes of hsh compared to traditional shells are:
This document is purely introductory, there is much more documentation in the user manual and developer manual.
The hsh interface is split into two areas, the bottom few lines are for input, and the rest of the screen is the main area, which shows one of a number of different views. Both areas can accept input, and the focus can be moved from one to the other. (Alt-o and Alt-Tab switch focus.)
Commands are entered into the input area, which displays information about the command as it is typed, and are submitted for execution using the enter key, just like a traditional shell. When a command is submitted a job is created and its output is displayed in the main area. The command-line syntax is inspired by that of the Bourne shell, but shares only its most basic features.
The main area shows a welcome message and brief help on startup. When a job is created it switches to a session list view that includes all of the jobs executed along with their output, similar to the appearance of a traditional shell. However, each job can be manipulated independtly, their output can be hidden temporarily, it is never intermingled even for jobs running simultaneously, and they can be removed entirely from list. Other main views can be accessed using the Fn keys, including output for individual jobs, lists of running jobs and history. When a main view has focus, its contents can be moved with the arrow keys, PageDown and PageUp, amongst others.
Most jobs run in the background in hsh, the interface is still available while they are running, and output is accumalted in the natural place in the session list and job output views. The job's stdout, stderr and any interactive input are drawn together, but distinguished by colour.
The major features which are already implemented are:
High priority features for next releases:
A handful of the more important features for future releases: