tenseleyflow/hyprkvm / 1e3d833

Browse files

fix: skip passthrough devices in evdev grab to prevent self-grab

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
1e3d8335fd984198a0997bb16aa25d7ed8c32a6d
Parents
b2a3b38
Tree
b2b2ba6

2 changed files

StatusFile+-
M Cargo.lock 3 3
M hyprkvm-daemon/src/input/evdev_grab.rs 3 0
Cargo.lockmodified
@@ -1636,7 +1636,7 @@ dependencies = [
16361636
 
16371637
 [[package]]
16381638
 name = "hyprkvm-cli"
1639
-version = "0.6.3"
1639
+version = "0.6.4"
16401640
 dependencies = [
16411641
  "anyhow",
16421642
  "clap",
@@ -1648,7 +1648,7 @@ dependencies = [
16481648
 
16491649
 [[package]]
16501650
 name = "hyprkvm-common"
1651
-version = "0.6.3"
1651
+version = "0.6.4"
16521652
 dependencies = [
16531653
  "serde",
16541654
  "serde_json",
@@ -1657,7 +1657,7 @@ dependencies = [
16571657
 
16581658
 [[package]]
16591659
 name = "hyprkvm-daemon"
1660
-version = "0.6.3"
1660
+version = "0.6.4"
16611661
 dependencies = [
16621662
  "anyhow",
16631663
  "base64",
hyprkvm-daemon/src/input/evdev_grab.rsmodified
@@ -144,6 +144,7 @@ fn find_input_devices() -> Vec<PathBuf> {
144144
                     let dev_name = dev.name().unwrap_or("unknown").to_lowercase();
145145
 
146146
                     // Skip devices that are clearly NOT keyboard/mouse
147
+                    // Also skip hyprkvm's own virtual injection devices (passthrough)
147148
                     if dev_name.contains("power")
148149
                         || dev_name.contains("sleep")
149150
                         || dev_name.contains("button")
@@ -154,6 +155,8 @@ fn find_input_devices() -> Vec<PathBuf> {
154155
                         || dev_name.contains("dualsense")
155156
                         || dev_name.contains("dualshock")
156157
                         || dev_name.contains("controller touchpad")
158
+                        || dev_name.contains("passthrough")
159
+                        || dev_name.contains("hyprkvm")
157160
                     {
158161
                         tracing::debug!("Skipping non-keyboard/mouse device: {}", dev_name);
159162
                         continue;