FlyZhy.Org logo Projects - System Monitor

Before
HowTo
Installing
Configuring
After

I am not good at decorating my Desktop, however, something like FVWM and torsmo did. The system monitor located in the left-bottom on my Desktop is named torsmo which means TyopoytaORvelo System MOnitor. It uses Xlib, sits in the corner of your desktop, and renders only text on the desktop (percentagebars if you want it to). Also it's simple and customizable like other GNU software.

Before

HowTo

Installing

The version I used is torsmo-0.18.tar.gz which is also the latest version until now. It's easy to install:

#tar xvfz torsmo-0.18.tar.gz
#cd torsmo-0.18/
#./configure
#make && make check
#make install

Configuring

$HOME/
  |©¤©¤ .torsmorc
  |©¤©¤ .torsmos/
            |©¤©¤ README
            |©¤©¤ VBat.sh
            |©¤©¤ Vcore1.sh
            |©¤©¤ fan2.sh
            |©¤©¤ hdatemp.sh
            |©¤©¤ seti.sh
            |©¤©¤ temp1.sh
            |©¤©¤ temp2.sh
            |©¤©¤ weather.sh
            |©¤©¤ torsmo_stuff.txt

Although torsmo works with the only lib - Xlib, you still to pay attention to your computer hardware and your kernel.1

Kernel

Pay attention to the following part when you rebuild your kernel using torsmo to monitor the hardware section.

Device Drivers --->I2C support --->

/proc

The usage of torsmo has something to do with /proc psuedo file system. So here gives the basic knowledge about /proc and do not hesitate to Google the words you do not understand.

A Map of /proc:

loadavg	Average of system load for the last 1, 5 and 15 minutes
uptime	Time in seconds since boot-up and total time used by processes
meminfo	The number of total, used and free bytes of memory and swap area(s)
kmsg	Kernel messages that have yet to be read in by the kernel
version	Current rev of the kernel and/or distribution (read from linux_banner
cpuinfo	Recognized processor parameters
pci	Current occupation of pci slots.
self/	Information about processes currently accessing /proc
net/	Descriptions about the network layer(s)
scsi/	Contains files with information on individual scsi devices
malloc	Monitoring provisions for kmalloc and kfree operations
kcore	A core dump for the kernel (memory snapshot)
modules	Information regarding single loaded modules
stat	General Linux Statistics
devices	Information about kernel registered devices on the system
interrupts	Interrupt assignment information
filesystems	Existing filesystem implementations
ksyms	Symbols exported by the kernel
dma	Occupied DMA channels
ioports	Currently occupied IO ports
smp	Individual information about CPU's if SMP is enabled
cmdline	Command line parameters passed to the kernel at boot time
sys/	Important kernel and network information
mtab	Currently mounted filesystems
md	Multiple device driver information (if enabled)
rc	Enhanced real time clock (if enabled)
locks	Currently locked files

For more information, read

~/.torsmorc

### torsmo configuration
## set to yes if you want tormo to be forked in the background
background yes
## X font when Xft is disabled, you can pick one with program xfontsel
#font 5x7
#font 6x10
#font 7x13
#font 8x13
#font 9x15
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
#font -bitstream-bitstream vera serif-medium-r-normal--0-0-0-0-p-0-iso8859-1
font -bitstream-bitstream vera sans-medium-r-normal-*-14-*-*-*-*-*-*-*
#font -*-stkaiti-medium-r-normal-*-16-*-*-*-*-*-*-*
## Use Xft?
use_xft no
## Xft font when Xft is enabled
xftfont courier-12
## Text alpha when using Xft
xftalpha 0.8
## mail spool
#mail_spool $MAIL
## Update interval in seconds
update_interval 5.0
## Create own window instead of using desktop (required in nautilus)
own_window no
## Use double buffering (reduces flicker, may not work for everyone)
double_buffer no
## Minimum size of text area
minimum_size 80 5
## Draw shades?
draw_shades yes
## Draw outlines?
draw_outline no
## Draw borders around text
draw_borders no
## Stippled borders?
#stippled_borders 8
stippled_borders 0
## border margins
#border_margin 4
border_margin 2
## border width
border_width 1
## Default colors and also border colors
default_color white
default_shade_color black
default_outline_color black
## Text alignment, other possible values are commented
#alignment top_left
#alignment top_right
alignment bottom_left
#alignment bottom_right
## Gap between borders of screen and text
gap_x 5
gap_y 10
## Subtract file system buffers from used memory?
no_buffers yes
## set to yes if you want all text to be in uppercase
uppercase no
## boinc (seti) dir
## seti_dir /opt/seti
# Possible variables to be used:
#
#      Variable         Arguments                  Description
#  acpiacadapter                     ACPI ac adapter state.
#  acpifan                           ACPI fan state
#  acpitemp                          ACPI temperature.
#  adt746xcpu                        CPU temperature from therm_adt746x
#  adt746xfan                        Fan speed from therm_adt746x
#  battery           (num)           Remaining capasity in ACPI or APM
#                                    battery. ACPI battery number can be
#                                    given as argument (default is BAT0).
#  buffers                           Amount of memory buffered
#  cached                            Amount of memory cached
#  color             (color)         Change drawing color to color
#  cpu                               CPU usage in percents
#  cpubar            (height)        Bar that shows CPU usage, height is
#                                    bar's height in pixels
#  downspeed         net             Download speed in kilobytes
#  downspeedf        net             Download speed in kilobytes with one
#                                    decimal
#  exec              shell command   Executes a shell command and displays
#                                    the output in torsmo. warning: this
#                                    takes a lot more resources than other
#                                    variables. I'd recommend coding wanted
#                                    behaviour in C and posting a patch :-).
#  execi             interval, shell Same as exec but with specific interval.
#                    command         Interval can't be less than
#                                    update_interval in configuration.
#  fs_bar            (height), (fs)  Bar that shows how much space is used on
#                                    a file system. height is the height in
#                                    pixels. fs is any file on that file
#                                    system.
#  fs_free           (fs)            Free space on a file system available
#                                    for users.
#  fs_free_perc      (fs)            Free percentage of space on a file
#                                    system available for users.
#  fs_size           (fs)            File system size
#  fs_used           (fs)            File system used space
#  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
#                                    minute, 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
#  outlinecolor      (color)         Change outline color
#  pre_exec          shell command   Executes a shell command one time before
#                                    torsmo displays anything and puts output
#                                    as text.
#  processes                         Total processes (sleeping and running)
#  running_processes                 Running processes (not sleeping),
#                                    requires Linux 2.6
#  shadecolor        (color)         Change shading color
#  stippled_hr       (space),        Stippled (dashed) horizontal line
#                    (height)
#  swapbar           (height)        Bar that shows amount of swap in use
#  swap                              Amount of swap in use
#  swapmax                           Total amount of swap
#  swapperc                          Percentage of swap in use
#  sysname                           System name, Linux for example
#  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
#  uptime_short                      Uptime in a shorter format
#
#  seti_prog                         Seti@home current progress
#  seti_progbar      (height)        Seti@home current progress bar
#  seti_credit                       Seti@hoome total user credit
## variable is given either in format $variable or in ${variable}. Latter
## allows characters right after the variable and must be used in network
## stuff because of an argument
## ${color grey}Temperatures:
##  CPU:$color ${i2c temp 1}C${color grey} - MB:$color ${i2c temp 2}C
## stuff after 'TEXT' will be formatted on screen
TEXT
$nodename - $sysname $kernel on $machine
$stippled_hr
${color slate grey}${time %a, }${color }${time %e %B %G}
${color slate grey}${time %Z, }${color }${time %H:%M:%S}
$stippled_hr
${color grey}Uptime$color $uptime
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 6}
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 6}
${color grey}CPU Usage:$color $cpu% ${cpubar 6}
${color grey}Processes:$color $processes  ${color grey}Running:$color $running_processes
${color grey}Mails: ${color}$mails${color grey} New: ${color}$new_mails${color grey}
$color$stippled_hr
${color grey}Networking:
 Up:$color ${upspeed eth0} k/s${color grey} - Down:$color ${downspeed eth0} k/s
