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, but not fully tested and has plenty more features still to come.
The reasons for 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 and submitted using the enter key, just like a traditional shell. However, hsh also displays information about the command as it is typed. 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 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 show a list of jobs executed along with their output, similar to the appearance of a traditional shell. However, each job can be manipulated independently, their output can be hidden temporarily, it is never intermingled even for jobs running simultaneously, and they can be removed entirely from list. Other views can be accessed using the Fn keys, including output of individual jobs, lists of running jobs and history. When a main view has focus, its contents can be moved with the arrow keys, PageDown, PageUp, search functions and others.
Most jobs run in the background in hsh, the interface is still available while they are running, and output is accumulated in the natural place in the list and job output views. The job's stdout, stderr and any interactive input are drawn together, but distinguished by colour.
Important features which are already done:
These are some of the more important features planned for future releases: