mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-21 19:42:24 +01:00
816455c62f
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
996 lines
26 KiB
Diff
996 lines
26 KiB
Diff
--- wmmon-1.0b2.orig/wmgeneral/wmgeneral.c
|
|
+++ wmmon-1.0b2/wmgeneral/wmgeneral.c
|
|
@@ -12,6 +12,8 @@
|
|
---
|
|
CHANGES:
|
|
---
|
|
+ 10/10/2003 (Simon Law, sfllaw@debian.org)
|
|
+ * changed the parse_rcfile function to use getline instead of fgets.
|
|
02/05/1998 (Martijn Pieterse, pieterse@xs4all.nl)
|
|
* changed the read_rc_file to parse_rcfile, as suggester by Marcelo E. Magallon
|
|
* debugged the parse_rc file.
|
|
@@ -21,6 +23,7 @@
|
|
|
|
*/
|
|
|
|
+#define _GNU_SOURCE
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
@@ -83,17 +86,18 @@
|
|
void parse_rcfile(const char *filename, rckeys *keys) {
|
|
|
|
char *p;
|
|
- char temp[128];
|
|
+ char *line = NULL;
|
|
+ size_t line_size = 0;
|
|
char *tokens = " :\t\n";
|
|
FILE *fp;
|
|
int i,key;
|
|
|
|
fp = fopen(filename, "r");
|
|
if (fp) {
|
|
- while (fgets(temp, 128, fp)) {
|
|
+ while (getline(&line, &line_size, fp) >= 0) {
|
|
key = 0;
|
|
while (key >= 0 && keys[key].label) {
|
|
- if ((p = strstr(temp, keys[key].label))) {
|
|
+ if ((p = strstr(line, keys[key].label))) {
|
|
p += strlen(keys[key].label);
|
|
p += strspn(p, tokens);
|
|
if ((i = strcspn(p, "#\n"))) p[i] = 0;
|
|
@@ -270,6 +274,7 @@
|
|
unsigned int borderwidth = 1;
|
|
XClassHint classHint;
|
|
char *display_name = NULL;
|
|
+ char *geometry = NULL;
|
|
char *wname = argv[0];
|
|
XTextProperty name;
|
|
|
|
@@ -282,7 +287,9 @@
|
|
|
|
for (i=1; argv[i]; i++) {
|
|
if (!strcmp(argv[i], "-display"))
|
|
- display_name = argv[i+1];
|
|
+ display_name = argv[++i];
|
|
+ else if (!strcmp(argv[i], "-geometry"))
|
|
+ geometry = argv[++i];
|
|
}
|
|
|
|
if (!(display = XOpenDisplay(display_name))) {
|
|
@@ -307,7 +314,11 @@
|
|
fore_pix = GetColor("black");
|
|
|
|
XWMGeometry(display, screen, Geometry, NULL, borderwidth, &mysizehints,
|
|
- &mysizehints.x, &mysizehints.y,&mysizehints.width,&mysizehints.height, &dummy);
|
|
+ &mysizehints.x, &mysizehints.y,
|
|
+ &mysizehints.width, &mysizehints.height, &dummy);
|
|
+ if (geometry)
|
|
+ XParseGeometry(geometry, &mysizehints.x, &mysizehints.y,
|
|
+ &mysizehints.width, &mysizehints.height);
|
|
|
|
mysizehints.width = 64;
|
|
mysizehints.height = 64;
|
|
@@ -364,3 +375,6 @@
|
|
XMapWindow(display, win);
|
|
|
|
}
|
|
+
|
|
+/* vim: sw=4 ts=4 columns=82
|
|
+ */
|
|
--- wmmon-1.0b2.orig/wmmon/wmmon.c
|
|
+++ wmmon-1.0b2/wmmon/wmmon.c
|
|
@@ -28,6 +28,12 @@
|
|
Changes:
|
|
----
|
|
|
|
+ 15/05/2004 (Simon Law, sfllaw@debian.org)
|
|
+ * Support disabling of mode-cycling
|
|
+ 23/10/2003 (Simon Law, sfllaw@debian.org)
|
|
+ * Eliminated exploitable static buffers
|
|
+ * Added -geometry support.
|
|
+ * /proc/meminfo support for Linux 2.6
|
|
18/05/1998 (Antoine Nulle, warp@xs4all.nl)
|
|
* MEM/SWAP/UPTIME only updated when visible
|
|
* Using global file descriptors to reduce file
|
|
@@ -65,6 +71,7 @@
|
|
* First Working Version
|
|
*/
|
|
|
|
+#define _GNU_SOURCE
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
@@ -100,31 +107,28 @@
|
|
/* Global Variables */
|
|
/********************/
|
|
|
|
-char *ProgName;
|
|
int stat_current = 0; /* now global */
|
|
+int mode_cycling = 1; /* Allow mode-cycling */
|
|
FILE *fp_meminfo;
|
|
FILE *fp_stat;
|
|
FILE *fp_loadavg;
|
|
|
|
/* functions */
|
|
-void usage(void);
|
|
+void usage(char*);
|
|
void printversion(void);
|
|
void DrawStats(int *, int, int, int, int);
|
|
void DrawStats_io(int *, int, int, int, int);
|
|
|
|
void wmmon_routine(int, char **);
|
|
|
|
-void main(int argc, char *argv[]) {
|
|
+int main(int argc, char *argv[]) {
|
|
|
|
int i;
|
|
+ char *name = argv[0];
|
|
|
|
|
|
/* Parse Command Line */
|
|
|
|
- ProgName = argv[0];
|
|
- if (strlen(ProgName) >= 5)
|
|
- ProgName += (strlen(ProgName) - 5);
|
|
-
|
|
for (i=1; i<argc; i++) {
|
|
char *arg = argv[i];
|
|
|
|
@@ -132,13 +136,17 @@
|
|
switch (arg[1]) {
|
|
case 'd' :
|
|
if (strcmp(arg+1, "display")) {
|
|
- usage();
|
|
- exit(1);
|
|
+ usage(name);
|
|
+ return 1;
|
|
}
|
|
break;
|
|
- case 'v' :
|
|
- printversion();
|
|
- exit(0);
|
|
+ case 'g' :
|
|
+ if (strcmp(arg+1, "geometry")) {
|
|
+ usage(name);
|
|
+ return 1;
|
|
+ }
|
|
+ case 'l' :
|
|
+ mode_cycling = 0;
|
|
break;
|
|
case 'i' :
|
|
stat_current = 1;
|
|
@@ -146,15 +154,20 @@
|
|
case 's' :
|
|
stat_current = 2;
|
|
break;
|
|
+ case 'v' :
|
|
+ printversion();
|
|
+ return 0;
|
|
default:
|
|
- usage();
|
|
- exit(0);
|
|
- break;
|
|
+ usage(name);
|
|
+ return 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
wmmon_routine(argc, argv);
|
|
+
|
|
+ exit (0);
|
|
+
|
|
}
|
|
|
|
/*******************************************************************************\
|
|
@@ -214,8 +227,7 @@
|
|
long idle;
|
|
|
|
FILE *fp;
|
|
- char temp[128];
|
|
- char *p;
|
|
+ char *conffile = NULL;
|
|
|
|
int xpm_X = 0, xpm_Y = 0;
|
|
|
|
@@ -246,16 +258,21 @@
|
|
if (RIGHT_ACTION) right_action = strdup(RIGHT_ACTION);
|
|
if (MIDDLE_ACTION) middle_action = strdup(MIDDLE_ACTION);
|
|
|
|
- strcpy(temp, "/etc/wmmonrc");
|
|
- parse_rcfile(temp, wmmon_keys);
|
|
+ /* Scan through the .rc files */
|
|
+ if (asprintf(&conffile, "/etc/wmmonrc") >= 0) {
|
|
+ parse_rcfile(conffile, wmmon_keys);
|
|
+ free(conffile);
|
|
+ }
|
|
|
|
- p = getenv("HOME");
|
|
- strcpy(temp, p);
|
|
- strcat(temp, "/.wmmonrc");
|
|
- parse_rcfile(temp, wmmon_keys);
|
|
-
|
|
- strcpy(temp, "/etc/wmmonrc.fixed");
|
|
- parse_rcfile(temp, wmmon_keys);
|
|
+ if (asprintf(&conffile, "%s/.wmmonrc", getenv("HOME")) >= 0) {
|
|
+ parse_rcfile(conffile, wmmon_keys);
|
|
+ free(conffile);
|
|
+ }
|
|
+
|
|
+ if (asprintf(&conffile, "/etc/wmmonrc.fixed") >= 0) {
|
|
+ parse_rcfile(conffile, wmmon_keys);
|
|
+ free(conffile);
|
|
+ }
|
|
|
|
stat_online = checksysdevs();
|
|
|
|
@@ -269,26 +286,36 @@
|
|
starttime = time(0);
|
|
nexttime = starttime + 10;
|
|
|
|
+ /* Collect information on each panel */
|
|
for (i=0; i<stat_online; i++) {
|
|
get_statistics(stat_device[i].name, &k, &istat, &idle);
|
|
stat_device[i].statlast = istat;
|
|
stat_device[i].idlelast = idle;
|
|
}
|
|
- if (stat_current == 0) DrawStats(stat_device[stat_current].his, 54, 40, 5, 58);
|
|
- if (stat_current == 1) {
|
|
- DrawStats_io(stat_device[stat_current].his, 54, 40, 5, 58);
|
|
- }
|
|
- if (stat_current == 2) {
|
|
- xpm_X = 64;
|
|
- setMaskXY(-64, 0);
|
|
- } else {
|
|
- xpm_X = 0;
|
|
- setMaskXY(0, 0);
|
|
+
|
|
+ /* Set the mask for the current window */
|
|
+ switch (stat_current) {
|
|
+ case 0:
|
|
+ case 1:
|
|
+ xpm_X = 0;
|
|
+ setMaskXY(0, 0);
|
|
+ break;
|
|
+ case 2:
|
|
+ xpm_X = 64;
|
|
+ setMaskXY(-64, 0);
|
|
+ default:
|
|
+ break;
|
|
}
|
|
+
|
|
+ /* Draw statistics */
|
|
+ if (stat_current == 0)
|
|
+ DrawStats(stat_device[stat_current].his, 54, 40, 5, 58);
|
|
+ if (stat_current == 1)
|
|
+ DrawStats_io(stat_device[stat_current].his, 54, 40, 5, 58);
|
|
DrawActive(stat_device[stat_current].name);
|
|
|
|
while (1) {
|
|
- curtime = time(0);
|
|
+ curtime = time(NULL);
|
|
|
|
waitpid(0, NULL, WNOHANG);
|
|
|
|
@@ -377,6 +404,9 @@
|
|
if (curtime >= nexttime) {
|
|
nexttime+=10;
|
|
|
|
+ if (curtime > nexttime) /* dont let APM suspends make this crazy */
|
|
+ nexttime = curtime;
|
|
+
|
|
for (i=0; i<stat_online; i++) {
|
|
if (stat_device[i].his[54])
|
|
stat_device[i].his[54] /= stat_device[i].hisaddcnt;
|
|
@@ -411,7 +441,7 @@
|
|
break;
|
|
case ButtonRelease:
|
|
i = CheckMouseRegion(Event.xbutton.x, Event.xbutton.y);
|
|
- if (but_stat == i && but_stat >= 0) {
|
|
+ if (but_stat == i && but_stat >= 0 && mode_cycling) {
|
|
switch (but_stat) {
|
|
case 0:
|
|
switch (Event.xbutton.button) {
|
|
@@ -430,7 +460,6 @@
|
|
}
|
|
case 1:
|
|
stat_current++;
|
|
- printf("current stat is :%d\n", stat_current);
|
|
if (stat_current == stat_online)
|
|
stat_current = 0;
|
|
|
|
@@ -499,43 +528,80 @@
|
|
|
|
void update_stat_mem(stat_dev *st, stat_dev *st2) {
|
|
|
|
- char temp[128];
|
|
+ static char *line = NULL;
|
|
+ static size_t line_size = 0;
|
|
+
|
|
+ unsigned long swapfree;
|
|
unsigned long free, shared, buffers, cached;
|
|
|
|
freopen("/proc/meminfo", "r", fp_meminfo);
|
|
- while (fgets(temp, 128, fp_meminfo)) {
|
|
- if (strstr(temp, "Mem:")) {
|
|
- sscanf(temp, "Mem: %ld %ld %ld %ld %ld %ld",
|
|
- &st->rt_idle, &st->rt_stat,
|
|
- &free, &shared, &buffers, &cached);
|
|
- st->rt_idle >>= 10;
|
|
- st->rt_stat -= buffers+cached;
|
|
- st->rt_stat >>= 10;
|
|
-// break;
|
|
- }
|
|
- if (strstr(temp, "Swap:")) {
|
|
- sscanf(temp, "Swap: %ld %ld", &st2->rt_idle, &st2->rt_stat);
|
|
- st2->rt_idle >>= 10;
|
|
- st2->rt_stat >>= 10;
|
|
- break;
|
|
+ while ((getline(&line, &line_size, fp_meminfo)) > 0) {
|
|
+ /* The original format for the first two lines of /proc/meminfo was
|
|
+ * Mem: total used free shared buffers cached
|
|
+ * Swap: total used free
|
|
+ *
|
|
+ * As of at least 2.5.47 these two lines were removed, so that the
|
|
+ * required information has to come from the rest of the lines.
|
|
+ * On top of that, used is no longer recorded - you have to work
|
|
+ * this out yourself, from total - free.
|
|
+ *
|
|
+ * So, these changes below should work. They should also work with
|
|
+ * older kernels, too, since the new format has been available for
|
|
+ * ages.
|
|
+ */
|
|
+ if (strstr(line, "MemTotal:")) {
|
|
+ sscanf(line, "MemTotal: %ld", &st->rt_idle);
|
|
+ }
|
|
+ else if (strstr(line, "MemFree:")) {
|
|
+ sscanf(line, "MemFree: %ld", &free);
|
|
+ }
|
|
+ else if (strstr(line, "MemShared:")) {
|
|
+ sscanf(line, "MemShared: %ld", &shared);
|
|
+ }
|
|
+ else if (strstr(line, "Buffers:")) {
|
|
+ sscanf(line, "Buffers: %ld", &buffers);
|
|
+ }
|
|
+ else if (strstr(line, "Cached:")) {
|
|
+ sscanf(line, "Cached: %ld", &cached);
|
|
+ }
|
|
+ else if (strstr(line, "SwapTotal:")) {
|
|
+ sscanf(line, "SwapTotal: %ld", &st2->rt_idle);
|
|
+ }
|
|
+ else if (strstr(line, "SwapFree:")) {
|
|
+ sscanf(line, "SwapFree: %ld", &swapfree);
|
|
}
|
|
}
|
|
+
|
|
+ /* memory use - rt_stat is the amount used, it seems, and this isn't
|
|
+ * recorded in current version of /proc/meminfo (as of 2.5.47), so we
|
|
+ * calculate it from MemTotal - MemFree
|
|
+ */
|
|
+ st->rt_stat = st->rt_idle - free;
|
|
+ st->rt_stat -= buffers+cached;
|
|
+ /* As with the amount of memory used, it's not recorded any more, so
|
|
+ * we have to calculate it ourselves.
|
|
+ */
|
|
+ st2->rt_stat = st2->rt_idle - swapfree;
|
|
}
|
|
|
|
void update_stat_swp(stat_dev *st) {
|
|
|
|
- char temp[128];
|
|
+ static char *line = NULL;
|
|
+ static size_t line_size = 0;
|
|
+ unsigned long swapfree;
|
|
|
|
fseek(fp_meminfo, 0, SEEK_SET);
|
|
- while (fgets(temp, 128, fp_meminfo)) {
|
|
- if (strstr(temp, "Swap:")) {
|
|
- sscanf(temp, "Swap: %ld %ld", &st->rt_idle, &st->rt_stat);
|
|
- st->rt_idle >>= 10;
|
|
- st->rt_stat >>= 10;
|
|
- break;
|
|
+ while ((getline(&line, &line_size, fp_meminfo)) > 0) {
|
|
+ /* As with update_stat_mem(), the format change to /proc/meminfo has
|
|
+ * forced some changes here. */
|
|
+ if (strstr(line, "SwapTotal:")) {
|
|
+ sscanf(line, "SwapTotal: %ld", &st->rt_idle);
|
|
+ }
|
|
+ else if (strstr(line, "SwapFree:")) {
|
|
+ sscanf(line, "SwapFree: %ld", &swapfree);
|
|
}
|
|
}
|
|
-
|
|
+ st->rt_stat = st->rt_idle - swapfree;
|
|
}
|
|
|
|
/*******************************************************************************\
|
|
@@ -545,11 +611,11 @@
|
|
void get_statistics(char *devname, long *is, long *ds, long *idle) {
|
|
|
|
int i;
|
|
- char temp[128];
|
|
+ static char *line = NULL;
|
|
+ static size_t line_size = 0;
|
|
char *p;
|
|
char *tokens = " \t\n";
|
|
float f;
|
|
- long maxdiskio=0;
|
|
|
|
*is = 0;
|
|
*ds = 0;
|
|
@@ -557,9 +623,9 @@
|
|
|
|
if (!strncmp(devname, "cpu", 3)) {
|
|
fseek(fp_stat, 0, SEEK_SET);
|
|
- while (fgets(temp, 128, fp_stat)) {
|
|
- if (strstr(temp, "cpu")) {
|
|
- p = strtok(temp, tokens);
|
|
+ while ((getline(&line, &line_size, fp_stat)) > 0) {
|
|
+ if (strstr(line, "cpu ")) {
|
|
+ p = strtok(line, tokens);
|
|
/* 1..3, 4 == idle, we don't want idle! */
|
|
for (i=0; i<3; i++) {
|
|
p = strtok(NULL, tokens);
|
|
@@ -577,17 +643,35 @@
|
|
if (!strncmp(devname, "i/o", 3)) {
|
|
|
|
fseek(fp_stat, 0, SEEK_SET);
|
|
- while (fgets(temp, 128, fp_stat)) {
|
|
- if (strstr(temp, "disk_rio") || strstr(temp, "disk_wio")) {
|
|
- p = strtok(temp, tokens);
|
|
+ while ((getline(&line, &line_size, fp_stat)) > 0) {
|
|
+ if (strstr(line, "disk_rio") || strstr(line, "disk_wio")) {
|
|
+ p = strtok(line, tokens);
|
|
/* 1..4 */
|
|
for (i=0; i<4; i++) {
|
|
p = strtok(NULL, tokens);
|
|
*ds += atol(p);
|
|
}
|
|
}
|
|
+ else if (strstr(line, "disk_io")) {
|
|
+ int val;
|
|
+ unsigned int a, b, c, d, e, h, g;
|
|
+
|
|
+ p = strtok(line, tokens);
|
|
+
|
|
+ while ((p = strtok(NULL, tokens))) {
|
|
+ val = sscanf (p,
|
|
+ "(%d,%d):(%d,%d,%d,%d,%d)",
|
|
+ &a, &b, &c, &d, &e, &h,
|
|
+ &g);
|
|
+
|
|
+ if (val != 7)
|
|
+ continue;
|
|
+
|
|
+ *ds += d;
|
|
+ *ds += h;
|
|
+ }
|
|
+ }
|
|
}
|
|
- if (*ds > maxdiskio) maxdiskio = *ds;
|
|
}
|
|
}
|
|
|
|
@@ -715,16 +799,17 @@
|
|
|* usage *|
|
|
\*******************************************************************************/
|
|
|
|
-void usage(void) {
|
|
-
|
|
- fprintf(stderr, "\nwmmon - programming: tijno, (de)bugging & design warp, webhosting: bobby\n\n");
|
|
- fprintf(stderr, "usage:\n");
|
|
- fprintf(stderr, "\t-display <display name>\n");
|
|
- fprintf(stderr, "\t-h\tthis screen\n");
|
|
- fprintf(stderr, "\t-v\tprint the version number\n");
|
|
- fprintf(stderr, "\t-i\tstartup in DiskIO mode\n");
|
|
- fprintf(stderr, "\t-s\tstartup in SysInfo mode\n");
|
|
- fprintf(stderr, "\n");
|
|
+void usage(char *name) {
|
|
+ printf("Usage: %s [OPTION]...\n", name);
|
|
+ printf("WindowMaker dockapp that displays system information.\n");
|
|
+ printf("\n");
|
|
+ printf(" -display DISPLAY contact the DISPLAY X server\n");
|
|
+ printf(" -geometry GEOMETRY position the clock at GEOMETRY\n");
|
|
+ printf(" -l locked view - cannot cycle modes\n");
|
|
+ printf(" -i start in Disk I/O mode\n");
|
|
+ printf(" -s start in System Info mode\n");
|
|
+ printf(" -h display this help and exit\n");
|
|
+ printf(" -v output version information and exit\n");
|
|
}
|
|
|
|
/*******************************************************************************\
|
|
@@ -733,7 +818,7 @@
|
|
|
|
void printversion(void) {
|
|
|
|
- if (!strcmp(ProgName, "wmmon")) {
|
|
- fprintf(stderr, "%s\n", WMMON_VERSION);
|
|
- }
|
|
+ printf("WMMon version %s\n", WMMON_VERSION);
|
|
}
|
|
+/* vim: sw=4 ts=4 columns=82
|
|
+ */
|
|
--- wmmon-1.0b2.orig/wmmon/wmmon.1
|
|
+++ wmmon-1.0b2/wmmon/wmmon.1
|
|
@@ -0,0 +1,192 @@
|
|
+'\" t
|
|
+.\" Man page for wmmon
|
|
+.\" Copyright (c) 2003 Software in the Public Interest, Inc.
|
|
+.\"
|
|
+.\" This program is free software; you can redistribute it and/or modify
|
|
+.\" it under the terms of the GNU General Public License as published by
|
|
+.\" the Free Software Foundation; either version 2 of the License, or (at
|
|
+.\" your option) any later version.
|
|
+.\"
|
|
+.\" This program is distributed in the hope that it will be useful, but
|
|
+.\" WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+.\" General Public License for more details.
|
|
+.\"
|
|
+.\" You should have received a copy of the GNU General Public License
|
|
+.\" along with this program; if not, write to the Free Software
|
|
+.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
|
+.\"
|
|
+.TH wmmon 1 "May 1998" "WMMON 1.0b2"
|
|
+
|
|
+.SH NAME
|
|
+wmmon \- Window Maker dockapp for monitoring system information
|
|
+
|
|
+.SH SYNOPSIS
|
|
+
|
|
+.B wmmon
|
|
+[
|
|
+.I OPTION
|
|
+]
|
|
+
|
|
+.SH DESCRIPTION
|
|
+
|
|
+.B WMMon
|
|
+monitors the realtime CPU load as well as the average system load,
|
|
+and gives you some nice additional features too. It is intended for
|
|
+docking in Window Maker.
|
|
+
|
|
+It currently provides:
|
|
+
|
|
+.IP \(bu 4
|
|
+a realtime CPU stress meter;
|
|
+.IP \(bu
|
|
+an auto-scaled average system load meter, like
|
|
+.B xload
|
|
+and
|
|
+.BR wmavgload ;
|
|
+.IP \(bu
|
|
+a realtime disk I/O stress meter;
|
|
+.IP \(bu
|
|
+auto-scaled disk I/O load meter;
|
|
+.IP \(bu
|
|
+realtime memory and swap usage meters;
|
|
+.IP \(bu
|
|
+a display for system uptime;
|
|
+.IP \(bu
|
|
+three user-defined commands to launch.
|
|
+
|
|
+.SH OPTIONS
|
|
+
|
|
+.TP
|
|
+.BI \-display \ display
|
|
+This option specifies the X server to contact; see
|
|
+.IR X(7x) .
|
|
+
|
|
+.TP
|
|
+.BI \-geometry \ geometry
|
|
+This option specifies the preferred position of clock; see
|
|
+.IR X(7x) .
|
|
+
|
|
+.TP
|
|
+.BR \-l
|
|
+Lock the mode, so that it cannot be cycled by clicking on the upper-left
|
|
+widget. You can use this to open multiple copies of
|
|
+.BR WMMon ,
|
|
+each set to a different mode.
|
|
+
|
|
+.TP
|
|
+.BR \-i
|
|
+Start in disk I/O mode, which displays instantaneous disk usage and
|
|
+average disk load.
|
|
+
|
|
+.TP
|
|
+.BR \-s
|
|
+Start in system information mode, which displays memory usage, swap usage,
|
|
+and uptime.
|
|
+
|
|
+.TP
|
|
+.B \-h
|
|
+Show help information.
|
|
+
|
|
+.TP
|
|
+.B \-v
|
|
+Print the version number.
|
|
+
|
|
+.SH USAGE
|
|
+The
|
|
+.B WMMon
|
|
+display can be cycled between CPU, disk I/O, and system
|
|
+information displays by clicking on the upper-left widget. This
|
|
+displays CPU information by default.
|
|
+
|
|
+WMMon can also be used to launch programs. You may click either left,
|
|
+middle, or right mouse buttons in the average-load section of the
|
|
+window. The pre-configured program will be launched according to the
|
|
+mouse button clicked. (see
|
|
+.B CONFIGURATION FILE
|
|
+below.)
|
|
+
|
|
+In order to move
|
|
+.BR WMMon ,
|
|
+drag on the outer edges. These are not sensitive to mouse clicks.
|
|
+
|
|
+.SH "DOCKING IN WINDOW MANAGERS"
|
|
+
|
|
+.TP
|
|
+Window Maker
|
|
+
|
|
+Window Maker users should drag and drop the
|
|
+.B WMMon
|
|
+window on the Dock. Then, right-click on the border of the window and
|
|
+select \*(lqSettings...\*(rq. Check \*(lqStart when Window Maker
|
|
+is started\*(rq.
|
|
+
|
|
+.TP
|
|
+AfterStep
|
|
+
|
|
+AfterStep users should put the following in their
|
|
+.I $HOME/.steprc
|
|
+
|
|
+.RS 16
|
|
+Wharf wmmon \- MaxSwallow "wmmon" wmmon &
|
|
+.RE
|
|
+
|
|
+.TP
|
|
+Other window managers
|
|
+
|
|
+.B WMMon
|
|
+runs nicely as a 64x64 shaped icon on your desktop.
|
|
+
|
|
+.SH "CONFIGURATION FILE"
|
|
+
|
|
+.B WMMon
|
|
+can launch three user-defined commands, triggered by left, middle and
|
|
+right mouse button clicks. You can define the commands to launch in
|
|
+.I $HOME/.wmmonrc
|
|
+
|
|
+.RS
|
|
+.PD 0
|
|
+left: xterm
|
|
+.PP
|
|
+middle: xload
|
|
+.PP
|
|
+right: xcalc
|
|
+.PP
|
|
+.PD
|
|
+.RE
|
|
+
|
|
+If
|
|
+.B WMMon
|
|
+detects a
|
|
+.I $HOME/.wmmonrc
|
|
+file, it will launch the appropriate command when you click on the clock.
|
|
+
|
|
+The system administrator can define default commands in
|
|
+.IR /etc/wmmonrc .
|
|
+The administrator may also choose to \*(lqfix\*(rq particular commands,
|
|
+making it impossible for users to change. These commands can be defined in
|
|
+.IR /etc/wmmonrc.fixed ,
|
|
+although this isn't a nice thing to do.
|
|
+
|
|
+.SH FILES
|
|
+
|
|
+.I /etc/wmmonrc
|
|
+.br
|
|
+.I $HOME/.wmmonrc
|
|
+.br
|
|
+.I /etc/wmmonrc.fixed
|
|
+
|
|
+.SH AUTHORS
|
|
+
|
|
+.B WMMon
|
|
+was written by Martijn Pieterse and Antoine Nulle.
|
|
+
|
|
+This manual page was written by Simon Law <sfllaw@debian.org> for the
|
|
+.B Debian
|
|
+system (but may be used by others). It is based on the documentation provided
|
|
+by the original program.
|
|
+
|
|
+This manual is free software; you can redistribute it and/or modify
|
|
+it under the terms of the GNU General Public License as published by
|
|
+the Free Software Foundation; either version 2 of the License, or (at
|
|
+your option) any later version.
|
|
--- wmmon-1.0b2.orig/debian/examples
|
|
+++ wmmon-1.0b2/debian/examples
|
|
@@ -0,0 +1 @@
|
|
+debian/wmmonrc
|
|
--- wmmon-1.0b2.orig/debian/dirs
|
|
+++ wmmon-1.0b2/debian/dirs
|
|
@@ -0,0 +1 @@
|
|
+usr/bin
|
|
--- wmmon-1.0b2.orig/debian/rules
|
|
+++ wmmon-1.0b2/debian/rules
|
|
@@ -0,0 +1,96 @@
|
|
+#!/usr/bin/make -f
|
|
+#
|
|
+# debian/rules file for wmmon.
|
|
+# Copyright (C) 2003 Software in the Public Interest.
|
|
+#
|
|
+# This program is free software; you can redistribute it and/or modify
|
|
+# it under the terms of the GNU General Public License as published by
|
|
+# the Free Software Foundation; either version 2 of the License, or (at
|
|
+# your option) any later version.
|
|
+#
|
|
+# This program is distributed in the hope that it will be useful, but
|
|
+# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
+# General Public License for more details.
|
|
+#
|
|
+# You should have received a copy of the GNU General Public License
|
|
+# along with this program; if not, write to the Free Software
|
|
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
+#
|
|
+# Based on the sample debian/rules that uses debhelper.
|
|
+# GNU copyright 1997 to 1999 by Joey Hess.
|
|
+
|
|
+# Uncomment this to turn on verbose mode.
|
|
+#export DH_VERBOSE=1
|
|
+
|
|
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
|
|
+ CFLAGS += -g
|
|
+endif
|
|
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
|
|
+ INSTALL_PROGRAM += -s
|
|
+endif
|
|
+
|
|
+build: build-stamp
|
|
+
|
|
+build-stamp:
|
|
+ dh_testdir
|
|
+
|
|
+ # Add here commands to compile the package.
|
|
+ cd wmmon; $(MAKE)
|
|
+
|
|
+ touch build-stamp
|
|
+
|
|
+clean:
|
|
+ dh_testdir
|
|
+ dh_testroot
|
|
+ rm -f build-stamp
|
|
+
|
|
+ # Add here commands to clean up after the build process.
|
|
+ -cd wmmon; $(MAKE) clean
|
|
+
|
|
+ dh_clean
|
|
+
|
|
+install: build
|
|
+ dh_testdir
|
|
+ dh_testroot
|
|
+ dh_clean -k
|
|
+ dh_installdirs
|
|
+
|
|
+ # Add here commands to install the package into debian/wmmon.
|
|
+ install -m 755 wmmon/wmmon $(CURDIR)/debian/wmmon/usr/bin
|
|
+
|
|
+# Build architecture-independent files here.
|
|
+binary-indep: build install
|
|
+# We have nothing to do by default.
|
|
+
|
|
+# Build architecture-dependent files here.
|
|
+binary-arch: build install
|
|
+ dh_testdir
|
|
+ dh_testroot
|
|
+ dh_installdebconf
|
|
+ dh_installdocs
|
|
+ dh_installexamples
|
|
+ dh_installmenu
|
|
+# dh_installlogrotate
|
|
+# dh_installemacsen
|
|
+# dh_installpam
|
|
+# dh_installmime
|
|
+# dh_installinit
|
|
+# dh_installcron
|
|
+ dh_installman
|
|
+# dh_installinfo
|
|
+ dh_installchangelogs CHANGES
|
|
+ dh_link
|
|
+ dh_strip
|
|
+ dh_compress
|
|
+ dh_fixperms
|
|
+# dh_makeshlibs
|
|
+ dh_installdeb
|
|
+# dh_perl
|
|
+ dh_shlibdeps
|
|
+ dh_gencontrol
|
|
+ dh_md5sums
|
|
+ dh_builddeb
|
|
+
|
|
+binary: binary-indep binary-arch
|
|
+.PHONY: build clean binary-indep binary-arch binary install
|
|
--- wmmon-1.0b2.orig/debian/menu
|
|
+++ wmmon-1.0b2/debian/menu
|
|
@@ -0,0 +1,6 @@
|
|
+?package(wmmon):\
|
|
+ needs="X11"\
|
|
+ section="Apps/System"\
|
|
+ title="WMmon"\
|
|
+ command="/usr/bin/wmmon"\
|
|
+ hints="Monitoring,Dockapp"
|
|
--- wmmon-1.0b2.orig/debian/changelog
|
|
+++ wmmon-1.0b2/debian/changelog
|
|
@@ -0,0 +1,100 @@
|
|
+wmmon (1.0b2-14) unstable; urgency=medium
|
|
+
|
|
+ * Fixed build dependencies so we no longer depend on libxpm4-dev.
|
|
+ * Quoted all strings in /usr/lib/menu/wmtime.
|
|
+ * Add the ability to lock the mode, preventing cycling. Thanks go to
|
|
+ Chris Bechberger <bechberger@yahoo.com>.
|
|
+
|
|
+ -- Simon Law <sfllaw@debian.org> Tue, 10 Aug 2004 21:22:17 -0400
|
|
+
|
|
+wmmon (1.0b2-13) unstable; urgency=low
|
|
+
|
|
+ * Removed a memory leak that I introduced. (Closes: Bug#223338)
|
|
+
|
|
+ -- Simon Law <sfllaw@debian.org> Tue, 09 Dec 2003 12:42:41 -0500
|
|
+
|
|
+wmmon (1.0b2-12) unstable; urgency=low
|
|
+
|
|
+ * Changed section to x11.
|
|
+
|
|
+ -- Simon Law <sfllaw@debian.org> Fri, 05 Dec 2003 11:17:21 -0500
|
|
+
|
|
+wmmon (1.0b2-11) unstable; urgency=low
|
|
+
|
|
+ * New maintainer.
|
|
+ * Added a manual page.
|
|
+ * Added the -geometry option.
|
|
+ * Ensure that I/O mode works the same no matter how it is started.
|
|
+ (Closes: Bug#94277)
|
|
+ * Support new /proc/meminfo format in 2.6 kernels. (Closes: Bug#169160)
|
|
+ * Fixed some buffer overflow problems. (Closes: Bug#174949)
|
|
+
|
|
+ -- Simon Law <sfllaw@debian.org> Wed, 26 Nov 2003 23:47:47 -0500
|
|
+
|
|
+wmmon (1.0b2-10) unstable; urgency=low
|
|
+
|
|
+ * Fixed build depends (closes: #170133)
|
|
+ * Applied patch from Simon Fowler <simon@himi.org> to fix /proc/meminfo
|
|
+ parsing for linux 2.5.
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Fri, 22 Nov 2002 14:17:26 +0100
|
|
+
|
|
+wmmon (1.0b2-9) unstable; urgency=low
|
|
+
|
|
+ * Remove debug message (closes: #139408)
|
|
+ * Applied patch from Frederik Schueler <fs@lowpingbastards.de>
|
|
+ to fix /proc/stat parsing on linux 2.4 (closes: #144122)
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Tue, 23 Apr 2002 21:39:09 +0200
|
|
+
|
|
+wmmon (1.0b2-8) unstable; urgency=low
|
|
+
|
|
+ * Fixed menu path (closes: #129353)
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Thu, 17 Jan 2002 21:35:03 +0100
|
|
+
|
|
+wmmon (1.0b2-7) unstable; urgency=low
|
|
+
|
|
+ * Updated description (closes: #125496)
|
|
+ * Don't install INSTALL (closes: #116940)
|
|
+ * Changed section to utils
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Wed, 2 Jan 2002 23:19:06 +0100
|
|
+
|
|
+wmmon (1.0b2-6) unstable; urgency=low
|
|
+
|
|
+ * Updated menu with patch from Arthur Korn <arthur@korn.ch>
|
|
+ (closes: #82315)
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Mon, 15 Jan 2001 07:56:10 +0100
|
|
+
|
|
+wmmon (1.0b2-5) unstable; urgency=low
|
|
+
|
|
+ * Build without xpm4.7 (closes: #77466)
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Sun, 19 Nov 2000 22:17:03 +0100
|
|
+
|
|
+wmmon (1.0b2-4) unstable; urgency=low
|
|
+
|
|
+ * Added menu entry (closes: #76969)
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Sat, 18 Nov 2000 21:14:56 +0100
|
|
+
|
|
+wmmon (1.0b2-3) unstable; urgency=low
|
|
+
|
|
+ * Rebuild to update libxmp dependency. (closes: #67990)
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Mon, 31 Jul 2000 07:25:09 +0200
|
|
+
|
|
+wmmon (1.0b2-2) unstable; urgency=low
|
|
+
|
|
+ * Patch from Salvador Pinto Abreu <spa@sc.uevora.pt>:
|
|
+ Fixed behavior when APM causes the system to sleep/suspend.
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Sat, 17 Oct 1998 13:35:55 +0200
|
|
+
|
|
+wmmon (1.0b2-1) unstable; urgency=low
|
|
+
|
|
+ * Initial Release.
|
|
+
|
|
+ -- Fredrik Hallenberg <hallon@debian.org> Wed, 15 Jul 1998 18:18:37 +0200
|
|
--- wmmon-1.0b2.orig/debian/control
|
|
+++ wmmon-1.0b2/debian/control
|
|
@@ -0,0 +1,24 @@
|
|
+Source: wmmon
|
|
+Section: x11
|
|
+Priority: optional
|
|
+Maintainer: Simon Law <sfllaw@debian.org>
|
|
+Standards-Version: 3.6.1
|
|
+Build-Depends: debhelper (>> 4.0.0), libx11-dev, libxpm-dev, libxext-dev
|
|
+
|
|
+Package: wmmon
|
|
+Architecture: any
|
|
+Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
+Description: Window Maker dockapp for monitoring system information
|
|
+ WMMon monitors the realtime CPU load as well as the average system load,
|
|
+ and gives you some nice additional features too. It is intended for
|
|
+ docking in Window Maker.
|
|
+ .
|
|
+ It currently provides:
|
|
+ .
|
|
+ * a realtime CPU stress meter;
|
|
+ * an auto-scaled average system load meter, like xload and wmavgload;
|
|
+ * a realtime disk I/O stress meter;
|
|
+ * auto-scaled disk I/O load meter;
|
|
+ * realtime memory and swap usage meters;
|
|
+ * a display for system uptime;
|
|
+ * three user-defined commands to launch.
|
|
--- wmmon-1.0b2.orig/debian/copyright
|
|
+++ wmmon-1.0b2/debian/copyright
|
|
@@ -0,0 +1,25 @@
|
|
+This package was debianized by Fredrik Hallenberg hallon@debian.org on
|
|
+Wed, 15 Jul 1998 18:18:37 +0200.
|
|
+
|
|
+It was downloaded from http://www.xs4all.nl/~warp/files/wmmon-1.0b2.tar.gz
|
|
+
|
|
+Upstream Copyright:
|
|
+
|
|
+ Copyright (c) 1997, 1998 by Martijn Pieterse and Antoine Nulle
|
|
+
|
|
+ This program is free software; you can redistribute it and/or modify it
|
|
+ under the terms of the GNU General Public License as published by the
|
|
+ Free Software Foundation; either version 2, or (at your option) any
|
|
+ later version.
|
|
+
|
|
+ This program is distributed in the hope that it will be useful,
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ GNU General Public License for more details.
|
|
+
|
|
+ You should have received a copy of the GNU General Public License
|
|
+ along with this program; if not, write to the Free Software
|
|
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
+
|
|
+On Debian GNU/Linux systems, the complete text of the GNU General
|
|
+Public License can be found in `/usr/share/common-licenses/GPL'.
|
|
--- wmmon-1.0b2.orig/debian/manpages
|
|
+++ wmmon-1.0b2/debian/manpages
|
|
@@ -0,0 +1 @@
|
|
+wmmon/wmmon.1
|
|
--- wmmon-1.0b2.orig/debian/compat
|
|
+++ wmmon-1.0b2/debian/compat
|
|
@@ -0,0 +1 @@
|
|
+4
|
|
--- wmmon-1.0b2.orig/debian/wmmonrc
|
|
+++ wmmon-1.0b2/debian/wmmonrc
|
|
@@ -0,0 +1,3 @@
|
|
+left: xterm
|
|
+middle: xload
|
|
+right: xcalc
|