diff -u -urN xosview-1.8.1/Xdefaults xosview-1.8.1.wireless/Xdefaults
--- xosview-1.8.1/Xdefaults	2003-10-20 03:29:40.000000000 +0200
+++ xosview-1.8.1.wireless/Xdefaults	2004-12-29 17:46:02.000000000 +0100
@@ -188,6 +188,17 @@
 xosview*batteryPriority:    50
 xosview*batteryUsedFormat:  percent
 
+! Wireless Meter Resources
+
+xosview*wireless:            True
+xosview*PoorQualityColor:    red
+xosview*FairQualityColor:    yellow
+xosview*GoodQualityColor:    green
+xosview*wirelessUsedColor:   blue
+xosview*wirelessPriority:    1
+xosview*wirelessUsedFormat:  autoscale
+xosview*wirelessDecay:       True
+
 ! Disk Meter Resources
 
 xosview*disk:		    True
diff -u -urN xosview-1.8.1/Xdefaults.in xosview-1.8.1.wireless/Xdefaults.in
--- xosview-1.8.1/Xdefaults.in	2004-12-29 17:41:25.000000000 +0100
+++ xosview-1.8.1.wireless/Xdefaults.in	2004-12-29 17:46:02.000000000 +0100
@@ -189,6 +189,17 @@
 *batteryPriority:    50
 *batteryUsedFormat:  percent
 
+! Wireless Meter Resources
+
+xosview*wireless:            True
+xosview*PoorQualityColor:    red
+xosview*FairQualityColor:    yellow
+xosview*GoodQualityColor:    green
+xosview*wirelessUsedColor:   blue
+xosview*wirelessPriority:    1 
+xosview*wirelessUsedFormat:  autoscale
+xosview*wirelessDecay:       True
+
 ! Disk Meter Resources
 
 *disk:		    False
diff -u -urN xosview-1.8.1/Xrmcommandline.h xosview-1.8.1.wireless/Xrmcommandline.h
--- xosview-1.8.1/Xrmcommandline.h	2002-03-25 00:13:54.000000000 +0100
+++ xosview-1.8.1.wireless/Xrmcommandline.h	2004-12-29 17:46:02.000000000 +0100
@@ -48,6 +48,9 @@
 // Batterymeter resources
 { "-battery", "*battery", XrmoptionNoArg, "False" },
 { "+battery", "*battery", XrmoptionNoArg, "True" },
+// Wirelessmeter resources
+{ "-wireless", "*wireless", XrmoptionNoArg, "False" },
+{ "+wireless", "*wireless", XrmoptionNoArg, "True" },
 //  GFX resources
 { "-gfx", "*gfx", XrmoptionNoArg, "False" },
 { "+gfx", "*gfx", XrmoptionNoArg, "True" },
diff -u -urN xosview-1.8.1/config/Makefile.linux.in xosview-1.8.1.wireless/config/Makefile.linux.in
--- xosview-1.8.1/config/Makefile.linux.in	2004-12-29 17:41:19.000000000 +0100
+++ xosview-1.8.1.wireless/config/Makefile.linux.in	2004-12-29 17:46:02.000000000 +0100
@@ -18,6 +18,7 @@
 intmeter.o \
 loadmeter.o \
 btrymeter.o \
+wirelessmeter.o \
 diskmeter.o \
 raidmeter.o \
 lmstemp.o \
diff -u -urN xosview-1.8.1/config/configure.in xosview-1.8.1.wireless/config/configure.in
--- xosview-1.8.1/config/configure.in	2003-10-12 19:46:06.000000000 +0200
+++ xosview-1.8.1.wireless/config/configure.in	2004-12-29 17:46:02.000000000 +0100
@@ -271,6 +271,14 @@
     BTRYMETER=btrymeter.o
     AC_DEFINE(HAVE_BATTERY_METER)
   fi
+  #  Only enable the wireless meter if it appears we support it.
+  if test -e /proc/net/wireless ; then
+    WIRELESSMETER=wirelessmeter.o
+    AC_DEFINE(HAVE_WIRELESS_METER) 
+    AC_MSG_WARN([/proc/net/wireless detected -- enabling the wireless meter!])
+  else
+    AC_MSG_WARN([no /proc/net/wireless -- disabling the wireless meter.])
+  fi
   ;;
 esac
 
