  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?       
   mail_spool         Mail spool for mail checking                            
   own_window         Boolean, create own window to draw?                     
   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               
   acpitemp                           ACPI temperature. I don't have ACPI     
                                      thing so this is very much untested.    
   battery                            Remaining capasity in ACPI (BAT1) or    
                                      APM battery. I don't have ACPI nor APM  
                                      things so this is very much untested.   
   cpu                                CPU usage in percents                   
   cpubar            (height)         Bar that shows CPU usage, height is     
                                      bar's height in pixels                  
   color             (color)          Change drawing color to color           
   downspeed         net              Download speed in kilobytes             
   downspeedf        net              Download speed in kilobytes with one    
                                      decimal                                 
   exec              shell command    Execute a shell command, warning: this  
                                      takes a lot more resources than other   
                                      variables. I'd recommend coding wanted  
                                      behaviour in C and posting a patch :-). 
   hr                (height)         Horizontal line, height 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                          
   loadavg           (1) (2) (3)      System load average, 1 is for past 1    
                                      minutes, 2 for past 5 minutes and 3 for 
                                      past 15 minutes.                        
   machine                            Machine, i686 for example               
   mails                              Mail count in mail spool. You can use   
                                      program like fetchmail to get mails     
                                      from some server using your favourite   
                                      protocol. See also new_mails.           
   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             
   new_mails                          Unread mail count in mail spool.        
   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 and there        
                                      doesn't seem to be a way to know how    
                                      many times it has already done that     
                                      before torsmo has started.              
   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

   Drawing to root or some other desktop window directly doesn't work with
   all window managers. Especially doesn't work well with Gnome and it has
   been reported that it doesn't work with KDE either. Nautilus can be
   disabled from drawing to desktop with program gconf-editor. Uncheck
   show_desktop in /apps/nautilus/preferences/. There is -w switch in torsmo
   to set some window specific window id. You might find xwininfo -tree
   useful to find the window to draw to. You can also use -o argument which
   makes torsmo to create its own window.
