diff --git a/src/provider/Notifications.qml b/src/provider/Notifications.qml
index fdc4a48..ee6c38f 100644
--- a/src/provider/Notifications.qml
+++ b/src/provider/Notifications.qml
@@ -31,6 +31,13 @@ Singleton {
 
     property alias list: server.trackedNotifications
 
+    function clearAll() {
+        const len = server.trackedNotifications.values.length;
+        for (let i = 0; i < len; i++) {
+            list.values[0].dismiss();
+        }
+    }
+
     signal incomingRemoved(id: int)
     signal incomingAdded(id: Notification)
 }
diff --git a/src/widgets/notifications/NotificationInbox.qml b/src/widgets/notifications/NotificationInbox.qml
index bce7520..967912c 100644
--- a/src/widgets/notifications/NotificationInbox.qml
+++ b/src/widgets/notifications/NotificationInbox.qml
@@ -1,53 +1,71 @@
 import QtQuick
 import QtQuick.Layouts
 import "../../provider"
+import "../../base"
+
+ColumnLayout {
+    Layout.preferredHeight: 1000
 
-ListView {
-    id: popupcol
     Layout.fillHeight: true
     Layout.fillWidth: true
-    Layout.preferredHeight: 1000
-    spacing: 10
+
     width: parent.width
-    Component.onCompleted: () => {}
 
-    model: Notifications.list
-
-    delegate: NotificationToast {
-        id: toast
-
-        required property var modelData
-        required property int index
-
-        notif: modelData
-        width: ListView.view.width
-
-        onClose: {
-            toast.notif.dismiss();
+    BButton {
+        width: 30
+        height: 30
+        onClicked: () => {
+            Notifications.clearAll();
         }
+        Layout.alignment: Qt.AlignRight
     }
 
-    addDisplaced: Transition {
-        NumberAnimation {
-            properties: "x,y"
-            duration: 100
-        }
-    }
-    remove: Transition {
-        PropertyAction {
-            property: "ListView.delayRemove"
-            value: true
-        }
-        ParallelAnimation {
-            NumberAnimation {
-                property: "opacity"
-                to: 0
-                duration: 200
+    ListView {
+        id: popupcol
+        Layout.fillHeight: true
+        Layout.fillWidth: true
+
+        spacing: 10
+        width: parent.width
+
+        model: Notifications.list
+
+        delegate: NotificationToast {
+            id: toast
+
+            required property var modelData
+            required property int index
+
+            notif: modelData
+            width: ListView.view.width
+
+            onClose: {
+                toast.notif.dismiss();
             }
         }
-        PropertyAction {
-            property: "ListView.delayRemove"
-            value: true
+
+        addDisplaced: Transition {
+            NumberAnimation {
+                properties: "x,y"
+                duration: 100
+            }
+        }
+        remove: Transition {
+            PropertyAction {
+                property: "ListView.delayRemove"
+                value: true
+            }
+            ParallelAnimation {
+                NumberAnimation {
+                    property: "opacity"
+                    to: 0
+                    duration: 200
+                }
+            }
+            PropertyAction {
+                property: "ListView.delayRemove"
+                value: true
+            }
         }
     }
 }
diff --git a/src/widgets/notifications/NotificationToast.qml b/src/widgets/notifications/NotificationToast.qml
index 3b99d03..e3a425c 100644
--- a/src/widgets/notifications/NotificationToast.qml
+++ b/src/widgets/notifications/NotificationToast.qml
@@ -136,6 +136,7 @@ MouseArea {
                     }
                 }
             }
+
             GridLayout {
                 id: actions
                 width: parent.width