Skip to content
eiannonePublic

About

Simple library to listen for keystrokes from the keyboard

Resources

Stars

639 stars

Watchers

12 watching

Forks

Repository files navigation

Keyboard

Simple library to listen for keystrokes from the keyboard

The code is inspired by termbox-go library.

Installation

Install and update this go package with go get -u github.com/eiannone/keyboard

Usage

Example of getting a single keystroke:

char, _, err := keyboard.GetSingleKey()
if (err != nil) {
    panic(err)
}
fmt.Printf("You pressed: %q\r\n", char)

Example of getting a series of keystrokes with a blocking GetKey() function:

package main

import (
	"fmt"
	"github.com/eiannone/keyboard"
)

func main() {		
	if err := keyboard.Open(); err != nil {
		panic(err)
	}
	defer func() {
		_ = keyboard.Close()
	}()

	fmt.Println("Press ESC to quit")
	for {
		char, key, err := keyboard.GetKey()
		if err != nil {
			panic(err)
		}
		fmt.Printf("You pressed: rune %q, key %X\r\n", char, key)
        if key == keyboard.KeyEsc {
			break
		}
	}	
}

Example of getting a series of keystrokes using a channel:

package main

import (
	"fmt"
	"github.com/eiannone/keyboard"
)

func main() {
	keysEvents, err := keyboard.GetKeys(10)
	if err != nil {
		panic(err)
	}
	defer func() {
		_ = keyboard.Close()
	}()

	fmt.Println("Press ESC to quit")
	for {
		event := <-keysEvents
		if event.Err != nil {
			panic(event.Err)
		}
		fmt.Printf("You pressed: rune %q, key %X\r\n", event.Rune, event.Key)
		if event.Key == keyboard.KeyEsc {
			break
		}
	}
}

About

Simple library to listen for keystrokes from the keyboard

Resources

Stars

639 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages