  TORSMO - Tyopoyta ORvelo System MOnitor

   Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
   All rights reserved.
   This program is licensed under BSD license, read COPYING

  WHAT IS TORSMO

   Torsmo is a system monitor that sits in the corner of your desktop. Torsmo
   renders itself on the root window (on the desktop) without any special
   eyecandy.
   Torsmo can show lots of info about your system, including:

     * kernel version
     * uptime
     * network interface information
     * memory and swap usage
     * hostname
     * machine, i686 for example
     * system name, Linux for example
     * temperatures from i2c-sensors

  COMPILING

   To compile and run torsmo:

         ./configure
         make
         ./torsmo

   Torsmo doesn't probably compile with other compilers than gcc and icc. It
   doesn't compile with C89 compiler and not even with pure C99. It uses few
   functions that might not exist: strdup(), strcasecmp(), strncasecmp(),
   optarg variable with getopt() and long long (not in C89). Doesn't work
   with c++ compiler because of anonymous structs.

  CONFIGURING

   Default configuration file is $HOME/.torsmorc (can be changed from
   torsmo.c among other things). See torsmorc.sample. You might want to copy
   it to $HOME/.torsmorc and then start modifying it.

          Conf                                Meaning                         
   alignment          Aligned position on screen, may be top_left, top_right, 
                      bottom_left, bottom_right                               
   background         Boolean value, if true, torsmo will be forked to        
                      background when started                                 
   default_color      Default color and border color                          
   default_shadecolor Default shading color and border's shading color        
   draw_borders       Draw borders around text?                               
   draw_shades        Draw shades?                                            
   font               Font name in X, xfontsel can be used to get a nice font 
   gap_x              Gap between right or left border of screen              
   gap_y              Gap between top or bottom border of screen              
   no_buffers         Substract (file system) buffers from used memory?       
   stippled_borders   Border stippling (dashing) in pixels                    
   update_interval    Update interval in seconds                              
   uppercase          Boolean value, if true, text is rendered in upper case  
   text               After this begins text to be formatted on screen        

   Boolean variable without value in text means yes. Value may be also yes,
   true or any negative or positive integer meaning yes. No, false or zero
   meaning no.
   There may be some variables in text. Variable is given either in format
   $variable or in ${variable}. Latter allows characters right after the
   variable and must be used in some stuff because of arguments.

       Variable         Arguments                   Description               
   cpu                                CPU usage in percents                   
   cpubar            (height)         Bar that shows CPU usage, bar height is 
                                      height                                  
   color             (color)          Change drawing color to color           
   downspeed         net              Download speed in kilobytes             
   downspeedf        net              Download speed in kilobytes with one    
                                      decimal                                 
   hr                (height)         Horizontal line, must be alone on the   
                                      line, is the height in pixels           
   i2c               (dev) type n     I2C sensor from sysfs (Linux 2.6). dev  
                                      may be omitted if you have only one I2C 
                                      device. type is either in (or vol)      
                                      meaning voltage, fan meaning fan or     
                                      temp meaning temperature. n is number   
                                      of the sensor. See                      
                                      /sys/bus/i2c/devices/ on your local     
                                      computer.                               
   kernel                             Kernel version                          
   machine                            Machine, i686 for example               
   mem                                Amount of memory in use                 
   membar            (height)         Bar that shows amount of memory in use  
   memmax                             Total amount of memory                  
   memperc                            Percentage of memory in use             
   nodename                           Hostname                                
   processes                          Processes (sleeping or running)         
   running_processes                  Running processes (not sleeping),       
                                      requires Linux 2.6                      
   shadecolor        (color)          Change shading color                    
   stippled_hr       (space) (height) Stippled (dashed) horizontal line       
   swapbar           (height)         Bar that shows amount of swap in use    
   swapmax                            Total amount of swap                    
   swapperc                           Percentage of swap in use               
   swap                               Amount of swap in use                   
   sysname                            System name, Linux for example          
   temp1                              Temperature #1 from i2c-sensors, same   
                                      as ${i2c temp 1}                        
   temp2                              Temperature #2 from i2c-sensors, same   
                                      as ${i2c temp 2}                        
   time              (format)         Local time, see man strftime to get     
                                      more information about format           
   totaldown         net              Total download, overflows at 4 GB on    
                                      Linux with 32-bit arch                  
   totalup           net              Total upload, this one too, may         
                                      overflow                                
   updates                            Number of updates (for debugging)       
   upspeed           net              Upload speed in kilobytes               
   upspeedf          net              Upload speed in kilobytes with one      
                                      decimal                                 
   uptime                             Uptime                                  

   Colors are parsed using XParseColor(), there might be a list of them:
   /usr/X11R6/lib/X11/rgb.txt. Color can be also in #rrggbb format (hex).

  KNOWN PROBLEMS

   Probably doesn't work with window managers that take control over root
   window. Works almost with Gnome's nautilus, torsmo doesn't get Expose
   event when desktop menu is opened and this causes torsmo to disappear
   until next update. Nautilus can be disabled from drawing to desktop with
   program gconf-editor. Uncheck show_desktop in /apps/nautilus/preferences/.
