Page 1 of 5
(74 posts)

I'm taking my first steps into KDE development by porting the Systemloadviewer plasmoid to Plasma5. It's a minimalist system monitor applet consisting of three bars representing CPU-load, memory usage and swap usage.

Here's some pictures of the current state:

I'm wondering if there are any guidelines concerning the color chooser? Now it's just a Label and a colored Rectangle, which opens a ColorDialog when clicked on.

Furthermore the Breeze theme seems to be using flat design, so I'm thinking gradients for the bars should be made optional, but not the default setting.

Here's what the plasmoid and it's settings used to look like:

I will be using the old settings as reference, but I think I will just put them all under General settings in the port.

myrjola wrote:I'm wondering if there are any guidelines concerning the color chooser? Now it's just a Label and a colored Rectangle, which opens a ColorDialog when clicked on.

We had the discussion on color picker concerning the KCM design. The picker was very similar to checkboxes and @andytosan changed it for a better discrimination. But unfortunately I cannot find the thread.

About the systemload plasmoid (SPL): I'm using it to get feedback on what happens at the system, why an application is not responding for example. Of course, I can see when CPUs are running hot. And as well the SPL shows the memory which is an indicator to swapping. But additionally I want to know for the same reason if there is heavy access to the file system (HDDs have noisy trashing but not SSD), if the network access is on the edge, if the system gets overheated or battery power is low (and CPU clocked down therefore), etc. Some information are shown in different plasmoids. But wouldn't it be nice to have all information in one place? Not in terms of one integrative value but nicely visualized (at least CPU and memory need a separator).

Additionally we should implement the new callout now. The current SPL tooltip is useful to see the CPU speed. What extra information it have to contain depends on the SPL scope.

Heiko Tietze wrote:We had the discussion on color picker concerning the KCM design. The picker was very similar to checkboxes and @andytosan changed it for a better discrimination. But unfortunately I cannot find the thread.

Heiko Tietze wrote:About the systemload plasmoid (SPL): I'm using it to get feedback on what happens at the system, why an application is not responding for example. Of course, I can see when CPUs are running hot. And as well the SPL shows the memory which is an indicator to swapping. But additionally I want to know for the same reason if there is heavy access to the file system (HDDs have noisy trashing but not SSD), if the network access is on the edge, if the system gets overheated or battery power is low (and CPU clocked down therefore), etc. Some information are shown in different plasmoids. But wouldn't it be nice to have all information in one place? Not in terms of one integrative value but nicely visualized (at least CPU and memory need a separator).

The KDE4-version of the plasmoid opened KSysGuard on left-click. I think it worked well when I needed more extensive system monitoring, so I will also port that functionality.

Heiko Tietze wrote:Additionally we should implement the new callout now. The current SPL tooltip is useful to see the CPU speed. What extra information it have to contain depends on the SPL scope.

Heiko Tietze wrote:About the systemload plasmoid (SPL): I'm using it to get feedback on what happens at the system, why an application is not responding for example. Of course, I can see when CPUs are running hot. And as well the SPL shows the memory which is an indicator to swapping. But additionally I want to know for the same reason if there is heavy access to the file system (HDDs have noisy trashing but not SSD), if the network access is on the edge, if the system gets overheated or battery power is low (and CPU clocked down therefore), etc. Some information are shown in different plasmoids. But wouldn't it be nice to have all information in one place? Not in terms of one integrative value but nicely visualized (at least CPU and memory need a separator).

There is the System Monitor Plasmoid which can show all this information in one place (I have one of those on the desktop of any computer running Plasma). The systemloadviewer was meant to be very small and lightweight, so I'd keep those two separate.

colomar wrote:There is the System Monitor Plasmoid which can show all this information in one place

Sysmon works not in the panel, and the graphs look completely different (which is the same for hardware temp that I use). At least we need a common design, at best applications that are based on use-cases Actually, I agree that these two should be different because when I click on sysload with CPU and mem infos it opens the task manager and for sysmon I expect hardware infos (kinfocenter).

Well first of all I think we should get rid of the swap option. The only time I've ever seen a modern computer use swap was when it was hit with a nasty bug. So that leaves the memory and cpu. It looks a little lopsided in column format as the memory, of course, is always used, and the cpu is not. So my idea is to encapsulate it all in a circle, with the memory on the outside and the cpu on the inside, like so:

