Skip to content

JavaScriptDude/python-uinput

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Libsuinput
==========

Uinput is a Linux kernel module which allows attaching user-space
device drivers into the Linux kernel. However, it is pretty low level
from the application developers perspective. This library provides a
set of helper functions for making the usage of uinput easier.

Usage example
-------------

Create and use a new uinput device with key-capabilities:

    int uinput_fd;
    int keys[] = {KEY_E, KEY_H, KEY_L, KEY_O};
    struct uinput_user_dev user_dev;

    memset(&user_dev, 0, sizeof(struct uinput_user_dev));
    strcpy(user_dev.name, "libsuinput-example-keyboard");

    uinput_fd = suinput_open();

    suinput_set_capabilities(uinput_fd, EV_KEY, keys, 4);

    suinput_create(uinput_fd, &user_dev);

    suinput_write(uinput_fd, EV_KEY, KEY_H, 1); /* Press. */
    suinput_syn(uinput_fd); /* "Flushes" events written so far. */

    suinput_write(uinput_fd, EV_KEY, KEY_H, 0); /* Release */
    suinput_syn(uinput_fd);

    suinput_write(uinput_fd, EV_KEY, KEY_E, 1);
    suinput_syn(uinput_fd);

    suinput_write(uinput_fd, EV_KEY, KEY_E, 0);
    suinput_syn(uinput_fd);

    suinput_write(uinput_fd, EV_KEY, KEY_L, 1);
    suinput_syn(uinput_fd);

    suinput_write(uinput_fd, EV_KEY, KEY_L, 0);
    suinput_syn(uinput_fd);

    suinput_write(uinput_fd, EV_KEY, KEY_L, 1);
    suinput_syn(uinput_fd);

    suinput_write(uinput_fd, EV_KEY, KEY_L, 0);
    suinput_syn(uinput_fd);

    suinput_write(uinput_fd, EV_KEY, KEY_O, 1);
    suinput_syn(uinput_fd);

    suinput_write(uinput_fd, EV_KEY, KEY_O, 0);
    suinput_syn(uinput_fd);

    suinput_destroy(uinput_fd);

General information
-------------------

- Author:     Tuomas Jorma Juhani Räsänen <tuomas.rasanen@tjjr.fi>
- Homepage:   <http://tjjr.fi/sw/libsuinput>
- License:    GPLv3+ (see COPYING for details)
- Version:    0.4
- Repository: <http://github.com/tuos/libsuinput>
- Bugs:       <http://github.com/tuos/libsuinput/issues>
- Tarballs:   <http://github.com/tuos/libsuinput/downloads>

Build requirements
------------------

- libudev-dev

Runtime requirements
--------------------

- libudev0
- uinput-module installed
- write permissions to `/dev/uinput`

About

Pythonic API to Linux uinput module

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 57.5%
  • C 40.2%
  • Makefile 1.4%
  • Other 0.9%