mirror of https://github.com/k0kubun/xremap
Handle all errors properly
parent
2db606bce3
commit
fc30cb8bca
@ -1,9 +1,10 @@
|
||||
extern crate evdev;
|
||||
|
||||
use evdev::Device;
|
||||
use std::error::Error;
|
||||
|
||||
pub fn select_device() -> Device {
|
||||
pub fn select_device() -> Result<Device, Box<dyn Error>> {
|
||||
// TODO: stop hard-coding the device
|
||||
let device = Device::open("/dev/input/event19");
|
||||
return device.unwrap();
|
||||
let device = Device::open("/dev/input/event19")?;
|
||||
return Ok(device);
|
||||
}
|
||||
|
@ -1,13 +1,15 @@
|
||||
use std::error::Error;
|
||||
use evdev::{EventType, InputEvent, InputEventKind};
|
||||
use evdev::uinput::VirtualDevice;
|
||||
|
||||
pub fn on_event(event: InputEvent, device: &mut VirtualDevice) {
|
||||
pub fn on_event(event: InputEvent, device: &mut VirtualDevice) -> Result<(), Box<dyn Error>> {
|
||||
println!("event: {:?}", event);
|
||||
if event.kind() == InputEventKind::Key(evdev::Key::KEY_A) {
|
||||
device.emit(&[
|
||||
InputEvent::new(EventType::KEY, evdev::Key::KEY_B.code(), event.value())
|
||||
]).unwrap();
|
||||
])?;
|
||||
} else {
|
||||
device.emit(&[event]).unwrap();
|
||||
device.emit(&[event])?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
Loading…
Reference in New Issue