robotn / gohook

GoHook, Go global keyboard and mouse listener hook
MIT License
324 stars 43 forks source link
go golang hook keyboard listener mouse-events

gohook

Build Status CircleCI Status Appveyor Go Report Card GoDoc

Requirements (Linux):

Robotgo-requirements-event

Install:

With Go module support (Go 1.11+), just import:

import "github.com/robotn/gohook"

Examples:

package main

import (
    "fmt"

    hook "github.com/robotn/gohook"
)

func main() {
    add()

    low()
}

func add() {
    fmt.Println("--- Please press ctrl + shift + q to stop hook ---")
    hook.Register(hook.KeyDown, []string{"q", "ctrl", "shift"}, func(e hook.Event) {
        fmt.Println("ctrl-shift-q")
        hook.End()
    })

    fmt.Println("--- Please press w---")
    hook.Register(hook.KeyDown, []string{"w"}, func(e hook.Event) {
        fmt.Println("w")
    })

    s := hook.Start()
    <-hook.Process(s)
}

func low() {
    evChan := hook.Start()
    defer hook.End()

    for ev := range evChan {
        fmt.Println("hook: ", ev)
    }
}

Based on libuiohook.