papylhomme / diskmonitor Goto Github PK
View Code? Open in Web Editor NEWKDE tools to monitor SMART devices and MDRaid health status
License: GNU General Public License v2.0
KDE tools to monitor SMART devices and MDRaid health status
License: GNU General Public License v2.0
i compiled 0.3.4 on kubuntu 20.04 and am stuck with an emtpy widget on the desktop. in ~/.xsession-errors
i see:
file:///usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/configMonitoring.qml:47:9: QML RowLayout: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
file:///usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/configAppearance.qml:27:1: QML QQuickItem*: StackView has detected conflicting anchors. Transitions may not execute properly.
how can this be fixed?
I'd like to contribute a Slovenian translation. I requested the new language on Transifex some time ago and it was added. But when I tried "Join team" I got no response. Could you please add me to the translation team? Thanks.
The main app works.
The widget throws the following error:
Error loading QML file: file:///usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/main.qml:22:1: module "QtQuick.Layouts" version 1.11 is not installed
Originally posted by @csehszlovakze in #20 (comment)
When refreshing the details panel, the main view and the general health status are not updated. This may lead to a panel displaying errors for the drive/raid while the main part of the UI is still being happy with the old data.
I'm running kubuntu 17.04. I ran through the install process as follows:
mkdir build
cd build/
$ cmake .. -DCMAKE_INSTALL_PREFIX=$(kf5-config --prefix) -DCMAKE_BUILD_TYPE=Release -DKDE_INSTALL_USE_QT_SYS_PATHS=ON
$ make
[ 2%] Automatic moc for target libdiskmonitor
Generating moc compilation libdiskmonitor_automoc.cpp
[ 2%] Built target libdiskmonitor_automoc
Scanning dependencies of target libdiskmonitor
[ 4%] Building CXX object libdiskmonitor/CMakeFiles/libdiskmonitor.dir/storageunit.cpp.o
[ 6%] Building CXX object libdiskmonitor/CMakeFiles/libdiskmonitor.dir/drive.cpp.o
...
[100%] Generating org.papylhomme.diskmonitor-plasmoids-metadata.json
About to parse service type file "plasma-applet.desktop"
Found property definition "X-Plasma-API" with type "QString"
Found property definition "X-Plasma-RootPath" with type "QString"
Found property definition "X-Plasma-MainScript" with type "QString"
Found property definition "X-Plasma-ContainmentType" with type "QString"
Found property definition "X-Plasma-DropMimeTypes" with type "QStringList"
Found property definition "X-Plasma-DropUrlPatterns" with type "QStringList"
Found property definition "X-Plasma-NotificationArea" with type "QString"
Found property definition "X-Plasma-NotificationAreaCategory" with type "QString"
Found property definition "X-Plasma-DBusActivationService" with type "QString"
Found property definition "X-KDE-ParentApp" with type "QString"
Found property definition "X-Plasma-Provides" with type "QStringList"
Found property definition "X-Plasma-ConfigPlugins" with type "QStringList"
Found property definition "X-Plasma-StandAloneApp" with type "bool"
Found property definition "X-Plasma-RequiredExtensions" with type "QStringList"
Found property definition "NoDisplay" with type "bool"
Unknown property type for key "X-Plasma-RemoteLocation" -> falling back to string
Generated "/home/sbeck/diskmonitor/build/notifier/applet/org.papylhomme.diskmonitor-plasmoids-metadata.json"
[100%] Built target org.papylhomme.diskmonitor-plasmoids-metadata-json
[100%] Built target i18n
$ sudo make install
[ 2%] Automatic moc for target libdiskmonitor
[ 2%] Built target libdiskmonitor_automoc
[ 15%] Built target libdiskmonitor
[ 17%] Automatic moc for target libsettings
[ 17%] Built target libsettings_automoc
[ 45%] Built target libsettings
[ 47%] Automatic moc for target diskmonitor
[ 47%] Built target diskmonitor_automoc
[ 86%] Built target diskmonitor
[ 89%] Automatic moc for target diskmonitor_qmlplugins
[ 89%] Built target diskmonitor_qmlplugins_automoc
[ 97%] Built target diskmonitor_qmlplugins
[100%] Built target org.papylhomme.diskmonitor-plasmoids-metadata-json
[100%] Built target i18n
Install the project...
-- Install configuration: "Release"
-- Up-to-date: /usr/share/config.kcfg/diskmonitor.kcfg
-- Installing: /usr/bin/diskmonitor
-- Up-to-date: /usr/share/icons/diskmonitor.svg
-- Up-to-date: /usr/share/applications/diskmonitor.desktop
-- Installing: /org/papylhomme/diskmonitor/libdiskmonitor_qmlplugins.so
-- Up-to-date: /org/papylhomme/diskmonitor/qmldir
-- Up-to-date: /usr/share/knotifications5/diskmonitor.notifyrc
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/metadata.desktop
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/config
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/config/config.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/config/main.xml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/configAppearance.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/configMonitoring.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/ColorPickerButton.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/IconPickerButton.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/main.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/IconProvider.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/StorageUnitIcons.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/StorageUnitBig.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/PopupDialog.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/StorageUnitMinimalist.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/CompactRepresentation.qml
-- Up-to-date: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/StorageUnitSmall.qml
-- Installing: /usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/metadata.json
-- Installing: /usr/share/metainfo/org.papylhomme.diskmonitor.appdata.xml
-- Up-to-date: /usr/share/kservices5/plasma-applet-org.papylhomme.diskmonitor.desktop
-- Installing: /usr/share/locale/fr/LC_MESSAGES/diskmonitor.mo
-- Installing: /usr/share/locale/fr/LC_MESSAGES/plasma_applet_org.papylhomme.diskmonitor.mo
$
As you can see it put the plasma qml plugin in /org/papylhomme/diskmonitor/
Where should it go so I can copy it there and test the widget?
The widget comes up with:
Error loading QML file: file:///usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/main.qml:24:1: module "org.papylhomme.diskmonitor" is not installed
When removing/ejecting the hardware currently displayed, the UI still displays the details panel. It result on a segfault when clicking on the refresh details button.
It would be nice to have a official Ubuntu PPA for DisKMonitor.
This project's applet exhibits the same (over-)sizing problem that used to plague many of KDE 5's built-in widgets/applets.
Example/illustration of the exact same problem:
https://forum.kde.org/viewtopic.php?f=289&t=131908
Fix(es) used by KDE 5's built-ins:
https://bugs.kde.org/show_bug.cgi?id=378443
As a side note, I'd like to emphasize that I am absolutely THRILLED to see this program exists. As a former user of Hard Disk Sentinel back in my Windows days, I am strongly of the opinion that tools such as this should have long been a standard part of any operation system installation. And that's particularly because this (like HDSentinel on Windows) provides proactive notice of SMART issues, not just a manual poll-based cmdline interface (or worse, NO notice whatsoever, as is the default in most operation systems). Some years back, my old inability to find a program like this on Linux was by far my biggest hesitation at switching my primary desktop from Windows to Linux. So huge thanks for making this tool, and also for making it Qt/KDE-based.
i compiled 0.3.4 on kubuntu 20.04 and am stuck with an emtpy widget on the desktop. in ~/.xsession-errors
i see:
file:///usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/configMonitoring.qml:47:9: QML RowLayout: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
file:///usr/share/plasma/plasmoids/org.papylhomme.diskmonitor/contents/ui/configAppearance.qml:27:1: QML QQuickItem*: StackView has detected conflicting anchors. Transitions may not execute properly.
how can this be fixed?
Currently the button exists to start a SelfTest for a drive, but it does nothing
The following packages are required for building on Kubuntu 17.10. It would be worth mentioning it in the requirement section.
extra-cmake-modules
libkf5iconthemes-dev
libkf5notifications-dev
libkf5windowsystem-dev
libkf5xmlgui-dev
qtdeclarative5-dev
I've compiled and installed diskmonitor-git from the AUR in Arch Linux. On Plasma Wayland, DisKMonitor 0.3.4 will start, but no smart information will be shown and you get only the message "Unable to detect SMART support for this drive". When using "sudo smartctl -a /dev/nvme0" on the terminal, I can see all the smart details for this drive. I assume that when starting DisKMonitor it should ask for the sudo password.
It would also be great to link the health status of these devices
[ 26%] Building CXX object settings/CMakeFiles/libsettings.dir/configdialog.cpp.o
In file included from /tmp/makepkg/diskmonitor/src/diskmonitor/settings/appearance.h:24:0,
from /tmp/makepkg/diskmonitor/src/diskmonitor/settings/configdialog.cpp:26:
/tmp/makepkg/diskmonitor/src/build/settings/ui_appearance.h:1:10: fatal error: klocalizedstring.h: No such file or directory
#include <klocalizedstring.h>
^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [settings/CMakeFiles/libsettings.dir/build.make:79: settings/CMakeFiles/libsettings.dir/configdialog.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:719: settings/CMakeFiles/libsettings.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
└───╼ locate klocalizedstring.h
/usr/include/KF5/KI18n/klocalizedstring.h
└───╼ ls /usr/include/KF5/KI18n/klocalizedstring.h
-rw-r--r-- 1 root root 93516 mar 3 11:03 /usr/include/KF5/KI18n/klocalizedstring.h
└───╼ yaourt -Qi ki18n | grep Ver
Versión : 5.44.0-1
Hello, and thank you for making this great application!
As a new GNU/Linux user newly transitioned from Windows, I greatly appreciate GUI applications, and this one nicely fills the void for SMART and Software RAID monitoring (+scrubbing)!
The application and systray components seem to be working well, although I must confess I haven't monitored KSystemlog when I was in the app to know if I have been receiving other messages in the background while using/configuring it... maybe I'll do that soon.
However, what I have noticed is that every 5-7 minutes, I get a batch of entries in KSystemlog related to PopupDialog.qml...
... I haven't seen a popup, so I imagine this error is what is preventing them. As far as I can tell, I am getting one "left"/"right" pair per physical disk I have attached (6x2=12).
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 232.9G 0 disk
└─sda1 8:1 0 232.9G 0 part /run/timeshift/backup
/data/evo840
sdb 8:16 0 7.3T 0 disk
└─sdb1 8:17 0 7.3T 0 part
└─md127 9:127 0 7.3T 0 raid1 /data/raid1
sdc 8:32 0 7.3T 0 disk
└─sdc1 8:33 0 7.3T 0 part
└─md127 9:127 0 7.3T 0 raid1 /data/raid1
nvme2n1 259:0 0 931.5G 0 disk
├─nvme2n1p1 259:1 0 300M 0 part /boot/efi
└─nvme2n1p2 259:2 0 931.2G 0 part /
nvme1n1 259:3 0 931.5G 0 disk
└─nvme1n1p1 259:10 0 931.5G 0 part /data/sn750
nvme0n1 259:4 0 931.5G 0 disk
├─nvme0n1p1 259:5 0 100M 0 part
├─nvme0n1p2 259:6 0 16M 0 part
├─nvme0n1p3 259:7 0 930G 0 part
├─nvme0n1p4 259:8 0 528M 0 part
└─nvme0n1p5 259:9 0 881M 0 part
Application: DisKMonitor 0.3.4
Operating System: Manjaro Linux
The link to Transifex is broken in section Get involved of Readme.md.
Building a fresh clone of diskmonitor (both master and v0.3.1) fails with klocalizedstring.h not found although the appropriate devel-package is installed.
Below is the excerpt of the build log:
//snip
[ 19%] Building CXX object settings/CMakeFiles/libsettings.dir/configdialog.cpp.o
In file included from [...]/diskmonitor/settings/appearance.h:24:0,
from [...]/diskmonitor/settings/configdialog.cpp:26:
[...]/diskmonitor/build/settings/ui_appearance.h:1:30: fatal error: klocalizedstring.h: No such file or directory
#include <klocalizedstring.h>
^
compilation terminated.
settings/CMakeFiles/libsettings.dir/build.make:72: recipe for target 'settings/CMakeFiles/libsettings.dir/configdialog.cpp.o' failed
//snap
As I found out the ui_smart.h will fail with the same error.
System: Fedora core 21 with latest KF5 packages from dvratil's Copr repository
Configure error and warning colors
Configure icons
Auto refresh delay ?
On the one I tried, diskmonitor just said the drive's status was unknown. Wasn't sure if this was a diskmonitor limitation or some kind of driver problem, etc, on my end.
Currently the UI displays sensitive attributes using an orange background, but the list is hard-coded using my drives output.
It would be nice to be able to configure which attributes are considered sensitive. Maybe add a threshold too (current is >0).
Also take a look at SMART Wikipedia page and/or gsmartcontrol to enhance the default list of sensitive attributes
It would be nice to see how long ago the last test has run and how long it took to run. This information should be visible in the app UI as well as in the widget UI. It can be deducted from the smartctl -a
output:
...
Extended self-test routine
recommended polling time: ( 267) minutes.
...
9 Power_On_Hours 0x0032 051 051 000 Old_age Always - 36207
...
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 36190 -
...
From the above, we can produce the following output:
Last test (extended): 17 LifeTime hours ago, took 267 minutes
Where the 17 hours is the difference between the LifeTime(hours)
and Power_On_Hours
.
smartctlr show the disk and their properties (for example, --info)
└───╼ sudo smartctl --info /dev/nvme0n1
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-5.2.0-arch2-1-ARCH] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Number: Samsung SSD 960 EVO 500GB
Serial Number: S3EUNB0J557245E
Firmware Version: 2B7QCXE7
PCI Vendor/Subsystem ID: 0x144d
IEEE OUI Identifier: 0x002538
Total NVM Capacity: 500.107.862.016 [500 GB]
Unallocated NVM Capacity: 0
Controller ID: 2
Number of Namespaces: 1
Namespace 1 Size/Capacity: 500.107.862.016 [500 GB]
Namespace 1 Utilization: 424.896.667.648 [424 GB]
Namespace 1 Formatted LBA Size: 512
Namespace 1 IEEE EUI-64: 002538 5571b2a498
Local Time is: Fri Aug 16 14:29:15 2019 CEST
Hi
I use Disk Monitor 0.3.3 on Arch Linux running the Wayland session of KDE Plasma 5.15.5 desktop environment.
As we can see in the following screenshot, the title bar of Disk Monitor shows
a Wayland generic icon instead of the icon of Disk Monitor.
The task switcher (alt+tab menu) also shows the same Wayland generic icon.
Maybe the following link can help you to solve this issue.
https://community.kde.org/Guidelines_and_HOWTOs/Wayland_Porting_Notes#Application_Icon
Currently the table displays raw values, it would be nice to format them with something more user friendly (time, size, progression, ...)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.