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
- Host: GitHub
- URL: https://github.com/dyorgio/jinputhook
- Owner: dyorgio
- License: apache-2.0
- Created: 2019-07-25T13:37:18.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-26T02:49:34.000Z (about 2 years ago)
- Last Synced: 2025-07-21T01:28:23.102Z (12 months ago)
- Topics: hook, java, keylistener, keystroke, shortcuts
- Language: Java
- Homepage: https://dyorgio.github.io/jinputhook/
- Size: 38.1 KB
- Stars: 8
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
JInputHook
===============
[](https://travis-ci.org/dyorgio/jinputhook) [](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"
```