Documentation
¶
Overview ¶
Package keylogger is a go library for linux to capture keyboard events. About:
* No C deps
* Events ported from uapi/linux/input.h
* Needs root privilages
* Transfer keyboard code into human readable key
* Capture state changes
* Write back to keyboard
See README at https://github.com/MarinX/keylogger for more info.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FindAllKeyboardDevices ¶
func FindAllKeyboardDevices() []string
Like FindKeyboardDevice, but finds all devices which contain keyword 'keyboard' Returns an array of file paths which contain keyboard events
func FindKeyboardDevice ¶
func FindKeyboardDevice() string
FindKeyboardDevice by going through each device registered on OS Mostly it will contain keyword - keyboard Returns the file path which contains events
Types ¶
type EventType ¶
type EventType uint16
EventType are groupings of codes under a logical input construct. Each type has a set of applicable codes to be used in generating events. See the Ev section for details on valid codes for each type
const ( // EvSyn is used as markers to separate events. Events may be separated in time or in space, such as with the multitouch protocol. EvSyn EventType = 0x00 // EvKey is used to describe state changes of keyboards, buttons, or other key-like devices. EvKey EventType = 0x01 // EvRel is used to describe relative axis value changes, e.g. moving the mouse 5 units to the left. EvRel EventType = 0x02 // EvAbs is used to describe absolute axis value changes, e.g. describing the coordinates of a touch on a touchscreen. EvAbs EventType = 0x03 // EvMsc is used to describe miscellaneous input data that do not fit into other types. EvMsc EventType = 0x04 // EvSw is used to describe binary state input switches. EvSw EventType = 0x05 // EvLed is used to turn LEDs on devices on and off. EvLed EventType = 0x11 // EvSnd is used to output sound to devices. EvSnd EventType = 0x12 // EvRep is used for autorepeating devices. EvRep EventType = 0x14 // EvFf is used to send force feedback commands to an input device. EvFf EventType = 0x15 // EvPwr is a special type for power button and switch input. EvPwr EventType = 0x16 // EvFfStatus is used to receive force feedback device status. EvFfStatus EventType = 0x17 )
type InputEvent ¶
InputEvent is the keyboard event structure itself
func (*InputEvent) KeyPress ¶
func (i *InputEvent) KeyPress() bool
KeyPress is the value when we press the key on keyboard
func (*InputEvent) KeyRelease ¶
func (i *InputEvent) KeyRelease() bool
KeyRelease is the value when we release the key on keyboard
func (*InputEvent) KeyString ¶
func (i *InputEvent) KeyString() string
KeyString returns representation of pressed key as string eg enter, space, a, b, c...
type InputEvents ¶
type InputEvents struct {
Events []InputEvent
}
InputEvents is a map of InputEvent objects that may be returned all at once by Read()
type KeyLogger ¶
type KeyLogger struct {
// contains filtered or unexported fields
}
KeyLogger wrapper around file descriptior
func (*KeyLogger) Read ¶
func (k *KeyLogger) Read() chan InputEvent
Read from file descriptor Blocking call, returns channel Make sure to close channel when finish
func (*KeyLogger) Write ¶
Write writes to keyboard and sync the event This will keep the key pressed or released until you call another write with other direction eg, if the key is "A" and direction is press, on UI, you will see "AAAAA..." until you stop with release Probably you want to use WriteOnce method