diff --git a/modules/XRLinuxDriver b/modules/XRLinuxDriver
index 2b993a7..abed471 160000
--- a/modules/XRLinuxDriver
+++ b/modules/XRLinuxDriver
@@ -1 +1 @@
-Subproject commit 2b993a7017f74fedeac6c88bb46a7828b194cd29
+Subproject commit abed471a8327867f88e206b36b3555ae30111eb8
diff --git a/ui/modules/PyXRLinuxDriverIPC b/ui/modules/PyXRLinuxDriverIPC
index 50ce02f..34a349d 160000
--- a/ui/modules/PyXRLinuxDriverIPC
+++ b/ui/modules/PyXRLinuxDriverIPC
@@ -1 +1 @@
-Subproject commit 50ce02fc9e341d417785bd26abeee9f7305bee6c
+Subproject commit 34a349d39efc02f4b65550debd193d29d95a84f9
diff --git a/ui/src/gtk/window.ui b/ui/src/gtk/window.ui
index d06e8c7..40717e0 100644
--- a/ui/src/gtk/window.ui
+++ b/ui/src/gtk/window.ui
@@ -55,6 +55,10 @@
License Details
app.license
+ -
+ Force Reset
+ app.reset_driver
+
-
_About BreezyDesktop
app.about
diff --git a/ui/src/main.py b/ui/src/main.py
index f77a4dc..a2a2281 100644
--- a/ui/src/main.py
+++ b/ui/src/main.py
@@ -64,6 +64,7 @@ class BreezydesktopApplication(Adw.Application):
self.create_action('quit', self.on_quit_action, ['q'])
self.create_action('about', self.on_about_action)
self.create_action('license', self.on_license_action)
+ self.create_action('reset_driver', self.on_reset_driver_action)
def do_activate(self):
"""Called when the application is activated.
@@ -94,6 +95,11 @@ class BreezydesktopApplication(Adw.Application):
dialog.set_transient_for(self.props.active_window)
dialog.present()
+ def on_reset_driver_action(self, widget, _):
+ XRDriverIPC.get_instance().write_control_flags({
+ 'force_quit': True
+ })
+
def create_action(self, name, callback, shortcuts=None):
"""Add an application action.