ditty/gui_key.go

94 lines
2.1 KiB
Go

package main
import (
"git.sr.ht/~tslocum/cbind"
"github.com/gdamore/tcell"
)
var inputConfig = cbind.NewConfiguration()
func setDefaultKeyBinds() {
inputConfig.SetKey(tcell.ModNone, tcell.KeyUp, func(ev *tcell.EventKey) *tcell.EventKey {
listPrevious()
return nil
})
inputConfig.SetKey(tcell.ModNone, tcell.KeyDown, func(ev *tcell.EventKey) *tcell.EventKey {
listNext()
return nil
})
inputConfig.SetRune(tcell.ModNone, 'k', func(ev *tcell.EventKey) *tcell.EventKey {
listPrevious()
return nil
})
inputConfig.SetRune(tcell.ModNone, 'j', func(ev *tcell.EventKey) *tcell.EventKey {
listNext()
return nil
})
inputConfig.SetKey(tcell.ModNone, tcell.KeyEnter, func(ev *tcell.EventKey) *tcell.EventKey {
go listSelect()
return nil
})
inputConfig.SetRune(tcell.ModNone, ' ', func(ev *tcell.EventKey) *tcell.EventKey {
pause()
return nil
})
inputConfig.SetRune(tcell.ModNone, 'p', func(ev *tcell.EventKey) *tcell.EventKey {
skipPrevious()
return nil
})
inputConfig.SetRune(tcell.ModNone, 'n', func(ev *tcell.EventKey) *tcell.EventKey {
skipNext()
return nil
})
inputConfig.SetRune(tcell.ModNone, '-', func(ev *tcell.EventKey) *tcell.EventKey {
adjustVolume(-0.5)
return nil
})
inputConfig.SetRune(tcell.ModNone, '+', func(ev *tcell.EventKey) *tcell.EventKey {
adjustVolume(0.5)
return nil
})
inputConfig.SetRune(tcell.ModNone, 'm', func(ev *tcell.EventKey) *tcell.EventKey {
toggleMute()
return nil
})
inputConfig.SetKey(tcell.ModNone, tcell.KeyEscape, func(ev *tcell.EventKey) *tcell.EventKey {
done <- true
return nil
})
inputConfig.SetKey(tcell.ModNone, tcell.KeyBackspace, func(ev *tcell.EventKey) *tcell.EventKey {
browseParent()
return nil
})
inputConfig.SetKey(tcell.ModNone, tcell.KeyBackspace2, func(ev *tcell.EventKey) *tcell.EventKey {
browseParent()
return nil
})
inputConfig.SetKey(tcell.ModNone, tcell.KeyPgUp, func(ev *tcell.EventKey) *tcell.EventKey {
listPreviousPage()
return nil
})
inputConfig.SetKey(tcell.ModNone, tcell.KeyPgDn, func(ev *tcell.EventKey) *tcell.EventKey {
listNextPage()
return nil
})
// TODO:
// Queue non-recursively - q
// Queue recursively - Q
}