 _________________
< Welcome to Helm >
 -----------------
    \
     \
                                   .::!!!!!!!:.
  .!!!!!:.                        .:!!!!!!!!!!!!
  ~~~~!!!!!!.                 .:!!!!!!!!!UWWW$$$
      :$$NWX!!:           .:!!!!!!XUWW$$$$$$$$$P
      $$$$$##WX!:      .<!!!!UW$$$$"  $$$$$$$$#
      $$$$$  $$$UX   :!!UW$$$$$$$$$   4$$$$$*
      ^$$$B  $$$$\     $$$$$$$$$$$$   d$$R"
        "*$bd$$$$      '*$$$$$$$$$$$o+#"
             """"          """""""


Introduction
------------

Helm is a system monitor released under GNU GPLv3.


Organization
------------

Basically Helm is a GTK+ window with root transparency. This window contain a
gtk.VBox. Each cell of this box contain a "widget" or a "view". A widget
contains a set of views. A view is the drawing of a "model". A model is the
information that we want to monitor.

There are various views. We can use any view to display any model. So we can
have an histogram for the cpu activity and a ring for the memory usage. Or vice
versa.


Configuration
-------------

If you want to customize helm, you must create the file
~/.config/helm/config.py. You can just copy the config.py provided with sources
and modify it. The default config import all the models/views/widgets and the
"run" method.

The sole purpose of this file is to call the "run" method with the width of the
GTK+ window and the list of widgets/views.

To instantiate a widget, you must give him a view class to use to display the
models.

To instantiate a view, you must give him a model instance.

The order in which you will give the widgets/views will establish the order in
which helm will display them.


Create your own models/views/widgets
------------------------------------

This is currently out of the scope of this documentation. So I can just give
you an advice: read the source code of helm. ;)

Another advice: you can write your models/views/widgets directly in your
config.py or in any other file in ~/.config/helm/ and import it into your
config.py. You do not have to modify helm to do this. :)


Models, Views & Widgets
-----------------------

* Models
 - CPU
  Monitors the CPU activity.
 - FS
  Monitors the usage of a mounted filesystem.
 - Mem
  Monitors the RAM usage.
 - Network
  Monitors the network activity.
 - Swap
  Monitors the SWAP usage.
* Views
 - Bar
  Display an horizontal line and the name and the current value of the model.
 - Histogram
  Display a time histogram and the name of the model.
 - Ring
  Display an arc and the name of the model.
* Widgets
 - CPUs
  Discovers your cores.
 - Networks
  Discovers your network interfaces.


Bugs
----

* TraceBack if we move the window off screen.


Contact
-------

Website: http://helm.last-exile.org/
Jabber room: last-exile@muc.last-exile.org
