diff --git a/plasmoid/contents/ui/DiskIO.qml b/plasmoid/contents/ui/DiskIO.qml
index efcaf5f675fee8875e5244003371bf98cbf8ce6c..9654e6c8d33d4672bb7d46ddcaa5dec92e728d55 100755
--- a/plasmoid/contents/ui/DiskIO.qml
+++ b/plasmoid/contents/ui/DiskIO.qml
@@ -17,8 +17,9 @@
  * along with System Monitor Plasmoid.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.1
-import QtQuick.Layouts 1.3
+import QtQuick 2.0
+import QtQuick.Layouts 1.0
+import QtGraphicalEffects 1.0
 import org.kde.plasma.core 2.0 as PlasmaCore
 import org.kde.plasma.extras 2.0 as PlasmaExtras
 import org.kde.plasma.components 2.0 as PlasmaComponents
@@ -236,7 +237,7 @@ Rectangle {
         count = 0
         for (idx in dataSource.sources) {
             name = dataSource.sources[idx]
-            result = name.match('^disk\/(sd.)_[(][^\/]*\/Rate\/totalio$')
+            result = name.match('^disk\/(sd.|nvme.n.)_[(][^\/]*\/Rate\/totalio$')
             if (result !== null) {
                 if (plasmoid.configuration.dioSources.indexOf(result[1]) >= 0) {
                     res = name.replace("totalio", "rblk")
@@ -284,14 +285,14 @@ Rectangle {
                 diodata.scale = 1024
             if (data.value !== undefined) {
                 for (idx = 0; idx < duValues[0]; idx++) {
-                    result = sourceName.match('^disk\/(sd.)_[(][^\/]*\/Rate\/rblk$')
+                    result = sourceName.match('^disk\/(sd.|nvme.n.)_[(][^\/]*\/Rate\/rblk$')
                     if (result !== null) {
                         if (duValues[(idx * 3) + 2 ] === result[1]) {
                             updateScale(data.value)
                             duValues[(idx * 3) + 3] = Number(data.value)
                         }
                     }
-                    result = sourceName.match('^disk\/(sd.)_[(][^\/]*\/Rate\/wblk$')
+                    result = sourceName.match('^disk\/(sd.|nvme.n.)_[(][^\/]*\/Rate\/wblk$')
                     if (result !== null) {
                         if (duValues[(idx * 3) + 2 ] === result[1]) {
                             updateScale(data.value)
diff --git a/plasmoid/contents/ui/configDiskIO.qml b/plasmoid/contents/ui/configDiskIO.qml
old mode 100644
new mode 100755
index c6cdcf2129464e37e439960e7f2a46fe83725c82..1986a38586a4f765a5046ef1ce4ad543884863e6
--- a/plasmoid/contents/ui/configDiskIO.qml
+++ b/plasmoid/contents/ui/configDiskIO.qml
@@ -17,10 +17,10 @@
  * along with System Monitor Plasmoid.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.1
-import QtQuick.Controls 1.2
+import QtQuick 2.0
+import QtQuick.Controls 2.3
 import QtQuick.Layouts 1.3
-import org.kde.plasma.core 2.0 as PlasmaCore
+import org.kde.plasma.core 2.1 as PlasmaCore
 
 
 Item {
@@ -75,7 +75,7 @@ Item {
         data.loading = true
         for (idx in dataSource.sources) {
             name = dataSource.sources[idx]
-            result = name.match('^disk\/(sd.)_[(][^\/]*\/Rate\/totalio$')
+            result = name.match('^disk\/(sd.|nvme.n.)_[(][^\/]*\/Rate\/totalio$')
             if (result !== null) {
                 if (cfg_dioSources.indexOf(result[1]) < 0) {
                     sources.append({name:result[1], checked: false})