From 493b23da0e08c1a49790663c178ca9b620827902 Mon Sep 17 00:00:00 2001 From: Bill Wilson Date: Wed, 7 Sep 2016 10:02:32 -0500 Subject: [PATCH] Version 2.3.8 - Handle dynamic virtual disk major numbers. Handle dynamic disk major numbers for dm and mdp virtual devices and don't add their data to the composite disk. Disk panel labels configurable - probably mostly useful for user labeling of virtual disks. Use wrap bytes instead of discarding data when cumulative chart data overflows. Pavel Reznicek patch: Theme changes key changed to shift pageup/pagedown. Ville Skytta patch: indentation cleanup and os_release() bugfix. --- Makefile | 2 +- po/gkrellm.pot | 595 ++++++++++++++++++++------------------- server/gkrellmd.h | 3 +- server/win32-resource.rc | 6 +- src/battery.c | 6 +- src/chart.c | 12 +- src/disk.c | 90 +++++- src/gkrellm.h | 8 +- src/gui.c | 4 +- src/mem.c | 20 +- src/sysdeps/linux.c | 117 ++++++-- src/win32-resource.rc | 6 +- 12 files changed, 513 insertions(+), 356 deletions(-) diff --git a/Makefile b/Makefile index 588d5fa..a6ec98e 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,7 @@ BINMODE = 755 #GTOP_LIBS_D = -L$(GTOP_PREFIX)/lib -lgtop -lgtop_common -lgtop_sysdeps #export GTOP_INCLUDE GTOP_LIBS GTOP_LIBS_D -VERSION = 2.3.8-pre1 +VERSION = 2.3.8 INSTALLROOT ?= $(DESTDIR)$(PREFIX) diff --git a/po/gkrellm.pot b/po/gkrellm.pot index 383c510..3f0a1a1 100644 --- a/po/gkrellm.pot +++ b/po/gkrellm.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-10-14 20:15-0500\n" +"POT-Creation-Date: 2016-09-07 09:55-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -137,8 +137,8 @@ msgid "" "Select the exponential model for more accuracy in this case.\n" msgstr "" -#: ../src/battery.c:1136 ../src/cpu.c:1352 ../src/disk.c:1359 ../src/fs.c:2496 -#: ../src/mem.c:1281 ../src/net.c:2945 ../src/proc.c:903 ../src/sensors.c:2684 +#: ../src/battery.c:1136 ../src/cpu.c:1352 ../src/disk.c:1419 ../src/fs.c:2503 +#: ../src/mem.c:1281 ../src/net.c:3052 ../src/proc.c:903 ../src/sensors.c:2684 msgid "Substitution variables may be used in alert commands.\n" msgstr "" @@ -162,11 +162,11 @@ msgstr "" msgid "\t$c charging state (boolean).\n" msgstr "" -#: ../src/battery.c:1143 ../src/fs.c:2498 ../src/inet.c:1823 ../src/mem.c:1284 +#: ../src/battery.c:1143 ../src/fs.c:2505 ../src/inet.c:1823 ../src/mem.c:1284 msgid "Mouse Button Actions:\n" msgstr "" -#: ../src/battery.c:1144 ../src/fs.c:2499 ../src/gui.c:1026 ../src/inet.c:1824 +#: ../src/battery.c:1144 ../src/fs.c:2506 ../src/gui.c:1028 ../src/inet.c:1824 #: ../src/mail.c:3867 ../src/mail.c:3870 ../src/mem.c:1285 msgid "\tLeft " msgstr "" @@ -186,15 +186,15 @@ msgid "" " clicking anywhere on the Battery panel also toggles the display mode.\n" msgstr "" -#: ../src/battery.c:1164 ../src/clock.c:717 ../src/cpu.c:1374 -#: ../src/disk.c:1384 ../src/fs.c:2534 ../src/gui.c:1051 ../src/gui.c:1896 -#: ../src/mail.c:4215 ../src/mem.c:1307 ../src/proc.c:917 -#: ../src/sensors.c:2821 ../src/sensors.c:2856 ../src/uptime.c:277 +#: ../src/battery.c:1164 ../src/clock.c:719 ../src/cpu.c:1374 +#: ../src/disk.c:1444 ../src/fs.c:2541 ../src/gui.c:1053 ../src/gui.c:1898 +#: ../src/mail.c:4215 ../src/mem.c:1307 ../src/proc.c:917 ../src/sensors.c:2821 +#: ../src/sensors.c:2856 ../src/uptime.c:277 msgid "Options" msgstr "" -#: ../src/battery.c:1169 ../src/clock.c:723 ../src/clock.c:742 -#: ../src/disk.c:1397 ../src/plugins.c:1734 ../src/sensors.c:2754 +#: ../src/battery.c:1169 ../src/clock.c:725 ../src/clock.c:744 +#: ../src/disk.c:1458 ../src/plugins.c:1734 ../src/sensors.c:2754 msgid "Enable" msgstr "" @@ -230,15 +230,15 @@ msgstr "" msgid "Seconds between updates" msgstr "" -#: ../src/battery.c:1222 ../src/clock.c:758 ../src/cpu.c:1430 -#: ../src/disk.c:1430 ../src/fs.c:2531 ../src/inet.c:2011 ../src/mail.c:3906 -#: ../src/mem.c:1346 ../src/net.c:3086 ../src/proc.c:957 ../src/sensors.c:2723 +#: ../src/battery.c:1222 ../src/clock.c:760 ../src/cpu.c:1430 +#: ../src/disk.c:1500 ../src/fs.c:2538 ../src/inet.c:2011 ../src/mail.c:3906 +#: ../src/mem.c:1346 ../src/net.c:3198 ../src/proc.c:957 ../src/sensors.c:2723 #: ../src/uptime.c:274 msgid "Setup" msgstr "" -#: ../src/battery.c:1225 ../src/clock.c:785 ../src/cpu.c:1464 -#: ../src/disk.c:1452 ../src/inet.c:2041 ../src/mem.c:1418 ../src/net.c:3074 +#: ../src/battery.c:1225 ../src/clock.c:787 ../src/cpu.c:1470 +#: ../src/disk.c:1522 ../src/inet.c:2041 ../src/mem.c:1418 ../src/net.c:3186 #: ../src/proc.c:976 ../src/uptime.c:285 msgid "Launch Commands" msgstr "" @@ -247,78 +247,78 @@ msgstr "" msgid "Alerts check for percent capacity remaining." msgstr "" -#: ../src/battery.c:1251 ../src/clock.c:793 ../src/cpu.c:1487 -#: ../src/disk.c:1466 ../src/fs.c:2576 ../src/gui.c:1161 ../src/gui.c:1977 -#: ../src/inet.c:2054 ../src/mail.c:4283 ../src/mem.c:1436 ../src/net.c:3121 +#: ../src/battery.c:1251 ../src/clock.c:795 ../src/cpu.c:1493 +#: ../src/disk.c:1536 ../src/fs.c:2583 ../src/gui.c:1163 ../src/gui.c:1979 +#: ../src/inet.c:2054 ../src/mail.c:4283 ../src/mem.c:1436 ../src/net.c:3251 #: ../src/proc.c:988 ../src/sensors.c:2902 msgid "Info" msgstr "" -#: ../src/chart.c:1039 +#: ../src/chart.c:1051 msgid "Ag8" msgstr "" -#: ../src/chart.c:2472 +#: ../src/chart.c:2484 msgid "Control" msgstr "" -#: ../src/chart.c:2474 +#: ../src/chart.c:2486 msgid "Sequence..." msgstr "" -#: ../src/chart.c:2476 +#: ../src/chart.c:2488 msgid "Auto mode recalibrate" msgstr "" -#: ../src/chart.c:2483 +#: ../src/chart.c:2495 msgid "Auto mode sticks at peak value" msgstr "" -#: ../src/chart.c:2490 +#: ../src/chart.c:2502 msgid "1 2 5" msgstr "" -#: ../src/chart.c:2492 +#: ../src/chart.c:2504 msgid "1 1.5 2 3 5 7" msgstr "" -#: ../src/chart.c:2561 +#: ../src/chart.c:2573 msgid "GKrellM Chart Config" msgstr "" -#: ../src/chart.c:2582 +#: ../src/chart.c:2594 msgid "Line style" msgstr "" -#: ../src/chart.c:2589 +#: ../src/chart.c:2601 msgid "Inverted" msgstr "" -#: ../src/chart.c:2597 +#: ../src/chart.c:2609 msgid "Split view" msgstr "" -#: ../src/chart.c:2609 +#: ../src/chart.c:2621 msgid "Hide" msgstr "" -#: ../src/chart.c:2624 +#: ../src/chart.c:2636 msgid "Resolution per Grid" msgstr "" -#: ../src/chart.c:2644 +#: ../src/chart.c:2656 msgid "Auto" msgstr "" -#: ../src/chart.c:2656 +#: ../src/chart.c:2668 msgid "Number of Grids" msgstr "" -#: ../src/chart.c:2661 +#: ../src/chart.c:2673 msgid "0: Auto 1-5: Constant" msgstr "" -#: ../src/chart.c:2670 +#: ../src/chart.c:2682 msgid "Chart height" msgstr "" @@ -330,54 +330,54 @@ msgstr "" msgid "%a %e %b" msgstr "" -#: ../src/clock.c:691 +#: ../src/clock.c:693 msgid "Clock/Calendar Format Strings\n" msgstr "" -#: ../src/clock.c:692 +#: ../src/clock.c:694 msgid "" "The display format strings should contain strftime conversion\n" "characters and Pango text attribute markup strings.\n" msgstr "" -#: ../src/clock.c:695 +#: ../src/clock.c:697 msgid "" "For the clock, the provided default strings will display a 12 hour\n" "clock with seconds, a 12 hour clock with AM/PM indicator, or a 24 hour\n" "clock with seconds.\n" msgstr "" -#: ../src/clock.c:699 +#: ../src/clock.c:701 msgid "" "The special $A substitution variable expands to the current theme\n" "alternate color and is for use with the Pango \"foreground\" attribute.\n" msgstr "" -#: ../src/clock.c:719 ../src/clock.c:790 ../src/clock.c:853 +#: ../src/clock.c:721 ../src/clock.c:792 ../src/clock.c:855 msgid "Calendar" msgstr "" -#: ../src/clock.c:726 ../src/clock.c:745 +#: ../src/clock.c:728 ../src/clock.c:747 msgid "Display format string:" msgstr "" -#: ../src/clock.c:738 ../src/clock.c:804 ../src/clock.c:814 +#: ../src/clock.c:740 ../src/clock.c:806 ../src/clock.c:816 msgid "Clock" msgstr "" -#: ../src/clock.c:760 +#: ../src/clock.c:762 msgid "Clock Chime Commands" msgstr "" -#: ../src/clock.c:765 +#: ../src/clock.c:767 msgid "Hour" msgstr "" -#: ../src/clock.c:773 +#: ../src/clock.c:775 msgid "Quarter hour" msgstr "" -#: ../src/clock.c:783 +#: ../src/clock.c:785 msgid "Loop hour chime command" msgstr "" @@ -429,21 +429,21 @@ msgstr "" msgid "nice time" msgstr "" -#: ../src/cpu.c:981 ../src/cpu.c:1519 +#: ../src/cpu.c:981 ../src/cpu.c:1525 msgid "CPU" msgstr "" -#: ../src/cpu.c:982 ../src/fs.c:1308 ../src/mem.c:998 +#: ../src/cpu.c:982 ../src/fs.c:1315 ../src/mem.c:998 msgid "Percent Usage" msgstr "" -#: ../src/cpu.c:1343 ../src/disk.c:1351 ../src/gui.c:998 ../src/inet.c:1812 -#: ../src/mem.c:1254 ../src/net.c:2929 ../src/proc.c:894 +#: ../src/cpu.c:1343 ../src/disk.c:1411 ../src/gui.c:1000 ../src/inet.c:1812 +#: ../src/mem.c:1254 ../src/net.c:3036 ../src/proc.c:894 msgid "Chart Labels\n" msgstr "" -#: ../src/cpu.c:1344 ../src/disk.c:1352 ../src/inet.c:1813 ../src/mem.c:1255 -#: ../src/net.c:2930 ../src/proc.c:895 +#: ../src/cpu.c:1344 ../src/disk.c:1412 ../src/inet.c:1813 ../src/mem.c:1255 +#: ../src/net.c:3037 ../src/proc.c:895 msgid "Substitution variables for the format string for chart labels:\n" msgstr "" @@ -500,82 +500,96 @@ msgstr "" msgid "Composite CPU." msgstr "" -#: ../src/cpu.c:1421 ../src/cpu.c:1472 +#: ../src/cpu.c:1421 ../src/cpu.c:1478 #, c-format msgid "%s" msgstr "" -#: ../src/cpu.c:1433 ../src/disk.c:1433 ../src/inet.c:2023 ../src/mem.c:1349 -#: ../src/net.c:3089 ../src/proc.c:960 +#: ../src/cpu.c:1433 ../src/disk.c:1503 ../src/inet.c:2023 ../src/mem.c:1349 +#: ../src/net.c:3201 ../src/proc.c:960 msgid "Format String for Chart Labels" msgstr "" #: ../src/cpu.c:1446 -msgid "\\fu \\.$u\\n\\fs \\.$s" +msgid "\\f$L\\n$T" msgstr "" #: ../src/cpu.c:1448 -msgid "\\ww\\D2\\f\\au\\.$u\\D1\\f\\as\\.$s" +msgid "\\fu \\.$u\\n\\fs \\.$s" msgstr "" #: ../src/cpu.c:1450 -msgid "\\ww\\D3\\f\\au\\.$u\\D0\\f\\as\\.$s" +msgid "\\ww\\D2\\f\\au\\.$u\\D1\\f\\as\\.$s" msgstr "" #: ../src/cpu.c:1452 -msgid "\\ww\\D2\\f\\au\\.$u\\D1\\f\\as\\.$s\\D1\\f\\r$L" +msgid "\\ww\\D3\\f\\au\\.$u\\D0\\f\\as\\.$s" msgstr "" -#: ../src/disk.c:325 ../src/disk.c:1405 ../src/disk.c:1475 ../src/disk.c:1503 +#: ../src/cpu.c:1454 ../src/cpu.c:1456 +msgid "\\ww\\D2\\f\\au\\.$u\\D1\\f\\as\\.$s\\D3\\f\\r$L" +msgstr "" + +#: ../src/cpu.c:1458 +msgid "\\ww\\D3\\f$L\\n\\f\\as\\.$s\\n\\f\\au\\.$u" +msgstr "" + +#: ../src/disk.c:327 ../src/disk.c:1466 ../src/disk.c:1545 ../src/disk.c:1573 #: ../src/sensors.c:2305 ../src/sensors.c:2369 ../src/sysdeps/openbsd.c:410 msgid "Disk" msgstr "" -#: ../src/disk.c:765 ../src/disk.c:1227 +#: ../src/disk.c:769 ../src/disk.c:1244 msgid "Write bytes" msgstr "" -#: ../src/disk.c:766 ../src/disk.c:1224 +#: ../src/disk.c:770 ../src/disk.c:1241 msgid "Read bytes" msgstr "" -#: ../src/disk.c:777 +#: ../src/disk.c:781 msgid "Disk I/O blocks per sec" msgstr "" -#: ../src/disk.c:777 +#: ../src/disk.c:781 msgid "Disk I/O bytes per sec" msgstr "" -#: ../src/disk.c:893 ../src/net.c:2421 +#: ../src/disk.c:897 ../src/net.c:2473 msgid "Bytes per second" msgstr "" -#: ../src/disk.c:1091 -msgid "Composite chart combines data for all disks" +#: ../src/disk.c:1102 +msgid "Composite chart" msgstr "" -#: ../src/disk.c:1353 +#: ../src/disk.c:1413 msgid "\t$L the Disk label\n" msgstr "" -#: ../src/disk.c:1354 ../src/inet.c:1814 ../src/mem.c:1256 ../src/net.c:2931 +#: ../src/disk.c:1414 ../src/inet.c:1814 ../src/mem.c:1256 ../src/net.c:3038 msgid "\t$M maximum chart value\n" msgstr "" -#: ../src/disk.c:1355 +#: ../src/disk.c:1415 msgid "\t$T total read bytes + write bytes\n" msgstr "" -#: ../src/disk.c:1356 +#: ../src/disk.c:1416 msgid "\t$r read bytes\n" msgstr "" -#: ../src/disk.c:1357 +#: ../src/disk.c:1417 msgid "\t$w write bytes\n" msgstr "" -#: ../src/disk.c:1446 +#: ../src/disk.c:1471 ../src/fs.c:2285 ../src/fs.c:2407 ../src/inet.c:1873 +#: ../src/inet.c:1879 ../src/inet.c:1964 ../src/inet.c:1984 +#: ../src/sensors.c:2763 +msgid "Label" +msgstr "" + +#: ../src/disk.c:1516 msgid "\\f\\ww\\r\\f$M\\D2\\f\\ar\\. $r\\D1\\f\\aw\\. $w" msgstr "" @@ -591,78 +605,73 @@ msgstr "" msgid "$t - $U" msgstr "" -#: ../src/fs.c:889 +#: ../src/fs.c:896 msgid "GKrellM Mount Error" msgstr "" -#: ../src/fs.c:1577 +#: ../src/fs.c:1584 msgid "Primary" msgstr "" -#: ../src/fs.c:1591 ../src/fs.c:2311 +#: ../src/fs.c:1598 ../src/fs.c:2318 msgid "Secondary" msgstr "" -#: ../src/fs.c:1933 ../src/fs.c:2030 ../src/fs.c:2042 ../src/fs.c:2050 +#: ../src/fs.c:1940 ../src/fs.c:2037 ../src/fs.c:2049 ../src/fs.c:2057 msgid "Entry Error" msgstr "" -#: ../src/fs.c:1934 +#: ../src/fs.c:1941 msgid "" "At least one primary fs monitor must exist to click on in order to show\n" "secondary ones.\n" msgstr "" -#: ../src/fs.c:2032 +#: ../src/fs.c:2039 msgid "Both a label and a mount point must be entered." msgstr "" -#: ../src/fs.c:2043 +#: ../src/fs.c:2050 msgid "Both mount and umount commands must be entered." msgstr "" -#: ../src/fs.c:2051 +#: ../src/fs.c:2058 msgid "Missing ejectable device entry." msgstr "" -#: ../src/fs.c:2278 ../src/fs.c:2400 ../src/inet.c:1873 ../src/inet.c:1879 -#: ../src/inet.c:1964 ../src/inet.c:1984 ../src/sensors.c:2763 -msgid "Label" -msgstr "" - -#: ../src/fs.c:2287 ../src/fs.c:2404 +#: ../src/fs.c:2294 ../src/fs.c:2411 msgid "Mount Point" msgstr "" -#: ../src/fs.c:2318 +#: ../src/fs.c:2325 msgid "Show if mounted" msgstr "" -#: ../src/fs.c:2324 +#: ../src/fs.c:2331 msgid "Enable /etc/fstab mounting" msgstr "" -#: ../src/fs.c:2338 +#: ../src/fs.c:2345 msgid "Ejectable" msgstr "" -#: ../src/fs.c:2344 +#: ../src/fs.c:2351 msgid "Device" msgstr "" -#: ../src/fs.c:2359 +#: ../src/fs.c:2366 msgid "mount" msgstr "" -#: ../src/fs.c:2361 +#: ../src/fs.c:2368 msgid "umount" msgstr "" -#: ../src/fs.c:2427 +#: ../src/fs.c:2434 msgid "Mounting\n" msgstr "" -#: ../src/fs.c:2428 +#: ../src/fs.c:2435 msgid "" "Enter file system mount points to monitor and enter a label to describe\n" "the mount point. The krell shows the ratio of blocks used to total blocks\n" @@ -671,11 +680,11 @@ msgid "" "\n" msgstr "" -#: ../src/fs.c:2433 +#: ../src/fs.c:2440 msgid "\t1) Mounting using /etc/fstab: " msgstr "" -#: ../src/fs.c:2435 +#: ../src/fs.c:2442 msgid "" "If a mount point is in your\n" "\t/etc/fstab and you have mount permission then mount and umount\n" @@ -688,25 +697,25 @@ msgid "" "\teither of:\n" msgstr "" -#: ../src/fs.c:2445 +#: ../src/fs.c:2452 msgid "\t\t/dev/fd0 /mnt/floppy ext2 user,noauto,rw,exec 0 0\n" msgstr "" -#: ../src/fs.c:2446 +#: ../src/fs.c:2453 msgid "\tor\n" msgstr "" -#: ../src/fs.c:2447 +#: ../src/fs.c:2454 msgid "" "\t\t/dev/fd0 /mnt/floppy ext2 user,defaults 0 0\n" "\n" msgstr "" -#: ../src/fs.c:2449 +#: ../src/fs.c:2456 msgid "\t2) Mounting using custom commands: " msgstr "" -#: ../src/fs.c:2450 +#: ../src/fs.c:2457 msgid "" "If GKrellM is run as root or if\n" "\tyou have sudo permission to run the mount commands, then a custom\n" @@ -715,15 +724,15 @@ msgid "" "\tmethod. Example mount and umount entries using sudo:\n" msgstr "" -#: ../src/fs.c:2456 +#: ../src/fs.c:2463 msgid "\t\tsudo /bin/mount -t msdos /dev/fd0 /mnt/A\n" msgstr "" -#: ../src/fs.c:2457 +#: ../src/fs.c:2464 msgid "\t\tsudo /bin/umount /mnt/A\n" msgstr "" -#: ../src/fs.c:2459 +#: ../src/fs.c:2466 msgid "" "\tNotes: the mount point specified in a custom mount command\n" "\t(/mnt/A in this example) must be the same as entered in the\n" @@ -732,11 +741,11 @@ msgid "" "\n" msgstr "" -#: ../src/fs.c:2464 +#: ../src/fs.c:2471 msgid "Primary and Secondary Monitors\n" msgstr "" -#: ../src/fs.c:2465 +#: ../src/fs.c:2472 #, no-c-format msgid "" "File system monitors can be created as primary (always visible)\n" @@ -755,87 +764,87 @@ msgid "" "\n" msgstr "" -#: ../src/fs.c:2482 ../src/mem.c:1261 +#: ../src/fs.c:2489 ../src/mem.c:1261 msgid "Panel Labels\n" msgstr "" -#: ../src/fs.c:2483 +#: ../src/fs.c:2490 msgid "Substitution variables for the format string for file system panels:\n" msgstr "" -#: ../src/fs.c:2484 +#: ../src/fs.c:2491 msgid "\t$t total capacity\n" msgstr "" -#: ../src/fs.c:2485 +#: ../src/fs.c:2492 msgid "\t$u used space\n" msgstr "" -#: ../src/fs.c:2486 +#: ../src/fs.c:2493 msgid "\t$f free space\n" msgstr "" -#: ../src/fs.c:2487 +#: ../src/fs.c:2494 msgid "\t$U used %,\n" msgstr "" -#: ../src/fs.c:2488 ../src/mem.c:1270 +#: ../src/fs.c:2495 ../src/mem.c:1270 msgid "\t$F free %\n" msgstr "" -#: ../src/fs.c:2489 +#: ../src/fs.c:2496 msgid "\t$l the panel label\n" msgstr "" -#: ../src/fs.c:2491 +#: ../src/fs.c:2498 msgid "\t$D the mount point\n" msgstr "" -#: ../src/fs.c:2493 +#: ../src/fs.c:2500 msgid "\t$D the disk\n" msgstr "" -#: ../src/fs.c:2500 +#: ../src/fs.c:2507 msgid "click on a panel to scroll a programmable display\n" msgstr "" -#: ../src/fs.c:2501 +#: ../src/fs.c:2508 msgid "\t\tof file system capacities (default is total and free space).\n" msgstr "" -#: ../src/fs.c:2502 +#: ../src/fs.c:2509 msgid "\tWheel " msgstr "" -#: ../src/fs.c:2503 +#: ../src/fs.c:2510 msgid "Shows and hides the secondary file system monitors.\n" msgstr "" -#: ../src/fs.c:2521 +#: ../src/fs.c:2528 msgid "Panels" msgstr "" -#: ../src/fs.c:2539 +#: ../src/fs.c:2546 msgid "Use binary units (MiB, GiG) for reporting disk capacities." msgstr "" -#: ../src/fs.c:2545 +#: ../src/fs.c:2552 msgid "Auto eject when ejectable devices are unmounted" msgstr "" -#: ../src/fs.c:2554 +#: ../src/fs.c:2561 msgid "Seconds between data updates for local mounted file systems" msgstr "" -#: ../src/fs.c:2559 +#: ../src/fs.c:2566 msgid "Seconds between data updates for remote mounted file systems" msgstr "" -#: ../src/fs.c:2563 ../src/mem.c:1371 +#: ../src/fs.c:2570 ../src/mem.c:1371 msgid "Format String for Panel Labels" msgstr "" -#: ../src/fs.c:2590 +#: ../src/fs.c:2597 msgid "File System" msgstr "" @@ -848,7 +857,7 @@ msgstr "" msgid "comment" msgstr "" -#: ../src/gui.c:758 +#: ../src/gui.c:760 #, c-format msgid "" "GKrellM %d.%d.%d%s\n" @@ -861,7 +870,7 @@ msgid "" "Released under the GNU General Public License" msgstr "" -#: ../src/gui.c:774 +#: ../src/gui.c:776 msgid "" "Mac OS X code was contributed by:\n" "Ben Hines \n" @@ -869,53 +878,53 @@ msgid "" "Hajimu UMEMOTO " msgstr "" -#: ../src/gui.c:784 +#: ../src/gui.c:786 msgid "" "FreeBSD system dependent code was contributed by:\n" "Hajimu UMEMOTO " msgstr "" -#: ../src/gui.c:792 +#: ../src/gui.c:794 msgid "" "DragonFly system dependent code was contributed by:\n" "Joerg Sonnenberger " msgstr "" -#: ../src/gui.c:800 +#: ../src/gui.c:802 msgid "" "NetBSD system dependent code was contributed by:\n" "Anthony Mallet " msgstr "" -#: ../src/gui.c:808 +#: ../src/gui.c:810 msgid "" "Solaris system dependent code was contributed by:\n" "Daisuke Yabuki " msgstr "" -#: ../src/gui.c:816 +#: ../src/gui.c:818 msgid "" "Windows system dependent code was contributed by:\n" "Bill Nalen \n" "Stefan Gehn \n" msgstr "" -#: ../src/gui.c:984 +#: ../src/gui.c:986 msgid "Krells\n" msgstr "" -#: ../src/gui.c:985 +#: ../src/gui.c:987 msgid "" "Krells are the horizontally moving indicators below each chart and\n" "on meter style monitors. Depending on the monitor, they show fast\n" "response data rates, a percentage of some capacity, or something else.\n" msgstr "" -#: ../src/gui.c:989 +#: ../src/gui.c:991 msgid "Charts\n" msgstr "" -#: ../src/gui.c:990 +#: ../src/gui.c:992 msgid "" "The default for most charts is to automatically adjust the number of\n" "grid lines drawn and the resolution per grid so drawn data will be\n" @@ -924,82 +933,82 @@ msgid "" "some combination of the auto scaling modes may give best results.\n" msgstr "" -#: ../src/gui.c:996 ../src/gui.c:1022 ../src/sensors.c:2893 +#: ../src/gui.c:998 ../src/gui.c:1024 ../src/sensors.c:2893 msgid "See the README or do a \"man gkrellm\" for more information.\n" msgstr "" -#: ../src/gui.c:999 +#: ../src/gui.c:1001 msgid "Chart label format strings place text on charts using position codes:\n" msgstr "" -#: ../src/gui.c:1000 +#: ../src/gui.c:1002 msgid "\t\\t top left\n" msgstr "" -#: ../src/gui.c:1001 +#: ../src/gui.c:1003 msgid "\t\\b bottom left\n" msgstr "" -#: ../src/gui.c:1002 +#: ../src/gui.c:1004 msgid "\t\\n next line\n" msgstr "" -#: ../src/gui.c:1003 +#: ../src/gui.c:1005 msgid "\t\\N next line only if last string had visible characters\n" msgstr "" -#: ../src/gui.c:1004 +#: ../src/gui.c:1006 msgid "\t\\p previous line\n" msgstr "" -#: ../src/gui.c:1005 +#: ../src/gui.c:1007 msgid "\t\\c center the text\n" msgstr "" -#: ../src/gui.c:1006 +#: ../src/gui.c:1008 msgid "\t\\C begin drawing text at the center\n" msgstr "" -#: ../src/gui.c:1007 +#: ../src/gui.c:1009 msgid "\t\\r right justify\n" msgstr "" -#: ../src/gui.c:1008 +#: ../src/gui.c:1010 msgid "\t\\f use alternate font for the next string\n" msgstr "" -#: ../src/gui.c:1009 +#: ../src/gui.c:1011 msgid "\t\\w use the following string to define a field width\n" msgstr "" -#: ../src/gui.c:1010 +#: ../src/gui.c:1012 msgid "\t\\a draw left justified in the defined field width\n" msgstr "" -#: ../src/gui.c:1011 +#: ../src/gui.c:1013 msgid "\t\\e draw right justified in the defined field width\n" msgstr "" -#: ../src/gui.c:1012 +#: ../src/gui.c:1014 msgid "\t\\. no-op. Used to break a string into two strings.\n" msgstr "" -#: ../src/gui.c:1013 +#: ../src/gui.c:1015 msgid "" "\t\\D0 bottom of charts first data view (D2 for second data view ...)\n" msgstr "" -#: ../src/gui.c:1014 +#: ../src/gui.c:1016 msgid "\t\\D1 top of charts first data view (D3 for second data view ...)\n" msgstr "" -#: ../src/gui.c:1016 +#: ../src/gui.c:1018 msgid "" "\n" "Commands\n" msgstr "" -#: ../src/gui.c:1017 +#: ../src/gui.c:1019 msgid "" "\tMany monitors can be configured to launch commands. Just enter the\n" "\tcommand where you see a \"command\" entry and also a comment if you\n" @@ -1009,222 +1018,222 @@ msgid "" "\n" msgstr "" -#: ../src/gui.c:1025 ../src/mail.c:3866 +#: ../src/gui.c:1027 ../src/mail.c:3866 msgid "" "\n" "Mouse Button Actions:\n" msgstr "" -#: ../src/gui.c:1027 +#: ../src/gui.c:1029 msgid "clicking on charts will toggle a display of some extra info.\n" msgstr "" -#: ../src/gui.c:1028 ../src/gui.c:1030 +#: ../src/gui.c:1030 ../src/gui.c:1032 msgid "\tRight " msgstr "" -#: ../src/gui.c:1029 +#: ../src/gui.c:1031 msgid "clicking on charts brings up a chart configuration window.\n" msgstr "" -#: ../src/gui.c:1031 +#: ../src/gui.c:1033 msgid "clicking on many panels opens its monitor configuration window.\n" msgstr "" -#: ../src/gui.c:1060 +#: ../src/gui.c:1062 msgid "Hostname display" msgstr "" -#: ../src/gui.c:1066 +#: ../src/gui.c:1068 msgid "Short hostname" msgstr "" -#: ../src/gui.c:1071 +#: ../src/gui.c:1073 msgid "System name display" msgstr "" -#: ../src/gui.c:1076 +#: ../src/gui.c:1078 msgid "Remember screen location at exit and move to it at next startup" msgstr "" -#: ../src/gui.c:1082 +#: ../src/gui.c:1084 msgid "Allow multiple instances" msgstr "" -#: ../src/gui.c:1089 +#: ../src/gui.c:1091 msgid "" "Make gkrellm a topmost window (restart gkrellm for this to take effect)." msgstr "" -#: ../src/gui.c:1098 ../src/hostname.c:400 +#: ../src/gui.c:1100 ../src/hostname.c:400 msgid "gkrellmd server disconnect" msgstr "" -#: ../src/gui.c:1106 +#: ../src/gui.c:1108 msgid "Krell and LED updates per second." msgstr "" -#: ../src/gui.c:1112 +#: ../src/gui.c:1114 msgid "GKrellM width" msgstr "" -#: ../src/gui.c:1116 +#: ../src/gui.c:1118 msgid "Properties" msgstr "" -#: ../src/gui.c:1119 +#: ../src/gui.c:1121 msgid "Set sticky state" msgstr "" -#: ../src/gui.c:1122 +#: ../src/gui.c:1124 msgid "Set on top of other windows of the same type" msgstr "" -#: ../src/gui.c:1125 +#: ../src/gui.c:1127 msgid "Set below other windows of the same type" msgstr "" -#: ../src/gui.c:1132 +#: ../src/gui.c:1134 msgid "Set window type to be a dock or panel" msgstr "" -#: ../src/gui.c:1137 +#: ../src/gui.c:1139 msgid "Use window manager decorations" msgstr "" -#: ../src/gui.c:1141 +#: ../src/gui.c:1143 msgid "Do not include on a taskbar" msgstr "" -#: ../src/gui.c:1145 +#: ../src/gui.c:1147 msgid "Do not include on a pager" msgstr "" -#: ../src/gui.c:1155 +#: ../src/gui.c:1157 msgid "" "Some of these properties require a standards compliant window manager.\n" "You may have to restart gkrellm for them to take effect.\n" msgstr "" -#: ../src/gui.c:1545 +#: ../src/gui.c:1547 #, c-format msgid "%d total theme alternatives" msgstr "" -#: ../src/gui.c:1844 ../src/gui.c:1876 ../src/gui.c:2481 +#: ../src/gui.c:1846 ../src/gui.c:1878 ../src/gui.c:2483 msgid "Theme" msgstr "" -#: ../src/gui.c:1848 +#: ../src/gui.c:1850 msgid "Theme:" msgstr "" -#: ../src/gui.c:1858 +#: ../src/gui.c:1860 msgid "Author:" msgstr "" -#: ../src/gui.c:1904 +#: ../src/gui.c:1906 msgid "Track Gtk theme changes for similarly named themes" msgstr "" -#: ../src/gui.c:1911 +#: ../src/gui.c:1913 msgid "Default" msgstr "" -#: ../src/gui.c:1926 +#: ../src/gui.c:1928 msgid "Scale" msgstr "" -#: ../src/gui.c:1932 +#: ../src/gui.c:1934 msgid "Fonts" msgstr "" -#: ../src/gui.c:1935 +#: ../src/gui.c:1937 msgid "Large font" msgstr "" -#: ../src/gui.c:1947 ../src/gui.c:1961 ../src/gui.c:1974 +#: ../src/gui.c:1949 ../src/gui.c:1963 ../src/gui.c:1976 msgid "Browse" msgstr "" -#: ../src/gui.c:1949 +#: ../src/gui.c:1951 msgid "Normal font" msgstr "" -#: ../src/gui.c:1963 +#: ../src/gui.c:1965 msgid "Small font" msgstr "" -#: ../src/gui.c:1978 +#: ../src/gui.c:1980 #, c-format msgid "Untar your theme tar files in %s/%s" msgstr "" -#: ../src/gui.c:1987 +#: ../src/gui.c:1989 msgid "Download themes from the GKrellM theme site at www.muhri.net" msgstr "" -#: ../src/gui.c:2281 ../src/gui.c:2479 +#: ../src/gui.c:2283 ../src/gui.c:2481 msgid "Configuration" msgstr "" -#: ../src/gui.c:2309 +#: ../src/gui.c:2311 msgid "General" msgstr "" -#: ../src/gui.c:2314 +#: ../src/gui.c:2316 msgid "Builtins" msgstr "" -#: ../src/gui.c:2334 ../src/plugins.c:1721 +#: ../src/gui.c:2336 ../src/plugins.c:1721 msgid "Plugins" msgstr "" -#: ../src/gui.c:2339 +#: ../src/gui.c:2341 msgid "Themes" msgstr "" -#: ../src/gui.c:2344 +#: ../src/gui.c:2346 msgid "About" msgstr "" -#: ../src/gui.c:2369 +#: ../src/gui.c:2371 msgid "Monitors" msgstr "" -#: ../src/gui.c:2477 +#: ../src/gui.c:2479 msgid "Quit" msgstr "" -#: ../src/gui.c:2483 +#: ../src/gui.c:2485 msgid "Next" msgstr "" -#: ../src/gui.c:2485 +#: ../src/gui.c:2487 msgid "Prev" msgstr "" -#: ../src/gui.c:2487 +#: ../src/gui.c:2489 msgid "Theme next" msgstr "" -#: ../src/gui.c:2489 +#: ../src/gui.c:2491 msgid "Theme prev" msgstr "" -#: ../src/gui.c:2491 +#: ../src/gui.c:2493 msgid "Menu Popup" msgstr "" -#: ../src/gui.c:2493 +#: ../src/gui.c:2495 msgid "Reload Theme" msgstr "" -#: ../src/gui.c:2495 +#: ../src/gui.c:2497 msgid "Scale Theme Up" msgstr "" -#: ../src/gui.c:2497 +#: ../src/gui.c:2499 msgid "Scale Theme Dn" msgstr "" @@ -1738,49 +1747,49 @@ msgstr "" msgid "Error: Could not load all fonts.\n" msgstr "" -#: ../src/main.c:1703 +#: ../src/main.c:1704 msgid "GKrellM Introduction" msgstr "" -#: ../src/main.c:1781 +#: ../src/main.c:1782 msgid "" "usage: gkrellm [options]\n" "options:\n" msgstr "" -#: ../src/main.c:1783 +#: ../src/main.c:1784 msgid " -t, --theme theme_dir Select a theme directory.\n" msgstr "" -#: ../src/main.c:1784 +#: ../src/main.c:1785 msgid " -g, --geometry +x+y Position the window on the screen.\n" msgstr "" -#: ../src/main.c:1785 +#: ../src/main.c:1786 msgid " --wm Allow window manager decorations.\n" msgstr "" -#: ../src/main.c:1786 +#: ../src/main.c:1787 msgid "" " --m2 Left button side frame shading (for 2 btn " "mice).\n" msgstr "" -#: ../src/main.c:1787 +#: ../src/main.c:1788 msgid " --nt No transparency.\n" msgstr "" -#: ../src/main.c:1788 +#: ../src/main.c:1789 msgid " -w, --withdrawn Draw GKrellM in withdrawn mode.\n" msgstr "" -#: ../src/main.c:1789 +#: ../src/main.c:1790 msgid "" " -c, --config suffix Use alternate config files generated by\n" " appending \"suffix\" to config file names.\n" msgstr "" -#: ../src/main.c:1791 +#: ../src/main.c:1792 msgid "" " -f, --force-host-config Creates config files generated by appending the\n" " hostname to config file names. Subsequent runs\n" @@ -1792,51 +1801,51 @@ msgid "" " This option has no effect in client mode.\n" msgstr "" -#: ../src/main.c:1799 +#: ../src/main.c:1800 msgid "" " -s, --server hostname Run in client mode: connect to \"hostname\" and\n" " read monitor data from a gkrellmd server.\n" msgstr "" -#: ../src/main.c:1801 +#: ../src/main.c:1802 msgid "" " -P, --port server_port Use \"server_port\" for the server connection.\n" msgstr "" -#: ../src/main.c:1802 +#: ../src/main.c:1803 msgid "" " --nc No config mode prevents configuration changes.\n" msgstr "" -#: ../src/main.c:1803 +#: ../src/main.c:1804 msgid " --config-clean Clean out unused configs on config write.\n" msgstr "" -#: ../src/main.c:1804 +#: ../src/main.c:1805 msgid " --nolock Allow multiple gkrellm instances.\n" msgstr "" -#: ../src/main.c:1805 +#: ../src/main.c:1806 msgid "" " -p, --plugin plugin.so While developing, load your plugin under test.\n" msgstr "" -#: ../src/main.c:1806 +#: ../src/main.c:1807 msgid "" " --demo Force enabling of many monitors so themers can\n" " see everything. All config saving is inhibited.\n" msgstr "" -#: ../src/main.c:1809 +#: ../src/main.c:1810 msgid " -v, --version Print GKrellM version number and exit.\n" msgstr "" -#: ../src/main.c:1810 +#: ../src/main.c:1811 msgid "" " -d, --debug-level n Turn debugging on for selective code sections.\n" msgstr "" -#: ../src/main.c:1812 +#: ../src/main.c:1813 msgid "" "\n" "debug-level numbers are (bitwise OR to debug multiple sections):\n" @@ -1852,27 +1861,27 @@ msgid "" "\n" msgstr "" -#: ../src/main.c:1831 +#: ../src/main.c:1832 msgid "GKrellM" msgstr "" -#: ../src/main.c:2024 +#: ../src/main.c:2025 msgid "segmentation fault" msgstr "" -#: ../src/main.c:2026 +#: ../src/main.c:2027 msgid "floating point exception" msgstr "" -#: ../src/main.c:2028 +#: ../src/main.c:2029 msgid "aborted" msgstr "" -#: ../src/main.c:2031 +#: ../src/main.c:2032 msgid "initializing" msgstr "" -#: ../src/main.c:2215 +#: ../src/main.c:2216 #, c-format msgid "Bad arg: %s\n" msgstr "" @@ -2005,91 +2014,91 @@ msgstr "" msgid "$t - $u used $s sh $b bf $c ca" msgstr "" -#: ../src/net.c:690 +#: ../src/net.c:736 msgid "Received" msgstr "" -#: ../src/net.c:694 +#: ../src/net.c:740 msgid "Transmitted" msgstr "" -#: ../src/net.c:698 +#: ../src/net.c:744 msgid "Total" msgstr "" -#: ../src/net.c:706 +#: ../src/net.c:752 msgid "Connect Time" msgstr "" -#: ../src/net.c:723 +#: ../src/net.c:769 #, c-format msgid "%s Statistics" msgstr "" -#: ../src/net.c:743 +#: ../src/net.c:789 msgid "Daily" msgstr "" -#: ../src/net.c:744 +#: ../src/net.c:790 msgid "Date" msgstr "" -#: ../src/net.c:746 +#: ../src/net.c:792 msgid "Weekly" msgstr "" -#: ../src/net.c:748 +#: ../src/net.c:794 msgid "Week Ending" msgstr "" -#: ../src/net.c:750 +#: ../src/net.c:796 msgid "Monthly" msgstr "" -#: ../src/net.c:752 +#: ../src/net.c:798 msgid "Month" msgstr "" -#: ../src/net.c:809 +#: ../src/net.c:855 #, c-format msgid "get_connect_state changed from %d to %d (check=%d)\n" msgstr "" -#: ../src/net.c:852 +#: ../src/net.c:898 #, c-format msgid "set_timer_button_state from %d to %d (check=%d)\n" msgstr "" -#: ../src/net.c:865 +#: ../src/net.c:911 #, c-format msgid "update_timer_button net_timed old_state=%d new_state=%d\n" msgstr "" -#: ../src/net.c:926 +#: ../src/net.c:972 msgid " **** Stale pppd pppX.pid file detected!\n" msgstr "" -#: ../src/net.c:1526 ../src/net.c:2757 +#: ../src/net.c:1572 ../src/net.c:2819 msgid "tx bytes" msgstr "" -#: ../src/net.c:1527 ../src/net.c:2754 +#: ../src/net.c:1573 ../src/net.c:2816 msgid "rx bytes" msgstr "" -#: ../src/net.c:1538 +#: ../src/net.c:1584 msgid "rx/tx bytes per sec" msgstr "" -#: ../src/net.c:2795 ../src/net.c:2990 +#: ../src/net.c:2857 ../src/net.c:3097 msgid "none" msgstr "" -#: ../src/net.c:2894 +#: ../src/net.c:3001 msgid "Timer Button\n" msgstr "" -#: ../src/net.c:2895 +#: ../src/net.c:3002 msgid "" "\tThe timer button may be used as a stand alone timer with start and\n" "\tstop commands, but it is usually linked to a dial up net interface\n" @@ -2097,7 +2106,7 @@ msgid "" "\tbutton colors can show connect states:\n" msgstr "" -#: ../src/net.c:2905 +#: ../src/net.c:3012 msgid "" "Standby state is while the modem phone line is locked while\n" "\tppp is connecting, and the on state is the ppp link connected.\n" @@ -2106,18 +2115,18 @@ msgid "" "\tuse /dev/modem, then you can configure an alternative with:\n" msgstr "" -#: ../src/net.c:2910 +#: ../src/net.c:3017 msgid "\t\tln -s /var/lock/LCK..ttySx ~/.gkrellm2/LCK..modem\n" msgstr "" -#: ../src/net.c:2911 +#: ../src/net.c:3018 msgid "" "\twhere ttySx is the tty device your modem uses. The ppp on\n" "\tstate is detected by the existence of /var/run/pppX.pid and\n" "\tthe time stamp of this file is the base for the on line time.\n" msgstr "" -#: ../src/net.c:2917 +#: ../src/net.c:3024 msgid "" "The timer button standby state is not applicable to isdn\n" "\tinterfaces that are always routed. The on state is isdn on line\n" @@ -2126,107 +2135,115 @@ msgid "" "\tstate\n" msgstr "" -#: ../src/net.c:2932 +#: ../src/net.c:3039 msgid "\t$T receive + transmit bytes\n" msgstr "" -#: ../src/net.c:2933 +#: ../src/net.c:3040 msgid "\t$r receive bytes\n" msgstr "" -#: ../src/net.c:2934 +#: ../src/net.c:3041 msgid "\t$t transmit bytes\n" msgstr "" -#: ../src/net.c:2935 +#: ../src/net.c:3042 msgid "\t$O cumulative receive + transmit bytes\n" msgstr "" -#: ../src/net.c:2936 +#: ../src/net.c:3043 msgid "\t$i cumulative receive bytes\n" msgstr "" -#: ../src/net.c:2937 +#: ../src/net.c:3044 msgid "\t$o cumulative transmit bytes\n" msgstr "" -#: ../src/net.c:2938 +#: ../src/net.c:3045 msgid "\t$L the optional chart label\n" msgstr "" -#: ../src/net.c:2939 +#: ../src/net.c:3046 msgid "\t$I the net interface name\n" msgstr "" -#: ../src/net.c:2941 +#: ../src/net.c:3048 msgid "" "The cumulative variables may have a 'd', 'w', or 'm' qualifier for\n" "daily, weekly, or monthly totals. For example: $Ow for a\n" "cumulative weekly receive + transmit bytes.\n" msgstr "" -#: ../src/net.c:2967 +#: ../src/net.c:3074 msgid "Timer Button" msgstr "" -#: ../src/net.c:2973 +#: ../src/net.c:3080 msgid "Enable timer button" msgstr "" -#: ../src/net.c:2978 +#: ../src/net.c:3085 msgid "Show seconds" msgstr "" -#: ../src/net.c:3002 +#: ../src/net.c:3109 msgid "Interface to link to the timer button" msgstr "" -#: ../src/net.c:3013 +#: ../src/net.c:3120 msgid "Start Command" msgstr "" -#: ../src/net.c:3024 +#: ../src/net.c:3131 msgid "Stop Command" msgstr "" -#: ../src/net.c:3038 +#: ../src/net.c:3150 #, c-format msgid "Enable %s" msgstr "" -#: ../src/net.c:3055 +#: ../src/net.c:3167 msgid "Force chart to be always shown even if interface is not routed." msgstr "" -#: ../src/net.c:3068 +#: ../src/net.c:3180 msgid "Optional label for this interface." msgstr "" -#: ../src/net.c:3100 +#: ../src/net.c:3212 msgid "\\f\\ww\\c\\f$M\\n\\f\\at\\.$t\\n\\f\\ar\\.$r\\b\\c\\f$L" msgstr "" -#: ../src/net.c:3102 +#: ../src/net.c:3214 msgid "\\f\\ww\\c\\f$M\\n\\f\\at\\.$o\\n\\f\\ar\\.$i\\b\\c\\f$L" msgstr "" -#: ../src/net.c:3104 +#: ../src/net.c:3216 msgid "\\f\\ww\\c\\f$M\\D2\\f\\ar\\.$r\\D1\\f\\at\\.$t\\b\\c\\f$L" msgstr "" -#: ../src/net.c:3113 +#: ../src/net.c:3223 +msgid "Ignore Net Interfaces" +msgstr "" + +#: ../src/net.c:3225 +msgid "Space separated list of patterns.\n" +msgstr "" + +#: ../src/net.c:3243 msgid "Start day for cumulative monthly transmit and receive bytes" msgstr "" -#: ../src/net.c:3118 +#: ../src/net.c:3248 msgid "Enable new interfaces" msgstr "" -#: ../src/net.c:3137 +#: ../src/net.c:3267 msgid "Net" msgstr "" -#: ../src/net.c:3201 +#: ../src/net.c:3332 msgid "Net Timer" msgstr "" @@ -2532,6 +2549,6 @@ msgstr "" msgid "Warning: -w flag is ignored when the window dock type is set" msgstr "" -#: ../src/sysdeps/linux.c:3982 +#: ../src/sysdeps/linux.c:4057 msgid "Use nvclock for NVIDIA GPU temperatures" msgstr "" diff --git a/server/gkrellmd.h b/server/gkrellmd.h index e5bd665..873a245 100644 --- a/server/gkrellmd.h +++ b/server/gkrellmd.h @@ -109,7 +109,8 @@ #define GKRELLMD_VERSION_MAJOR 2 #define GKRELLMD_VERSION_MINOR 3 #define GKRELLMD_VERSION_REV 8 -#define GKRELLMD_EXTRAVERSION "-pre1" +#define GKRELLMD_EXTRAVERSION "" +//#define GKRELLMD_EXTRAVERSION "-pre1" #define GKRELLMD_CHECK_VERSION(major,minor,rev) \ (GKRELLMD_VERSION_MAJOR > (major) || \ diff --git a/server/win32-resource.rc b/server/win32-resource.rc index cce64f5..bdd365f 100644 --- a/server/win32-resource.rc +++ b/server/win32-resource.rc @@ -11,7 +11,7 @@ // LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 1 VERSIONINFO - FILEVERSION 2,3,7,0 + FILEVERSION 2,3,8,0 PRODUCTVERSION 0,0,0,0 FILEOS VOS_NT_WINDOWS32 FILETYPE VFT_APP @@ -22,12 +22,12 @@ BEGIN BEGIN VALUE "CompanyName", "" VALUE "FileDescription", "GKrellM Daemon" - VALUE "FileVersion", "2.3.7" + VALUE "FileVersion", "2.3.8" VALUE "InternalName", "gkrellmd" VALUE "LegalCopyright", "Copyright (C) 1999-2016 Bill Wilson" VALUE "OriginalFilename", "gkrellmd.exe" VALUE "ProductName", "GKrellM" - VALUE "ProductVersion", "2.3.7" + VALUE "ProductVersion", "2.3.8" END END BLOCK "VarFileInfo" diff --git a/src/battery.c b/src/battery.c index 949a773..bacd3cd 100644 --- a/src/battery.c +++ b/src/battery.c @@ -171,11 +171,11 @@ read_battery_demo(void) static gboolean setup_battery_interface(void) { - if (!read_battery_data && !_GK.client_mode && gkrellm_sys_battery_init()) - read_battery_data = gkrellm_sys_battery_read_data; + if (!read_battery_data && !_GK.client_mode && gkrellm_sys_battery_init()) + read_battery_data = gkrellm_sys_battery_read_data; if (_GK.demo) read_battery_data = read_battery_demo; - return read_battery_data ? TRUE : FALSE; + return read_battery_data ? TRUE : FALSE; } void diff --git a/src/chart.c b/src/chart.c index b36baaa..d289870 100644 --- a/src/chart.c +++ b/src/chart.c @@ -698,7 +698,7 @@ gkrellm_alloc_chartdata(GkrellmChart *cp) cd->w = w; if (cd->data) g_free(cd->data); - cd->data = (gint *) g_new0(gint, w); + cd->data = (gulong *) g_new0(gulong, w); cd->maxval = 0; cp->position = cp->w - 1; cp->tail = cp->position; @@ -847,8 +847,14 @@ gkrellm_store_chartdatav(GkrellmChart *cp, gulong total, va_list args) } /* Prime the pump. Also handle data wrap around or reset to zero. */ - if (cd->current < cd->previous || !cp->primed) + cd->wrap = 0; + if (!cp->primed) cd->previous = cd->current; + else if (cd->current < cd->previous) + { + cd->wrap = (gulong) -1 - cd->previous; + cd->previous = 0; + } } if (total < cp->previous_total || !cp->primed) cp->previous_total = total; /* Wrap around, this store won't scale */ @@ -871,7 +877,7 @@ gkrellm_store_chartdatav(GkrellmChart *cp, gulong total, va_list args) { cd = (GkrellmChartdata *) list->data; cd->discard = cd->data[cp->tail]; - cd->data[n] = (gint)(cd->current - cd->previous); + cd->data[n] = (gulong)(cd->current - cd->previous) + cd->wrap; cd->previous = cd->current; /* If using totals, scale the stored data to range between 0 and the diff --git a/src/disk.c b/src/disk.c index 65aa705..4a60f34 100644 --- a/src/disk.c +++ b/src/disk.c @@ -49,7 +49,8 @@ typedef struct { gchar *name, - *label; /* Possibly translated name */ + *default_label, /* Possibly translated name */ + *label; GtkWidget *vbox; GtkWidget *enable_button; GkrellmChart *chart; @@ -139,7 +140,7 @@ lookup_disk_by_name(const gchar *name) | written into the config. XXX remove this eventually. */ if ( (disk == composite_disk || assign_method == DISK_ASSIGN_NTH) - && !strcmp(name, disk->label)) + && !strcmp(name, disk->default_label)) return disk; } return NULL; @@ -152,6 +153,7 @@ disk_new(const gchar *name, const gchar *label) disk = g_new0(DiskMon, 1); disk->name = g_strdup(name); + disk->default_label = g_strdup(label); disk->label = g_strdup(label); disk->launch.command = g_strdup(""); disk->launch.tooltip_comment = g_strdup(""); @@ -944,11 +946,11 @@ save_disk_config(FILE *f) have_enabled_subdisks = (disk->subdisk == -1) ? any_enabled_subdisks(list->next) : FALSE; - fprintf(f, "%s device %s %d %d %d %d %d %d %d\n", + fprintf(f, "%s device %s %d %d %d %d %d %d %d %s\n", DISK_CONFIG_KEYWORD, disk->name, disk->major, disk->minor, disk->order, disk->enabled, disk->extra_info, disk->subdisk, - have_enabled_subdisks); + have_enabled_subdisks, disk->label); if (*(disk->launch.command) != '\0') fprintf(f, "%s launch %s %s\n", DISK_CONFIG_KEYWORD, disk->name, disk->launch.command); @@ -974,7 +976,7 @@ load_disk_config(gchar *arg) { DiskMon *disk = NULL; gchar config[32], item[CFG_BUFSIZE], - name[CFG_BUFSIZE], item1[CFG_BUFSIZE]; + name[CFG_BUFSIZE], item1[CFG_BUFSIZE], disk_label[64]; gint major, minor, enabled, extra, order, subdisk = -1; gint n; gboolean enabled_subdisks = TRUE; @@ -997,10 +999,10 @@ load_disk_config(gchar *arg) | if user changes kernel version. */ if ( config_assign_method == assign_method - && sscanf(item1, "%d %d %d %d %d %d %d", + && (n = sscanf(item1, "%d %d %d %d %d %d %d %63s", &major, &minor, &order, &enabled, &extra, - &subdisk, &enabled_subdisks) >= 5 + &subdisk, &enabled_subdisks, disk_label)) >= 5 ) { /* A disk in the config may not have been found in the above @@ -1023,6 +1025,8 @@ load_disk_config(gchar *arg) { disk->enabled = enabled; disk->extra_info = extra; + if (n >= 8) + gkrellm_dup_string(&disk->label, disk_label); } } return; @@ -1054,11 +1058,14 @@ enum { NAME_COLUMN, ENABLE_COLUMN, + LABEL_COLUMN, DISK_COLUMN, + VISIBLE_COLUMN, IMAGE_COLUMN, N_COLUMNS }; +static GtkTreeModel *disk_model; static GtkTreeView *treeview; static GtkTreeRowReference *row_reference; @@ -1082,7 +1089,9 @@ create_model(void) tree = gtk_tree_store_new(N_COLUMNS, G_TYPE_STRING, G_TYPE_BOOLEAN, + G_TYPE_STRING, G_TYPE_POINTER, + G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF); for (list = disk_mon_list; list; ) { @@ -1090,16 +1099,20 @@ create_model(void) gtk_tree_store_append(tree, &iter, NULL); if (list == disk_mon_list) gtk_tree_store_set(tree, &iter, - NAME_COLUMN, _("Composite chart combines data for all disks"), + NAME_COLUMN, _("Composite chart"), ENABLE_COLUMN, disk->enabled, + LABEL_COLUMN, disk->label, DISK_COLUMN, disk, + VISIBLE_COLUMN, TRUE, -1); else { gtk_tree_store_set(tree, &iter, - NAME_COLUMN, disk->label, + NAME_COLUMN, disk->default_label, ENABLE_COLUMN, disk->enabled, + LABEL_COLUMN, disk->label, DISK_COLUMN, disk, + VISIBLE_COLUMN, TRUE, -1); if (disk->alert) gtk_tree_store_set(tree, &iter, @@ -1112,9 +1125,11 @@ create_model(void) break; gtk_tree_store_append(tree, &citer, &iter); gtk_tree_store_set(tree, &citer, - NAME_COLUMN, disk->name, + NAME_COLUMN, disk->default_label, ENABLE_COLUMN, disk->enabled, + LABEL_COLUMN, disk->label, DISK_COLUMN, disk, + VISIBLE_COLUMN, TRUE, -1); if (disk->alert) gtk_tree_store_set(tree, &citer, @@ -1139,7 +1154,7 @@ add_launch_entry(GtkWidget *vbox, DiskMon *disk) { disk->launch_table = gkrellm_gtk_launcher_table_new(vbox, 1); gkrellm_gtk_config_launcher(disk->launch_table, 0, &disk->launch_entry, - &disk->tooltip_entry, disk->label, + &disk->tooltip_entry, disk->default_label, &disk->launch); g_signal_connect(G_OBJECT(disk->launch_entry), "changed", G_CALLBACK(cb_launch_entry), disk); @@ -1249,6 +1264,49 @@ cb_set_alert(GtkWidget *button, gpointer data) gkrellm_alert_config_window(&disk->alert); } +static void +label_edited_cb(GtkCellRendererText *cell, gchar *path_string, + gchar *new_label, gpointer data) + { + GtkTreeModel *model; + GtkTreeIter iter; + GtkTreePath *path; + DiskMon *disk; + + model = disk_model; + path = gtk_tree_path_new_from_string(path_string); + gtk_tree_model_get_iter(model, &iter, path); + gtk_tree_path_free(path); + + gtk_tree_model_get(model, &iter, + DISK_COLUMN, &disk, + -1); + if (!*new_label) + new_label = disk->default_label; + gtk_tree_store_set(GTK_TREE_STORE(model), &iter, + LABEL_COLUMN, new_label, -1); + + if (strcmp(new_label, disk->label)) + { + gkrellm_dup_string(&disk->label, new_label); + gkrellm_panel_configure(disk->chart->panel, disk->label, + gkrellm_panel_style(style_id)); + gkrellm_panel_create(disk->vbox, mon_disk, disk->chart->panel); + } +#if 0 + if (gkrellm_locale_dup_string(&s->name, new_label, &s->name_locale)) + { + gkrellm_sensors_rebuild(s->type == SENSOR_TEMPERATURE, + s->type == SENSOR_FAN, s->type == SENSOR_VOLTAGE); + if (s->alert) + { + g_free(s->alert->name); + s->alert->name = g_strdup(s->name); +// gkrellm_reset_alert(s->alert); + } + } +#endif + } static void cb_tree_selection_changed(GtkTreeSelection *selection, gpointer data) @@ -1391,6 +1449,7 @@ create_disk_tab(GtkWidget *tab_vbox) gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0); model = create_model(); + disk_model = model; treeview = GTK_TREE_VIEW(gtk_tree_view_new_with_model(model)); gtk_tree_view_set_rules_hint(treeview, TRUE); @@ -1408,6 +1467,15 @@ create_disk_tab(GtkWidget *tab_vbox) renderer, "text", NAME_COLUMN, NULL); + renderer = gtk_cell_renderer_text_new(); + gtk_tree_view_insert_column_with_attributes(treeview, -1, _("Label"), + renderer, + "text", LABEL_COLUMN, + "editable", TRUE, + "visible", VISIBLE_COLUMN, + NULL); + g_signal_connect(G_OBJECT(renderer), "edited", + G_CALLBACK(label_edited_cb), NULL); renderer = gtk_cell_renderer_pixbuf_new(); gtk_tree_view_insert_column_with_attributes(treeview, -1, "", diff --git a/src/gkrellm.h b/src/gkrellm.h index 8ba2b93..98f2aac 100644 --- a/src/gkrellm.h +++ b/src/gkrellm.h @@ -109,7 +109,8 @@ #define GKRELLM_VERSION_MAJOR 2 #define GKRELLM_VERSION_MINOR 3 #define GKRELLM_VERSION_REV 8 -#define GKRELLM_EXTRAVERSION "-pre1" +#define GKRELLM_EXTRAVERSION "" +//#define GKRELLM_EXTRAVERSION "-pre1" #define GKRELLM_CHECK_VERSION(major,minor,rev) \ (GKRELLM_VERSION_MAJOR > (major) || \ @@ -721,11 +722,12 @@ typedef struct gchar *label; gulong current, previous, + wrap, discard; gboolean monotonic; GkrellmChartlayer layer; /* The image + grid for this data layer */ GdkBitmap *data_bitmap; /* Draw data here, use as clipmask for layer*/ - gint *data; + gulong *data; gint draw_style; gboolean inverted; @@ -742,7 +744,7 @@ typedef struct gint y, /* Each data layer draws at an offset y and */ h, /* within height h of its parent GkrellmChart*/ w; /* Width of data allocated. */ - gint maxval; + gulong maxval; } GkrellmChartdata; diff --git a/src/gui.c b/src/gui.c index b3f8d2f..bcd73c5 100644 --- a/src/gui.c +++ b/src/gui.c @@ -2483,9 +2483,9 @@ static GtkActionEntry ui_entries[] = { "ThemeMenuAction", NULL, N_("Theme"), NULL, NULL, NULL }, { "ThemeAltNextAction", NULL, N_("Next"), - "Page_Up", NULL, G_CALLBACK(cb_load_theme) }, + "Page_Up", NULL, G_CALLBACK(cb_load_theme) }, { "ThemeAltPrevAction", NULL, N_("Prev"), - "Page_Down", NULL, G_CALLBACK(cb_load_theme) }, + "Page_Down", NULL, G_CALLBACK(cb_load_theme) }, { "ThemeNextAction", NULL, N_("Theme next"), "Page_Up", NULL, G_CALLBACK(cb_load_theme) }, { "ThemePrevAction", NULL, N_("Theme prev"), diff --git a/src/mem.c b/src/mem.c index 88081f6..2f85935 100644 --- a/src/mem.c +++ b/src/mem.c @@ -708,16 +708,16 @@ create_chart(MeminfoChart *mc, gint first_create) mc->out_cd = gkrellm_add_default_chartdata(cp, _("Swap Out")); mc->in_cd = gkrellm_add_default_chartdata(cp, _("Swap In")); gkrellm_set_draw_chart_function(cp, refresh_chart, mc); - gkrellm_chartconfig_fixed_grids_connect(cp->config, - setup_scaling, mc); - gkrellm_chartconfig_grid_resolution_connect(cp->config, - setup_scaling, mc); - gkrellm_chartconfig_grid_resolution_adjustment(cp->config, TRUE, - 0, (gfloat) MIN_GRID_RES, (gfloat) MAX_GRID_RES, 0, 0, 0, 70); - gkrellm_chartconfig_grid_resolution_label(cp->config, - _("Swap in/out pages per sec")); - if (gkrellm_get_chartconfig_grid_resolution(cp->config) < MIN_GRID_RES) - gkrellm_set_chartconfig_grid_resolution(cp->config, DEFAULT_GRID_RES); + gkrellm_chartconfig_fixed_grids_connect(cp->config, + setup_scaling, mc); + gkrellm_chartconfig_grid_resolution_connect(cp->config, + setup_scaling, mc); + gkrellm_chartconfig_grid_resolution_adjustment(cp->config, TRUE, + 0, (gfloat) MIN_GRID_RES, (gfloat) MAX_GRID_RES, 0, 0, 0, 70); + gkrellm_chartconfig_grid_resolution_label(cp->config, + _("Swap in/out pages per sec")); + if (gkrellm_get_chartconfig_grid_resolution(cp->config) < MIN_GRID_RES) + gkrellm_set_chartconfig_grid_resolution(cp->config, DEFAULT_GRID_RES); gkrellm_alloc_chartdata(cp); diff --git a/src/sysdeps/linux.c b/src/sysdeps/linux.c index 469b98b..2ee616e 100644 --- a/src/sysdeps/linux.c +++ b/src/sysdeps/linux.c @@ -64,7 +64,7 @@ os_release(gint major, gint minor, gint rev) { if ( os_major > major || (os_major == major && os_minor > minor) - || (os_major == os_major && os_minor == minor && os_rev >= rev) + || (os_major == major && os_minor == minor && os_rev >= rev) ) return TRUE; return FALSE; @@ -304,8 +304,12 @@ gkrellm_sys_cpu_init(void) /* ===================================================================== */ /* Disk monitor interface */ +// http://stackoverflow.com/questions/1823743/knowing-a-device-special-file-major-and-minor-numbers-in-linux +// https://fedoraproject.org/wiki/BlockDeviceOddities + #define PROC_PARTITIONS_FILE "/proc/partitions" #define PROC_DISKSTATS_FILE "/proc/diskstats" +#define PROC_DEVICES_FILE "/proc/devices" #include #if ! defined (SCSI_DISK0_MAJOR) @@ -314,9 +318,6 @@ gkrellm_sys_cpu_init(void) #if ! defined (MD_MAJOR) #define MD_MAJOR 9 #endif -#if !defined(DM_MAJOR) -#define DM_MAJOR 254 -#endif #if !defined(IDE4_MAJOR) #define IDE4_MAJOR 56 @@ -413,24 +414,79 @@ static struct _disk_name_map {"cc6d", COMPAQ_CISS_MAJOR + 6, 16, '0' }, /* 110: c6d0-c6d15 */ {"cc7d", COMPAQ_CISS_MAJOR + 7, 16, '0' }, /* 111: c7d0-c7d15 */ - {"dm-", DM_MAJOR, 256, '0' }, /* 254: dm-0 - dm-255 */ + {"dm-", 0 /* dynamic major */, 256, '0' }, /* 254: dm-0 - dm-255 */ + {"mdp", 0 /* dynamic major */, 256, '0' }, /* 254: dm-0 - dm-255 */ {"fd", FLOPPY_MAJOR, 0, '0' } /* 2: fd0-fd3 */ }; -static gboolean -disk_major_ok(gint major) +#define DISK_MAJOR_STATUS_SIZE 512 +#define MAJOR_STATUS_UNKNOWN 0 +#define MAJOR_STATUS_KNOWN 1 +#define MAJOR_STATUS_VIRTUAL 2 +#define MAJOR_STATUS_REJECT 4 + +static guchar disk_major_status[DISK_MAJOR_STATUS_SIZE]; + + /* Init table with known disk major numbers. + */ +static void +disk_major_status_init(void) { - gint i; + int i, m; for (i = 0; i < sizeof(disk_name_map) / sizeof(struct _disk_name_map); ++i) { - if (major == disk_name_map[i].major) - return TRUE; + if (i >= DISK_MAJOR_STATUS_SIZE) + continue; + m = disk_name_map[i].major; + disk_major_status[m] = MAJOR_STATUS_KNOWN; } - return FALSE; } + /* For unknown disk major numbers, check /proc/devices to see if this + | major number is an expected dynamic virtual disk. Otherwise + | the disk will be rejected. + */ +static gboolean +dynamic_disk_major(int major) + { + FILE *f; + gboolean result = FALSE; + int m; + gchar buf[128], name_buf[32]; + + if ((f = fopen(PROC_DEVICES_FILE, "r")) != NULL) + { + while ((fgets(buf, sizeof(buf), f)) != NULL) + { + if (sscanf(buf, "%d %31s", &m, name_buf) != 2) + continue; + if ( ( !strcmp(name_buf, "device-mapper") + || !strcmp(name_buf, "mdp") + ) + && m == major + && m < DISK_MAJOR_STATUS_SIZE + ) + { + disk_major_status[m] = (MAJOR_STATUS_KNOWN | MAJOR_STATUS_VIRTUAL); + result = TRUE; + gkrellm_debug(DEBUG_SYSDEP, + "Adding dynamic disk major: %d %s\n", major, name_buf); + break; + } + } + fclose(f); + } + if (result == FALSE) + { + gkrellm_debug(DEBUG_SYSDEP, "Unknown disk major number: %d\n", major); + disk_major_status[major] = MAJOR_STATUS_REJECT; + } + return result; + } + + gchar * gkrellm_sys_disk_name_from_device(gint device_number, gint unit_number, gint *order) @@ -509,8 +565,8 @@ disk_get_device_name(gint major, gint minor, gchar *disk, gchar *partition) { /* Have a simple name like hda, hda1, sda, ... */ d = disk; p = partition; - while (*d && *p && *d++ == *p++) - ; + while (*d && *p && *d == *p) + ++d, ++p; /* Check that p points to valid partition number. Should be a digit | unless disk is mmcblkN where the partition number has a leading 'p' @@ -564,8 +620,7 @@ linux_read_proc_diskstats(void) gchar buf[1024], part[128], disk[128]; gint major, minor, n; gulong rd, wr, rd1, wr1; - gboolean inactivity_override, is_MD; - static gboolean initial_read = TRUE; + gboolean is_virtual; if (!f && (f = fopen(PROC_DISKSTATS_FILE, "r")) == NULL) return; @@ -588,34 +643,40 @@ linux_read_proc_diskstats(void) wr = wr1; } - /* Make sure all real disks get reported (so they will be added to the - | disk monitor in order) the first time this function is called. - | Use disk_major_ok() instead of simply initial_read until I'm sure - | I'm testing for all the right "major" exclusions. - | Note: disk_get_device_name() assumes "part[]" retains results from + if ( major >= DISK_MAJOR_STATUS_SIZE + || disk_major_status[major] == MAJOR_STATUS_REJECT + ) + continue; + + /* Check for a dynamic major disk number, assumed to be virtual + */ + if ( disk_major_status[major] == MAJOR_STATUS_UNKNOWN + && !dynamic_disk_major(major) + ) + continue; + + /* Note: disk_get_device_name() assumes "part[]" retains results from | previous calls and that disk/subdisk parsing will be in order | (ie hda will be encountered before hda1). */ - inactivity_override = initial_read ? disk_major_ok(major) : FALSE; - if ( (n != 7 && n != 6) - || (rd == 0 && wr == 0 && !inactivity_override) + || (rd == 0 && wr == 0) || major == LVM_BLK_MAJOR || major == NBD_MAJOR || major == RAMDISK_MAJOR || major == LOOP_MAJOR - || major == DM_MAJOR || !disk_get_device_name(major, minor, disk, part) ) continue; - is_MD = (major == MD_MAJOR); + is_virtual = ( major == MD_MAJOR + || (disk_major_status[major] & MAJOR_STATUS_VIRTUAL) + ); if (part[0] == '\0') - gkrellm_disk_assign_data_by_name(disk, 512 * rd, 512 * wr, is_MD); + gkrellm_disk_assign_data_by_name(disk, 512 * rd, 512 * wr, is_virtual); else gkrellm_disk_subdisk_assign_data_by_name(part, disk, 512 * rd, 512 * wr); } rewind(f); - initial_read = FALSE; } /* /proc/partitions can have diskstats in 2.4 kernels or in 2.5+ it's just @@ -730,6 +791,8 @@ gkrellm_sys_disk_init(void) } if (f) fclose(f); + disk_major_status_init(); + gkrellm_debug(DEBUG_SYSDEP, "diskstats=%d partition_stats=%d sysfs_stats=%d\n", have_diskstats, have_partition_stats, have_sysfs_stats); diff --git a/src/win32-resource.rc b/src/win32-resource.rc index f22b69b..1ff076c 100644 --- a/src/win32-resource.rc +++ b/src/win32-resource.rc @@ -18,7 +18,7 @@ IDI_ICON3 ICON "gkrellm.ico" // LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 1 VERSIONINFO - FILEVERSION 2,3,7,0 + FILEVERSION 2,3,8,0 PRODUCTVERSION 0,0,0,0 FILEOS VOS_NT_WINDOWS32 FILETYPE VFT_APP @@ -29,12 +29,12 @@ BEGIN BEGIN VALUE "CompanyName", "" VALUE "FileDescription", "GKrellM" - VALUE "FileVersion", "2.3.7" + VALUE "FileVersion", "2.3.8" VALUE "InternalName", "gkrellm" VALUE "LegalCopyright", "Copyright (C) 1999-2016 Bill Wilson" VALUE "OriginalFilename", "gkrellm.exe" VALUE "ProductName", "GKrellM" - VALUE "ProductVersion", "2.3.7" + VALUE "ProductVersion", "2.3.8" END END BLOCK "VarFileInfo"