Giter VIP home page Giter VIP logo

dualkeys's Introduction

Dualkeys: dual-role keys with evdev and uinput

TODO: Explain algorithm

Essentially, save all sequences starting with a dual key and wait for the first key raise. Then, interpret all previous dual keys as modifiers.

Usage

Dualkeys needs access to your device files and to uinput. The easiest way to get this is by running it as root, for example with sudo.

First, you might want to learn the scan codes of the keys you want to endow with dual roles. For this, use

./Dualkeys.py -p

and press the keys in question.

Example output:

keycode = KEY_SPACE, scancode = 57, keystate = 1

keycode = KEY_SPACE, scancode = 57, keystate = 0
 
keycode = KEY_LEFTCTRL, scancode = 29, keystate = 1

keycode = KEY_LEFTCTRL, scancode = 29, keystate = 0

A dual-role key is specified by three scancodes: that of the actual key pressed on the keyboard, that of the key that is to be triggered when the key is pressed and released on its own, and the one that is triggered when it is pressed in conjunction with another key. These three scancodes in this order are passed as arguments to the -k switch. For example, to make the space bar double as control key, use

python Dualkeys.py -k 57 57 29

dualkeys's People

Contributors

jchtt avatar

Stargazers

Lixin Sun avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.