An open API service indexing awesome lists of open source software.

https://github.com/dyorgio/jinputhook

Global Key and Shortcuts listeners for Java
https://github.com/dyorgio/jinputhook

hook java keylistener keystroke shortcuts

Last synced: 6 months ago
JSON representation

Global Key and Shortcuts listeners for Java

Awesome Lists containing this project

README

          

JInputHook
===============
[![Build Status](https://travis-ci.org/dyorgio/jinputhook.svg?branch=master)](https://travis-ci.org/dyorgio/jinputhook) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.dyorgio.runtime/jinputhook/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.dyorgio.runtime/jinputhook)

Global Key and Shortcuts listeners for Java.

Why use it?
-----
* Create global keyboard/shortcut listeners.
* As an alternative to excelent lib [JNativeHook](https://github.com/kwhat/jnativehook).

Usage
-----
For shortcut listener:

```java
// Initialize
JInputHook.initialize();
// Register shortcut listener
Shortcut shortcut = Shortcut.fromKeys(Key.LCONTROL, Key.LSHIFT, Key.D);
JInputHook.addShortcutListener(shortcut,
new ShortcutListener() {
@Override
public void shortcutTriggered(Shortcut shortcut) {
System.out.println("shortcutTriggered(" + shortcut + ").");
}
}
);
```

For keyboard listener:

```java
// Initialize
JInputHook.initialize();
// Register global keyboard listener
JInputHook.addListener(new GlobalKeyListener() {
@Override
public void keyPressed(Key key) {
System.out.println(".keyPressed(" + key + ").");
}

@Override
public void keyReleased(Key key) {
System.out.println(".keyReleased(" + key + ").");
}
});
```

Maven
-----
```xml

com.github.dyorgio.runtime
jinputhook
1.0.2



```

Windows
-----
On Windows, include JNA as dependency.
```xml

net.java.dev.jna
jna-platform
${your.jna.version}

```

Linux
-----
On Linux you need to adjust permissions of /dev/input/event* to can read:
```bash
sudo chmod o+r /dev/input/event*
```

Or, according with distro, create a new dev rule file on /etc/udev/rules.d/YOUR-FILE-NAME.rules:
```txt
SUBSYSTEM=="input", KERNEL=="event*", MODE="644"
```