From ed8a93ecbd3ab96deeb8ba995956e45ec35e593f Mon Sep 17 00:00:00 2001 From: cyber-sushi Date: Thu, 18 Apr 2024 18:51:53 +0200 Subject: [PATCH] GRAB_DEVICE can be omitted and defaults to true --- src/config.rs | 1 + src/udev_monitor.rs | 18 ++++++++---------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/config.rs b/src/config.rs index f3cc0f3..a18aa97 100644 --- a/src/config.rs +++ b/src/config.rs @@ -26,6 +26,7 @@ pub struct RawConfig { pub remap: HashMap>, #[serde(default)] pub commands: HashMap>, + #[serde(default)] pub settings: HashMap, } diff --git a/src/udev_monitor.rs b/src/udev_monitor.rs index aaaab23..6c45691 100644 --- a/src/udev_monitor.rs +++ b/src/udev_monitor.rs @@ -112,15 +112,14 @@ pub async fn start_reader(reader: EventReader) { pub fn get_event_stream(path: &Path, config: HashMap) -> EventStream { let mut device: Device = Device::open(path).expect("Couldn't open device path."); - if config.get("default") - .unwrap() - .settings - .get("GRAB_DEVICE") - .expect("No GRAB_DEVICE setting specified, this device will be ignored.") == &"true".to_string() - { - device.grab().unwrap(); - }; - + match config.get("default").unwrap().settings.get("GRAB_DEVICE") { + Some(value) => { + if value == &true.to_string() { + device.grab().unwrap() + } + } + None => device.grab().unwrap() + } let stream: EventStream = device.into_event_stream().unwrap(); return stream } @@ -143,4 +142,3 @@ pub fn is_mapped(udev_device: &tokio_udev::Device, config_files: &Vec) - return false } -