Skip to content

An uinput library used by Multiverse OS's vinput package which provides virtual device capabilities and conviences.This project is actually a combination of evdev and uinput and it will be extended past the existing three supported devices to provide full uinput functionality

Notifications You must be signed in to change notification settings

multiverse-os/uinput

Repository files navigation

Multiverse OS Logo

Multiverse OS: uinput library

URL multiverse-os.org

The Linux uinput subsystem provides low-level access to the Kernel for the purposes of creating and manipulating virtual devices. This library was created and is maintained to satisfy requirements of the Multiverse OS Go language library vinput. The library vinput provides an abstraction layer ontop of the uinput subsystem; specifically designed to simplfiy creation of virtual devices for the purposes of user input automation.

It makes sense to provides uinput as a separate library, one that simply focuses on interaction with the uinput subsystem and provides very little abstraction over the existing protocol. So ideally it can be used by a wide range of applications beyond our use in vinput.

Usage

Initialization of a uinput device is done using a function chain used to modify defaults.

Unlike many other implementations, this one requires connecting the virtual device after creating it. Which allows the developer to disconnect and reconnect the virtual devices as needed.

  // Simpliest initialization
  kbd := Keyboard.New("device-name").Connect()

About

An uinput library used by Multiverse OS's vinput package which provides virtual device capabilities and conviences.This project is actually a combination of evdev and uinput and it will be extended past the existing three supported devices to provide full uinput functionality

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages