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:

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.

VariableArgumentsDescription
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.