diff -u -urN xosview-1.8.1/configure xosview-1.8.1.wireless/configure
--- xosview-1.8.1/configure	2003-10-20 03:29:00.000000000 +0200
+++ xosview-1.8.1.wireless/configure	2004-12-29 17:46:56.000000000 +0100
@@ -5085,6 +5085,19 @@
 _ACEOF
 
   fi
+
+
+  #  Only enable the wireless meter if it appears we support it.
+  if test -e /proc/net/wireless ; then
+    WIRELESSMETER=wirelessmeter.o
+    cat >> confdefs.h <<\EOF
+#define HAVE_WIRELESS_METER 1
+EOF
+
+    echo "configure: warning: /proc/net/wireless detected -- enabling the wireless meter!" 1>&2
+  else
+    echo "configure: warning: no /dev/net/wireless -- disabling the wireless meter." 1>&2
+  fi
   ;;
 esac
 
@@ -5873,6 +5886,7 @@
 s,@EGREP@,$EGREP,;t t
 s,@LINUX_SMP@,$LINUX_SMP,;t t
 s,@BTRYMETER@,$BTRYMETER,;t t
+s,@WIRELESSMETER@,$WIRELESSMETER,;t t
 s,@EXTRA_CXXFLAGS@,$EXTRA_CXXFLAGS,;t t
 s,@EXTRALIBS@,$EXTRALIBS,;t t
 s,@ELF_LINK_FLAGS@,$ELF_LINK_FLAGS,;t t
diff -u -urN xosview-1.8.1/linux/MeterMaker.cc xosview-1.8.1.wireless/linux/MeterMaker.cc
--- xosview-1.8.1/linux/MeterMaker.cc	2004-12-29 17:41:25.000000000 +0100
+++ xosview-1.8.1.wireless/linux/MeterMaker.cc	2004-12-29 17:53:46.000000000 +0100
@@ -18,6 +18,9 @@
 #include "serialmeter.h"
 #include "loadmeter.h"
 #include "btrymeter.h"
+#include "wirelessmeter.h"
+#include <fstream>
+using namespace std;
 #include "diskmeter.h"
 #include "raidmeter.h"
 #include "lmstemp.h"
@@ -80,6 +83,18 @@
   if (_xos->isResourceTrue("battery"))
     push(new BtryMeter(_xos));
 
