Input subsystem for the Odilia screen reader.
Part of the Odilia screen reader project.
This crate uses the rdev crate, a Rust wrapper around the Linux / BSD evdev interface. It spawns a new thread which monitors for input events, then sends them to the main program using an asynchronous Tokio::sync::mpsc channel.
Odilia uses the Linux kernel's evdev interface to listen for and redirect events from input devices, such as your keyboard and mouse.
Evdev is normally a privileged interface, since any application that can access it could use it for malicious purposes,
for example, creating a keylogger. For this reason, to run Odilia, you must give yourself access to evdev. This can be
done by running the setup-permissions.sh shell
script included with Odilia. The script adds some
udev rules, then creates an odilia group. Any users added to this group and the input
group will be able to run
Odilia.
This is a very young project, we appreciate any and all contributions! However, please be aware there is a very llarge learning curve to helping with this project, particularly due to the lack of documentation, or complete documentation, of many of the libraries and technologies that comprise the Linux accessibility stack. For this reason, we are currently focused on learning as much as we can, and writing code to take advantage of it, and we don't have lots of time to mentor new contributors or review pull requests.
Once the ground-work has been layed, accepting contributions should get much easier. We are greatful for your cooperation in this regard!
All our code is licensed under the GPL v3.