goevdi binds the EVDI client library into Go via CGO
  • C 65.8%
  • Go 33.3%
  • Nix 0.6%
  • Makefile 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-06-26 17:29:08 -04:00
example fix: Fixes Go package licensing issues 2025-06-26 17:29:08 -04:00
libevdi fix: Fixes Go package licensing issues 2025-06-26 17:29:08 -04:00
.gitignore fix: Fix rendering and usability issues 2025-06-25 15:01:44 -04:00
README.md fix: Fixes Go package licensing issues 2025-06-26 17:29:08 -04:00
shell.nix chore: Rewrite example and README 2025-06-26 12:58:33 -04:00
TODOs.md fix: Fix module includes, updates libevdi, and improve code comments. 2025-06-23 12:55:35 -04:00

goevdi: EVDI bindings for Go

Build Status GoDoc Go Report Card Examples License

The Extensible Virtual Display Interface (EVDI) is a Linux kernel module that enables management of multiple screens, allowing user-space programs to take control over what happens with the image. It is essentially a virtual display you can add, remove and receive screen updates for, in an application that uses the libevdi library.

This package provides a Go wrapper for the libevdi library, allowing you to easily manage Linux virtual displays.

Warning

This package is still in early development and may contain bugs. Use at your own risk. Additionally, due to nature of this being in early development, the API is unstable and may change between versions.

This package can work in production environments, but it is not recommended for production use until the API is stable.

How to Use

See the Go documentation for documentation on how to use this package. EVDI can be a bit confusing at first, so I'd recommend looking at the example here.

Installation

To install the package, run the following command:

go get git.terah.dev/imterah/goevdi/libevdi@latest

After that, you'd want to install the Linux kernel headers, and libdrm. Packages for Debian are:

sudo apt install linux-headers-$(uname -r) libdrm-dev

To install the EVDI kernel module, install this on Debian:

sudo apt install evdi-dkms