Go to file
Ariela Wenner 51a01f7dcb Cleanup 2018-10-05 19:04:56 -03:00
build Cleanup 2018-10-05 19:04:56 -03:00
src Added license and copyright notices to source files 2018-10-05 18:55:26 -03:00
.gitignore Initial commit 2018-10-05 18:43:47 -03:00
LICENSE.md Initial commit 2018-10-05 18:43:47 -03:00
Makefile Initial commit 2018-10-05 18:43:47 -03:00
README.md README edit 2018-10-05 19:02:29 -03:00

README.md

w3panik

Multipurpose keyboard listener and reactor.

(C) 2018 - Ariela Wenner

w3panik sits in the background listening for certain keyboard sequences (specified by the user) and, upon detecting one, it will react by calling its corresponding shell command (also specified by the user). This is achieved by reading /dev/input/event* into a (small) buffer. Because of this and the nature of w3panik, it must be executed with root privileges.

Although multipurpose, this program is developed with critical and delicate situations in mind. If you're looking for a shortcut daemon, you're better off with an actual shortcut daemon, because this is not it.

Or you could use it to yell at you every time you type something nasty. Your choice.

Usage

First, find out your keyboard event file by running ls -l /dev/input/by-id. You'll see files pointing to ../event*. The one containing "keyboard" or "kbd" should be pointing to what you need.

For example, if it points to ../event7, you'll need to call ./w3panik 7. It will then start reading alphanumerical keypresses and reacting to set keywords in the background.

This is a work in progress and a proper config file is not implemented yet.

To Do (in urgency order):

  • Implement .conf loading and parsing
  • Implement UNIX daemon-like behaviour
  • Implement proper Unicode support

Building

Requirements

  • Recent GCC version in a Linux system.
  • Your basic build essentials, especifically make.
  • linux/input.h header which you probably have, but check for it anyways at /usr/include/linux.

From there, do either make debug or make release.

Unfortuately, this is Linux dependant and I don't have the time nor resources to port to other systems.

License

This project is licensed under GPLv3. See the LICENSE.md for details.