diff --git a/src/main.zig b/src/main.zig index 709c7ed..d21285a 100644 --- a/src/main.zig +++ b/src/main.zig @@ -12,7 +12,6 @@ const LShiftDown = c.input_event{ .type = c.EV_KEY, .code = c.KEY_LEFTSHIFT, .va const LShiftUp = c.input_event{ .type = c.EV_KEY, .code = c.KEY_LEFTSHIFT, .value = 0, .time = undefined }; const RShiftDown = c.input_event{ .type = c.EV_KEY, .code = c.KEY_RIGHTSHIFT, .value = 1, .time = undefined }; const RShiftUp = c.input_event{ .type = c.EV_KEY, .code = c.KEY_RIGHTSHIFT, .value = 0, .time = undefined }; -var uinput: *align(8) c.libevdev_uinput = undefined; fn event_equal(e1: *const c.input_event, e2: *const c.input_event) bool { return (e1.type == e2.type) and (e1.code == e2.code) and (e1.value == e2.value); @@ -27,14 +26,12 @@ fn inputDeviceOpenAndGrab(dev_name: []const u8) !?*c.libevdev { if (c.libevdev_grab(dev, c.LIBEVDEV_GRAB) < 0) { return error.libevdevGrabFail; } - if (c.libevdev_uinput_create_from_device(@ptrCast(dev), c.LIBEVDEV_UINPUT_OPEN_MANAGED, @ptrCast(uinput)) < 0) { - return error.libevdevUinputCreateFail; - } return dev; } fn uinputCreate(dev: *c.libevdev) !?*c.libevdev_uinput { - if (c.libevdev_uinput_create_from_device(@ptrCast(dev), c.LIBEVDEV_UINPUT_OPEN_MANAGED, @ptrCast(uinput)) < 0) { + var uinput: *align(8) c.libevdev_uinput = undefined; + if (c.libevdev_uinput_create_from_device(@ptrCast(dev), c.LIBEVDEV_UINPUT_OPEN_MANAGED, @ptrCast(&uinput)) < 0) { return error.libevdevUinputCreateFail; } return uinput; @@ -70,8 +67,7 @@ pub fn main() !void { } const dev_name = args[1]; const dev = try inputDeviceOpenAndGrab(dev_name); - //const uinput_dev = try uinputCreate(dev.?); - const uinput_dev = uinput; + const uinput_dev = try uinputCreate(dev.?); var write_esc_lshift: bool = undefined; var write_esc_rshift: bool = undefined; @@ -99,7 +95,7 @@ pub fn main() !void { } if (event.type != c.EV_KEY) { - try uinputWrite(uinput_dev, &event); + try uinputWrite(uinput_dev.?, &event); continue :outer; } @@ -112,16 +108,16 @@ pub fn main() !void { event.code = c.KEY_LEFTMETA; } - try uinputWrite(uinput_dev, &event); + try uinputWrite(uinput_dev.?, &event); if (write_esc_lshift) { write_esc_lshift = false; - try uinputWriteKey(uinput_dev, c.KEY_ESC); + try uinputWriteKey(uinput_dev.?, c.KEY_ESC); } if (write_esc_rshift) { write_esc_rshift = false; - try uinputWriteKey(uinput_dev, c.KEY_ESC); + try uinputWriteKey(uinput_dev.?, c.KEY_ESC); } } }