tonypaulic / xfce4-genmon-plugin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Generic Monitor XFce4 panel plugin (GenMon)
===========================================


1 -	Description
	-----------
The GenMon plugin cyclically spawns the indicated script/program, captures its output and displays the result into the panel.


2 -	Installation
	------------
Do the usual stuff:
	- gunzip
	- tar xf
	- ./configure --prefix=<XFce4InstallationDir>	(e.g. /usr/local)
	- make
	- make install  (as root)
	
You should then end up with:
        libgenmon.so
        libgenmon.la
installed in <XFce4InstallationDir>/lib/xfce4/panel/plugins/
and
        genmon.desktop
installed in <XFce4InstallationDir>/share/xfce4/panel/plugins/

        xfce4-genmon-plugin.mo
installed in <XFce4InstallationDir>/share/locale/XX/LC_MESSAGES/
where XX represents the languages supported by genmon plugin

You are encouraged to delete the installed libgenmon.la

3 -	Testing
	-------

Use GenMon for invoking the provided "datetime" shell script.
Then the current date/time should be continuously updated in your panel.

If the plugin displays XXX it means that the spawn of the command has failed.

4 -	Extra
	-----

A simple Perl script, disktemp, that retrieves the temperature of a disk
using the smartmontools is provided.
To install it, as root you may do:
	- cp disktemp /usr/local/bin
	- cd /usr/local/bin
	- chown root:root	disktemp
	- chmod a+rx		disktemp
	- chmod u+s 		disktemp
Then run (you need to have smartd/smarctl installed on your system)
	- disktemp <disk>	(e.g. /dev/hda)
If this works, you should be able to use GenMon for continually monitoring
your disk temperature.

5 -	New Features
	-----------

The new version of genmon plugin can also display an icon (which can be a
clickable icon), a tooltip, a text and a bar.

To display these items, the script called by genmon should return a simple
XML string.

The XML tags which can be used are :
<txt>Text to display</txt>
<img>Path to the image to display</img>
<tool>Tooltip text</tool>
<bar>Pourcentage to display in the bar</bar>
<click>The command to be executed when clicking on the image</click>

If None of the tags are detected in the result of the command, the plugin
returns to its original behaviour (displaying the result of the command).

No tag is mandatory: for instance, you can display a tooltip without and image...

The text between the <txt> and </txt> tag can use pango markup for style and color.

Here's a simple example of a plugin displaying the Temp of the CPU in the panel
(with an icon) and the Freq in a Tooltip:

#!/bin/bash
echo "<img>/usr/share/icons/Bluecurve/16x16/apps/gnome-monitor.png</img>"

declare -i cpuFreq
cpuFreq=$(cat /proc/cpuinfo | grep "cpu MHz" | sed 's/\ \ */ /g' | cut -f3 -d" " | cut -f1 -d".")

if [ $cpuFreq -ge 1000 ]
then
  cpu=$(echo $cpuFreq | cut -c1).$(echo $cpuFreq | cut -c2)GHz
else
  cpu=${cpuFreq}MHz
fi
echo "<txt>"$(cat /proc/acpi/thermal_zone/THM/temperature | sed 's/\ \ */ /g' | cut -f2 -d" ")" C</txt>"
echo "<tool>Freq: "$cpu"</tool>"

PS: Depending on your configuration, you should change the image path.

You can find more scripts in scripts/mon*. 

The xfce4-genmon-plugin now supports xfce4-panel plugin-event functionality. Currently it only supports the 
"refresh" action which resets the timer and causes the associated command to execute again. You can use this 
command remotely or at the end of a script to force the panel plugin to refresh.

To refresh the plugin, issue the command:

    xfce4-panel --plugin-event=genmon-X:refresh:bool:true
    
where "genmon-X" is the widget name of the particular genmon instance. To get this name, go to the panel 
properties screen and on the Items tab, hover your mouse over the genmon plugin to get it's internal name.


6 -	Bugs
	----
If you find a bug, fix it, then tell me how you did it :-)


Enjoy!
Roger Seguin
roger_seguin@msn.com

Julien Devemy <jujucece@gmail.com>

About

License:GNU Lesser General Public License v2.1


Languages

Language:C 68.3%Language:Shell 26.1%Language:Perl 3.5%Language:Makefile 2.1%