You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
2 years ago | |
---|---|---|
whichkeybind | 2 years ago | |
.gitignore | 3 years ago | |
CHANGELOG | 2 years ago | |
LICENSE | 3 years ago | |
README.md | 2 years ago | |
configuration.go | 2 years ago | |
configuration_test.go | 2 years ago | |
doc.go | 3 years ago | |
go.mod | 2 years ago | |
go.sum | 2 years ago | |
key.go | 2 years ago | |
key_test.go | 3 years ago |
README.md
cbind
Key event handling library for tcell
Features
- Set
KeyEvent
handlers - Encode and decode
KeyEvent
s as human-readable strings
Usage
// Create a new input configuration to store the key bindings.
c := NewConfiguration()
// Define save event handler.
handleSave := func(ev *tcell.EventKey) *tcell.EventKey {
return nil
}
// Define open event handler.
handleOpen := func(ev *tcell.EventKey) *tcell.EventKey {
return nil
}
// Define exit event handler.
handleExit := func(ev *tcell.EventKey) *tcell.EventKey {
return nil
}
// Bind Alt+s.
if err := c.Set("Alt+s", handleSave); err != nil {
log.Fatalf("failed to set keybind: %s", err)
}
// Bind Alt+o.
c.SetRune(tcell.ModAlt, 'o', handleOpen)
// Bind Escape.
c.SetKey(tcell.ModNone, tcell.KeyEscape, handleExit)
// Capture input. This will differ based on the framework in use (if any).
// When using tview or cview, call Application.SetInputCapture before calling
// Application.Run.
app.SetInputCapture(c.Capture)
Documentation
Documentation is available via gdooc.
The utility program whichkeybind
is available to determine and validate key combinations.
go get code.rocketnine.space/tslocum/cbind/whichkeybind
Support
Please share issues and suggestions here.