+  // check for the wireless meter
+static const char WLFILENAME[] = "/proc/net/wireless";
+ifstream stats( WLFILENAME );
+if ( stats ) {
+  if (_xos->isResourceTrue("wireless")){
+    int wirelessCount = WirelessMeter::countdevices();
+    int start = (wirelessCount == 0) ? 0 : 1;
+	if (wirelessCount != 0) {
+    for (int i = start ; i <= wirelessCount ; i++)
+      push(new WirelessMeter(_xos, i, WirelessMeter::wirelessStr(i)));
+  } } }
+
   // check for the RAID meter
   if (_xos->isResourceTrue("RAID")){
     int RAIDCount = atoi(_xos->getResource("RAIDdevicecount"));
diff -u -urN xosview-1.8.1/linux/wirelessmeter.cc xosview-1.8.1.wireless/linux/wirelessmeter.cc
--- xosview-1.8.1/linux/wirelessmeter.cc	1970-01-01 01:00:00.000000000 +0100
+++ xosview-1.8.1.wireless/linux/wirelessmeter.cc	2005-01-12 17:04:48.000000000 +0100
@@ -0,0 +1,172 @@
+//  
+//  Copyright (c) 2001 by Tim Ehlers ( tehlers@gwdg.de )
+//
+//  This file may be distributed under terms of the GPL
+//
+//
+// $Id: wirelessmeter.cc,v 1.3 2001/06/13
+//
+#include "wirelessmeter.h"
+#include "xosview.h"
+#include <fstream>
+#include <stdlib.h>
+#include <string.h>
+//#include <strstream>
+#include <sstream>
+#include <ctype.h>
+
+using namespace std;
+
+static const char WLFILENAME[] = "/proc/net/wireless";
+
+WirelessMeter::WirelessMeter( XOSView *parent, int ID, const char *wlID)
+  : FieldMeterGraph<float>( parent, 2, wlID, "/Link-Quality", 1, 1, 0 ), _number(ID) {
+  lastqualitystate = -1;
+  strcpy(devname, "0");
+}
+
+WirelessMeter::~WirelessMeter( void ){
+}
+
+void WirelessMeter::checkResources( void ){
+  FieldMeterGraph<float>::checkResources();
+
+  poorqualcol_ = parent_->allocColor(parent_->getResource( "PoorQualityColor" ));
+  fairqualcol_ = parent_->allocColor(parent_->getResource( "FairQualityColor" ));
+  goodqualcol_ = parent_->allocColor(parent_->getResource( "GoodQualityColor" ));
+
+  setfieldcolor( 1, parent_->getResource( "wirelessUsedColor" ) );
+
+  priority_ = atoi (parent_->getResource( "wirelessPriority" ) );
+  dodecay_ = parent_->isResourceTrue( "wirelessDecay" );
+  SetUsedFormat(parent_->getResource( "wirelessUsedFormat" ) );
+}
+
+void WirelessMeter::checkevent( void ){
+  getpwrinfo();
+
+  drawfields();
+}
+
+
+void WirelessMeter::getpwrinfo( void ){
+  ifstream loadinfo( WLFILENAME );
+
+  if ( !loadinfo ){
+    cerr <<"Can not open file : " <<WLFILENAME <<endl;
+    parent_->done(1);
+    return;
+  }
+
+  char buff[256];
+
+  for (int i = 1 ; i < 2 ; i++)
+    loadinfo.getline(buff, 256);
+
+  int linkq = 0;
+
+if (strncmp(devname, "0", 1)) {
+
+  while (!loadinfo.eof()){
+    loadinfo.getline(buff, 256);
+    if (!loadinfo.eof()){
+        loadinfo >> buff;
+      if (!strncmp(buff, devname, strlen(devname))) {
+	loadinfo >> buff >> linkq; }
+
+} } }
+
+if (!strncmp(devname, "0", 1)) {
+
+  for (int i = 0 ; i < _number; ) {
+    loadinfo.getline(buff, 256);
+	loadinfo >> devname >> buff >> linkq;
+	if (!loadinfo.eof()){
+          if ( linkq != 0 ) i++; }
+		if ( loadinfo.eof() ) break; }
+
+}
+
+  fields_[0] = linkq;
+
+  if ( fields_[0] <  7 ) qualitystate = 0;
+  if ( fields_[0] >= 7 ) qualitystate = 1;
+  if ( fields_[0] >= 15 ) qualitystate = 2;
+  
+  if ( qualitystate != lastqualitystate ){
+    if ( qualitystate == 0 ) setfieldcolor( 0, poorqualcol_ );
+    if ( qualitystate == 1 ) setfieldcolor( 0, fairqualcol_ );
+    if ( qualitystate == 2 ) setfieldcolor( 0, goodqualcol_ );
+    lastqualitystate = qualitystate;
+  }
+
+    if ( fields_[0] >= 250 ) { fields_[0] = 0; qualitystate = 0; }
+
+  total_ = 240;
+
+ if ( fields_[0] < 210)
+    total_ = 210;
+
+ if ( fields_[0] < 180)
+    total_ = 180;
+
+ if ( fields_[0] < 150)
+    total_ = 150;
+
+ if ( fields_[0] < 120)
+    total_ = 120;
+
+ if ( fields_[0] < 90)
+    total_ = 90;
+
+ if ( fields_[0] < 60)
+    total_ = 60;
+
+ if ( fields_[0] < 30)
+    total_ = 30;
+
+  fields_[1] = fields_[0];
+
+  setUsed (fields_[0], total_);
+}
+
+int WirelessMeter::countdevices(void){
+  ifstream stats( WLFILENAME );
+
+  if ( !stats ){
+    cerr <<"Can not open file : " <<WLFILENAME <<endl;
+    exit( 1 );
+  }
+
+char buf[1024];
+
+for (int i = 1 ; i < 2 ; i++)
+    stats.getline(buf, 1024);
+
+  int wirelessCount = 0;
+  int linkq = 0;
+  while (!stats.eof()){
+    stats.getline(buf, 1024);
+	stats >> buf >> buf >> linkq;
+if (!stats.eof()){
+	  if ( linkq != 0 )
+          wirelessCount++;
+  }}
+
+  return wirelessCount;
+}
+
+const char *WirelessMeter::wirelessStr(int num){
+  static char buffer[32];
+  std::ostringstream str;
+  
+  str << "WL";
+  if (num != 1)
+    str << (num);
+  str << std::ends;
+
+  strncpy(buffer, str.str().c_str(), 32);
+  buffer[31] = '\0';
+
+  return buffer;
+}
diff -u -urN xosview-1.8.1/linux/wirelessmeter.h xosview-1.8.1.wireless/linux/wirelessmeter.h
--- xosview-1.8.1/linux/wirelessmeter.h	1970-01-01 01:00:00.000000000 +0100
+++ xosview-1.8.1.wireless/linux/wirelessmeter.h	2004-12-29 16:00:01.000000000 +0100
@@ -0,0 +1,36 @@
+//  
+//  Copyright (c) 1997 by Mike Romberg ( romberg@fsl.noaa.gov )
+//
+//  This file may be distributed under terms of the GPL
+//
+//
+// $Id: btrymeter.h,v 1.1 1997/02/26 23:44:50 mromberg Exp $
+//
+#ifndef _WIRELESSMETER_H_
+#define _WIRELESSMETER_H_
+
+
+#include "fieldmetergraph.h"
+
+
+class WirelessMeter : public FieldMeterGraph<float> {
+public:
+  WirelessMeter( XOSView *parent, int ID = 1, const char *wlID = "WL");
+  ~WirelessMeter( void );
+
+  const char *name( void ) const { return "WirelessMeter"; }  
+  void checkevent( void );
+
+  void checkResources( void );
+  static int countdevices(void);
+  static const char *wirelessStr(int num);
+  char devname[256];
+protected:
+
+  void getpwrinfo( void );
+  unsigned long poorqualcol_, fairqualcol_, goodqualcol_;
+private:
+  int alarmThreshold, qualitystate, lastqualitystate, _number;
+};
+
+#endif
diff -u -urN xosview-1.8.1/xosview.1 xosview-1.8.1.wireless/xosview.1
--- xosview-1.8.1/xosview.1	2004-12-29 17:41:25.000000000 +0100
+++ xosview-1.8.1.wireless/xosview.1	2004-12-29 17:46:02.000000000 +0100
@@ -194,6 +194,13 @@
     array(s).
     Linux  : Disk0 Disk1 Disk2 .. DiskN | Rebuild Progress
 
+\fBWireless Link\fP
+    Shows the current Linkquality
+    of wireless connections.
+    Linux  : linkquality | of 30,60 or 90
+    *BSD   : < Not Supported >
+    HPUX   : < Not Supported >
+
 .SH OPTIONS
 
 Most of these command line options are just a convenient way to set one or
@@ -280,6 +287,9 @@
 .\"  Handle -/+gfx
 .pm gfx
 
+.\"  Handle -/+wireless
+.pm wireless
+
 .\"  Handle -/+net
 .pm net
 
@@ -806,6 +816,43 @@
 .pp battery
 .uf battery
 
+\fBWireless Meter Resources\fP
+
+
+xosview*wireless: (True or False)
+.RS
+If True then xosview will display the link-Quality of wireless connections.
+Note that the graph will *never* schow up, if you don't have any wireless
+Devices, or no wireless extensions in Kernel (/proc/net/wireless).
+Default is true.
+.RE
+
+xosview*PoorQualityColor: \fIcolor\fP
+.RS
+This is the color for the Link-Graph with Quality between 0 and 6.
+.RE
+
+xosview*FairQualityColor: \fIcolor\fP
+.RS
+This is the color for the Link-Graph with Quality between 7 and 14.
+.RE
+
+xosview*GoodQualityColor: \fIcolor\fP
+.RS
+This is the color for the Link-Graph with Quality higher than 14.
+.RE
+
+xosview*wirelessUsedColor: \fIcolor\fP
+.RS
+This is the background color.
+.RE
+
+.\"  Do the priority resource
+.pp wireless
+.dc wireless
+.uf wireless
+
+
 \fBDisk Meter Resources\fP
 
 .\"  Do the disk: True resource.
@@ -1014,6 +1061,11 @@
 Many cosmetic fixes.
 .RE
 
+Tim Ehlers (tehlers@gwdg.de)
+.RS
+Wireless Link-Meter for Linux.
+.RE
+
 Leopold Toetsch <lt@toetsch.at>
 .RS
 Linux lms temp meter.