davidwright wrote:Well first of all I think we should get rid of the swap option. The only time I've ever seen a modern computer use swap was when it was hit with a nasty bug. So that leaves the memory and cpu.

I think some warning that the system is swapping would be in order. Especially developers using virtual machines or memory intensive software can run out of memory. But I think swapping warnings would be possible to incorporate in your new design.

davidwright wrote:It looks a little lopsided in column format as the memory, of course, is always used, and the cpu is not. So my idea is to encapsulate it all in a circle, with the memory on the outside and the cpu on the inside, like so:

I also like the idea of balance very much. I'll start to experiment on this design. The old one was so trivial, so it could be left in as a "Classic mode".

alake wrote:wonder how difficult that might be implement?

I think getting the basic idea working wouldn't be that hard. But making it pleasant for the eye can be difficult for a programmer .

was it useful to use the colours from the system setting as default and you can change.

I have thought about using the system color scheme as default. The danger is that the plasmoid could look awful with certain themes. I'll have to experiment when I have implemented the new design from davidwright.

davidwright wrote:Well first of all I think we should get rid of the swap option. The only time I've ever seen a modern computer use swap was when it was hit with a nasty bug. So that leaves the memory and cpu. It looks a little lopsided in column format as the memory, of course, is always used, and the cpu is not. So my idea is to encapsulate it all in a circle, with the memory on the outside and the cpu on the inside, like so:...

I disabled swap space and run into trouble with two virtual machines. Your pie chart is pretty nice. But I have eight CPUs (4+4), so one single thread application takes 12.5% in total to block the system. It would be necessary to show this clearly. On the other hand details may be shown in a callout since a comprehensive diagram makes sense to keep the panel plain.

One thing I would like to see would be the option to turn off certain monitors, or have the sensors shown be user-configurable. I don't think forcing swap or no swap is the right way to look at it - monitoring CPU or RAM is fairly technical, so I don't think having show/hide options for what specifically will be shown is asking too much of our users - and technically, if done correctly, we could obsolete several individual widgets and drop some excess code.

I broke up the CPU by core in these mockups - representing a dual-core machine. One addition to the plasmoid not in the current monitor is the grey line drawn above the bar-style charts: This would be treated like an equaliser, so if something peaked, this bar would show the peak value before sliding back down. There's also an outline on the top coloured part of the bars so the colouring doesn't bleed into the background. Not exactly groundbreaking - but it fits with the no-nonsense direction and text-oriented display style.

Unified sensor; it's what we have now, but with labels. The labels might autohide depending on the scale of the widget.

As two individual widgets.

Sans labels.

As a chart. As mentioned, this could be CPU heavy, so it would probably have a low refresh rate, but if any clever programmers can implement this with low/no overhead, mockup is here.

With a little more polish it would be beautiful, especially in larger sizes. However it doesn't work as well in a panel, which is for me the most important usage for this Plasmoid. The main problem is that in small sizes the circle design is much harder to read than the original version.

I'm in love with Kver's simple and elegant design. I like the idea of hiding the labels when the size gets smaller. Probably a good point to do this would be when the widest label would be wider than the bar. Another thing to think about would be if the labels should scale or have a fixed font size. The equalizer for the CPU is an interesting idea, but I don't see much use for it.

The splitting of CPUs work for dual core machines and for eight cores we could just add more columns. The charts should never become flatter than squares.

I would love to see a mockup for the panel as well. Does it make sense to have the borders and padding there?

Kver wrote:One thing I would like to see would be the option to turn off certain monitors, or have the sensors shown be user-configurable. I don't think forcing swap or no swap is the right way to look at it - monitoring CPU or RAM is fairly technical, so I don't think having show/hide options for what specifically will be shown is asking too much of our users - and technically, if done correctly, we could obsolete several individual widgets and drop some excess code.

If I understood correctly you mean there should be options for which monitors to show. This shouldn't be too hard to implement and we would start with the unified widget with all monitors. Then the user could go to the settings and toggle visibility for cpu, memory or swap through checkboxes. I think deactivating a monitor should grey out it's color settings as well.