
System Load Viewer
Source (link to git-repo or to original if based on someone elses unmodified work):
To install, look at the INSTALL file inside the archive, or do:
tar -jxf /path/to/system_status-version.tar.gz
cd system_status
mkdir build
cd build
cmake ../ -DCMAKE_INSTALL_PREFIX=/path/to/kde4
make
sudo make install
then run
kquitapp plasma && plasma
Todo:
* Implement bendie's request.
* Change to KDE 4.2's data engines.
0.6.0
- Change to use the systemmonitor data engine
- Thanks to Dominik Haumann for his help getting the plasmoid ready for this release!
0.5.1
- Add option for different types of backgrounds.
- Update drawing code to better support multi-processors, later.
- Add Oxygen style look, thanks to Hans Dembinski and his fork at http://www.kde-look.org/content/show.php/SystemMonitorNG?content=94746 .
0.5
- Thanks to the help of Angel Luis Jimenez Martinez, the applet's colour can now be configured. There is also a configuration item to change the bars to the horizontal, for use in the panel.
0.4
- Aspect Ratio is better kept in panel, but is not maintained while on the desktop.
0.3
- Now fully supports KDE 4.1 (SVN).
0.2
- Now looks at the average cpu usage instead of only the first cpu.
- No longers steals tons of space on the taskbar.
0.1
- Inital public release.
Ratings & Comments
45 Comments
Why is "CPU separately" greyed out in Fedora 27?
I have frequency scaling enabled on my CPUs. This has provided some additional information on two bugs. I am using the mouse hovering to provide details as to what the System Load Viewer thinks the CPU load is numerically. 1 - When the CPU load is 100%, the System Load Viewer often thinks the load is 0% and draws the bars accordingly. Maybe the load is calculating higher than 100% due to rounding errors and being adjusted to zero during exception handling instead of being clamped to 100%. I know the load is 100% because my frequency scaling is running at maximum. 2 - The load does not take frequency scaling into account even though the text displaying in the hover box is aware of it. If the CPU is running at 50% of the max frequency and 50% loading, the bar should be drawn at 25% instead of 50%. Thanks for the great start on this widget. I hope some time can be devoted to getting these fixed.
I get buggy drawing of the bars. It doesn't do it all the time, but frequent enough at seemingly random intervals. http://img192.imageshack.us/img192/5870/slvrenderbugs.png Basically the bar is shifted vertically by some amount. Also bars are partially drawn over by other bars. I'm currently using version 0.6 on OpenSuse 11.2
Nice little app - though I do see one bug under KDE4.4rc1: If you don't choose to show the CPUs individually, the CPU value appears wrong (way too high) and doesn't seem to fluctuate with system load.
Works like a charm, thanks :D Two point: 1.) The screenshot does not contain the new visual style. I would not want to use the version from the screenshot cause it breaks my stylisch KDE 4.2 :D 2.) I like Hans Dembinski's design even better. As it seems he is only forking cause of the design, maybe a merge of both projects would do miracles ;-)
Works like a charm, thanks :D Two point: 1.) The screenshot does not contain the new visual style. I would not want to use the version from the screenshot cause it breaks my stylisch KDE 4.2 :D 1.) I like Hans Dembinski's design even better. As it seems he is only forking cause of the design, maybe a merge of both projects would do miracles ;-)
Hi, thanks for the new version. Is really great.
Thanks
Won't compile with latest 4.2 Linking CXX shared module ../lib/plasma-applet_system_status.so CMakeFiles/plasma-applet_system_status.dir/system_monitor.o: In function `systemMonitor::qt_metacast(char const*)': /tmp/tgz/system_status/build/applet/system_monitor.moc:59: undefined reference to `Plasma::Applet::qt_metacast(char const*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o: In function `systemMonitor::constraintsEvent(QFlags<Plasma::Constraint>)': /tmp/tgz/system_status/applet/system_monitor.cpp:67: undefined reference to `Plasma::Applet::setAspectRatioMode(Plasma::AspectRatioMode)' /tmp/tgz/system_status/applet/system_monitor.cpp:65: undefined reference to `Plasma::Applet::setAspectRatioMode(Plasma::AspectRatioMode)' /tmp/tgz/system_status/applet/system_monitor.cpp:72: undefined reference to `Plasma::Applet::backgroundHints() const' /tmp/tgz/system_status/applet/system_monitor.cpp:73: undefined reference to `Plasma::Applet::setBackgroundHints(QFlags<Plasma::Applet::BackgroundHint>)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o: In function `~systemMonitor': /tmp/tgz/system_status/applet/system_monitor.cpp:40: undefined reference to `Plasma::Applet::hasFailedToLaunch() const' /tmp/tgz/system_status/applet/system_monitor.cpp:46: undefined reference to `Plasma::Applet::~Applet()' /tmp/tgz/system_status/applet/system_monitor.cpp:40: undefined reference to `Plasma::Applet::hasFailedToLaunch() const' /tmp/tgz/system_status/applet/system_monitor.cpp:46: undefined reference to `Plasma::Applet::~Applet()' /tmp/tgz/system_status/applet/system_monitor.cpp:40: undefined reference to `Plasma::Applet::hasFailedToLaunch() const' /tmp/tgz/system_status/applet/system_monitor.cpp:46: undefined reference to `Plasma::Applet::~Applet()' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o: In function `systemMonitor': /tmp/tgz/system_status/applet/system_monitor.cpp:32: undefined reference to `Plasma::Applet::Applet(QObject*, QList<QVariant> const&)' /tmp/tgz/system_status/applet/system_monitor.cpp:34: undefined reference to `Plasma::Applet::setHasConfigurationInterface(bool)' /tmp/tgz/system_status/applet/system_monitor.cpp:32: undefined reference to `Plasma::Applet::Applet(QObject*, QList<QVariant> const&)' /tmp/tgz/system_status/applet/system_monitor.cpp:34: undefined reference to `Plasma::Applet::setHasConfigurationInterface(bool)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o: In function `systemMonitor::configUpdated()': /tmp/tgz/system_status/applet/system_monitor.cpp:135: undefined reference to `Plasma::Applet::config() const' /tmp/tgz/system_status/applet/system_monitor.cpp:137: undefined reference to `Plasma::Applet::backgroundHints() const' /tmp/tgz/system_status/applet/system_monitor.cpp:138: undefined reference to `Plasma::Applet::setBackgroundHints(QFlags<Plasma::Applet::BackgroundHint>)' /tmp/tgz/system_status/applet/system_monitor.cpp:139: undefined reference to `Plasma::Applet::backgroundHints() const' /tmp/tgz/system_status/applet/system_monitor.cpp:183: undefined reference to `Plasma::Applet::configNeedsSaving()' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o: In function `systemMonitor::readConfig()': /tmp/tgz/system_status/applet/system_monitor.cpp:364: undefined reference to `Plasma::Applet::config() const' /tmp/tgz/system_status/applet/system_monitor.cpp:378: undefined reference to `Plasma::Applet::setBackgroundHints(QFlags<Plasma::Applet::BackgroundHint>)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o: In function `systemMonitor::init()': /tmp/tgz/system_status/applet/system_monitor.cpp:52: undefined reference to `Plasma::Applet::dataEngine(QString const&) const' /tmp/tgz/system_status/applet/system_monitor.cpp:53: undefined reference to `Plasma::Applet::dataEngine(QString const&) const' /tmp/tgz/system_status/applet/system_monitor.cpp:54: undefined reference to `Plasma::DataEngine::connectSource(QString const&, QObject*, unsigned int, Plasma::IntervalAlignment) const' /tmp/tgz/system_status/applet/system_monitor.cpp:55: undefined reference to `Plasma::DataEngine::connectSource(QString const&, QObject*, unsigned int, Plasma::IntervalAlignment) const' /tmp/tgz/system_status/applet/system_monitor.cpp:56: undefined reference to `Plasma::DataEngine::connectSource(QString const&, QObject*, unsigned int, Plasma::IntervalAlignment) const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o: In function `systemMonitor::qt_metacall(QMetaObject::Call, int, void**)': /tmp/tgz/system_status/build/applet/system_monitor.moc:65: undefined reference to `Plasma::Applet::qt_metacall(QMetaObject::Call, int, void**)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o: In function `systemMonitor::createConfigurationInterface(KConfigDialog*)': /tmp/tgz/system_status/applet/system_monitor.cpp:91: undefined reference to `Plasma::Applet::backgroundHints() const' /tmp/tgz/system_status/applet/system_monitor.cpp:126: undefined reference to `Plasma::Applet::icon() const' /tmp/tgz/system_status/applet/system_monitor.cpp:127: undefined reference to `Plasma::Applet::icon() const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro+0x0): undefined reference to `Plasma::Applet::staticMetaObject' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x20): undefined reference to `Plasma::Applet::eventFilter(QObject*, QEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x24): undefined reference to `Plasma::Applet::timerEvent(QTimerEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x40): undefined reference to `Plasma::Applet::type() const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x44): undefined reference to `Plasma::Applet::paint(QPainter*, QStyleOptionGraphicsItem const*, QWidget*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x48): undefined reference to `Plasma::Applet::paintWindowFrame(QPainter*, QStyleOptionGraphicsItem const*, QWidget*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x50): undefined reference to `Plasma::Applet::shape() const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x58): undefined reference to `Plasma::Applet::sizeHint(Qt::SizeHint, QSizeF const&) const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x60): undefined reference to `Plasma::Applet::itemChange(QGraphicsItem::GraphicsItemChange, QVariant const&)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x7c): undefined reference to `Plasma::Applet::focusInEvent(QFocusEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x94): undefined reference to `Plasma::Applet::resizeEvent(QGraphicsSceneResizeEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xa0): undefined reference to `Plasma::Applet::hoverLeaveEvent(QGraphicsSceneHoverEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xb4): undefined reference to `Plasma::Applet::save(KConfigGroup&) const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xb8): undefined reference to `Plasma::Applet::restore(KConfigGroup&)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xbc): undefined reference to `Plasma::Applet::formFactor() const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xc0): undefined reference to `Plasma::Applet::location() const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xc8): undefined reference to `Plasma::Applet::contextualActions()' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xcc): undefined reference to `Plasma::Applet::isPopupShowing() const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xd0): undefined reference to `Plasma::Applet::addAssociatedWidget(QWidget*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xd4): undefined reference to `Plasma::Applet::removeAssociatedWidget(QWidget*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xd8): undefined reference to `Plasma::Applet::initExtenderItem(Plasma::ExtenderItem*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xe0): undefined reference to `Plasma::Applet::destroy()' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xe4): undefined reference to `Plasma::Applet::showConfigurationInterface()' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xec): undefined reference to `Plasma::Applet::configChanged()' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xf0): undefined reference to `Plasma::Applet::saveState(KConfigGroup&) const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xf8): undefined reference to `Plasma::Applet::sceneEventFilter(QGraphicsItem*, QEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0xfc): undefined reference to `Plasma::Applet::mouseMoveEvent(QGraphicsSceneMouseEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x100): undefined reference to `Plasma::Applet::hoverEnterEvent(QGraphicsSceneHoverEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x11c): undefined reference to `non-virtual thunk to Plasma::Applet::shape() const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x134): undefined reference to `non-virtual thunk to Plasma::Applet::paint(QPainter*, QStyleOptionGraphicsItem const*, QWidget*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x138): undefined reference to `non-virtual thunk to Plasma::Applet::type() const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x13c): undefined reference to `non-virtual thunk to Plasma::Applet::sceneEventFilter(QGraphicsItem*, QEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x158): undefined reference to `non-virtual thunk to Plasma::Applet::focusInEvent(QFocusEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x160): undefined reference to `non-virtual thunk to Plasma::Applet::hoverEnterEvent(QGraphicsSceneHoverEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x168): undefined reference to `non-virtual thunk to Plasma::Applet::hoverLeaveEvent(QGraphicsSceneHoverEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x178): undefined reference to `non-virtual thunk to Plasma::Applet::mouseMoveEvent(QGraphicsSceneMouseEvent*)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x190): undefined reference to `non-virtual thunk to Plasma::Applet::itemChange(QGraphicsItem::GraphicsItemChange, QVariant const&)' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTV13systemMonitor[vtable for systemMonitor]+0x1bc): undefined reference to `non-virtual thunk to Plasma::Applet::sizeHint(Qt::SizeHint, QSizeF const&) const' CMakeFiles/plasma-applet_system_status.dir/system_monitor.o:(.data.rel.ro._ZTI13systemMonitor[typeinfo for systemMonitor]+0x8): undefined reference to `typeinfo for Plasma::Applet' collect2: ld returned 1 exit status make[2]: *** [lib/plasma-applet_system_status.so] Error 1 make[1]: *** [applet/CMakeFiles/plasma-applet_system_status.dir/all] Error 2 make: *** [all] Error 2
Change the main CMakeList.txt: Delete or comment the required plasma libraries line. Now part of kde4.2 In the applet and data_engine folders: Change the CMakeLists.txt to use in linking: KDE4_PLASMA_LIBS.
I have one suggestion, can you add possibility to change the free color (m_freeResourceColor) in settings? Even better would be possibility to change transparency of the color.
Have a look at the System Load Viewer, see [1] for more details. Here the free resources are drawn already in a white gradient. But it should also be configurable I guess :-) [1] http://dhaumann.blogspot.com/2009/01/system-load-viewer.html
Funny, I thought that the System Load Viewer is only renamed and upgraded this plasmoid. So the my problem with the not transparent background is connected to the System Load Viewer. I don now how it works in this plasmoid because I can't get it work.
I'm not sure what you mean. Do you mean the white part of the bars on the top?
yes, exactly
I agree, looks not perfect, but that's just a matter of changing the drawing code. Besides that, there are already quite a few features and it is already now ready to be moved to kdeplasma-addons for KDE 4.3 :)
Hi, thanks for it. I've made an ebuild: system_status-0.5.1.ebuild http://bugs.gentoo.org/show_bug.cgi?id=250769
CMake Error at /usr/share/kde4/apps/cmake/modules/FindQt4.cmake:527 (MESSAGE): Could NOT find QtGlobal header Call Stack (most recent call first): /usr/share/kde4/apps/cmake/modules/FindKDE4Internal.cmake:283 (find_package) /usr/share/cmake/Modules/FindKDE4.cmake:81 (FIND_PACKAGE) CMakeLists.txt:3 (find_package) thanks,
Hi, i made a patch to support multiprocessor/multicore machines. The patch is against release 0.5, because there seems to be no public vcs of this plasmoid. The patch is located here: http://kra-se.de/plasmoid_system_status-0.5_multiprocessor-p2.diff.gz
... and now the next iteration: http://kra-se.de/plasmoid_system_status-0.5_multiprocessor-p3.diff.gz
On this plasmoid I can see only background, the coloured stripes are only 1px high. Do you have any idea why? I have tried compile it again but it didn't help. I'm using KDE 4,1 from svn on gentoo
I get this error: CMake Error at /usr/share/cmake-2.6/Modules/FindKDE4.cmake:72 (MESSAGE): ERROR: cmake/modules/FindKDE4Internal.cmake not found in /home/user/.kde4/share/apps;/usr/share/kde4/apps What gives? What should I put here, does anybody know? -DCMAKE_INSTALL_PREFIX= Thanks.
OK, got it I installed kdelibs5-dev
I add your plasmoid to my debian repo deb http://amarok2deb.co.cc/debian unstalbe main http://www.amarok2deb.co.cc/debian/dists/unstable/main/binary-i386/plasmoid-systemstatus_0.5_i386.deb bye
Very cool that you can now configure the colours. Thanks! Now if the background was transparent or also configurable so that it would blend nicely with the theme it would be perfect :)