${color grey}File systems:
 / $color${fs_free /}/${fs_size /} ${fs_bar 6 /}
${color grey}Temperatures:
 CPU:$color ${i2c 9191-1c00 temp 1}ˇăC${color grey} - MB:$color ${i2c 9191-1c00 temp 2}ˇăC
${stippled_hr 2 1}
${color slate grey}Weather :${color}
${execi 900 /home/flyzhy/.torsmos/weather.sh Today}
${stippled_hr 2 1}
${color slate grey}Tomorrow :${color}
${execi 900 /home/flyzhy/.torsmos/weather.sh Tomorrow}
${stippled_hr 2 1}
${color slate grey}Cpu Mem Process ${color }
${execi 10 ps gaxo %cpu,%mem,comm | sort +0nr | head -n 5 | sed -e 's/-bin//' | sed -e 's/-media-play//'}

~/.torsmos/weather.sh

This is a shell script to catch the information about the weather of current day and next day from Yahoo.

#!/bin/bash
city="QingDao"
link=CHXX0110_c.html?force_units=1
file=/tmp/weather.txt
location=http://weather.yahoo.com/forecast/$link
lynx -accept_all_cookies -dump $location > $file
begin=`cat -n $file | grep "Currently" | cut -d ' ' -f5`
end=`expr $begin + 40`
head -n $end $file > tmp.t
tail -n 41 tmp.t > $file
case $1 in
        Today) head -n 6 $file | sed '3d' ;;
        Tomorrow)
        begin=`cat -n $file | grep 'Today Tomorrow' | cut -d ' ' -f5`
        end=`cat -n $file | grep 'Extended' | cut -d ' ' -f5`
        num=`expr $end - $begin - 1`
        end2=`expr $begin + 7`
        head -n $end2 $file > tmp.t
        tail -n 3 tmp.t | sed 's/sky/\n sky/' | sed '4d' ;;
        *) exit ;;
esac
rm tmp.t
rm $file

top

After

After the configuration we want to start it when X is booting up. It's easy to do that if you use FVWM as your Window Manager. Check Startup Functions about

+ I FvwmTorsmo

in the InitFunction function and look up the FvwmTorsmo function in Program Lauching Functions.


1. Especially the kernel, or else you can not use some function of torsmo.