add evfb (evdev + fbdev) backend

Outside of a terminal emulator or web browser, this typing experience
can be useful outside the DE, such as in the TTY or when entering a
password for full-disk encryption. Add a target that uses the bare
hardware to allow the keyboard to be deployed in more flexible
environments.
This commit is contained in:
Richard Acayan 2025-07-21 19:01:23 -04:00
parent 9b893e474d
commit 7b38edb656
12 changed files with 866 additions and 0 deletions

View file

@ -22,4 +22,17 @@ fn main()
println!("cargo::rustc-link-lib=expat");
bindings.write_to_file(out_file).expect("Writing failure");
let builder = bindgen::builder();
let bindings = builder.header("/usr/include/linux/fb.h")
.generate()
.expect("The Linux headers must be installed");
let out_dir: PathBuf = env::var("OUT_DIR")
.expect("Environment variable $OUT_DIR must be defined")
.into();
let out_file = out_dir.join("linuxfb.rs");
bindings.write_to_file(out_file).expect("Writing failure");
}