wails-app-dock/pkg/hotkey/hotkey.go

39 lines
711 B
Go

package hotkey
import (
"golang.design/x/hotkey"
"log"
)
func Register(mod []hotkey.Modifier, key hotkey.Key, keyDown func(), keyUp func()) *hotkey.Hotkey {
hk := hotkey.New(mod, key)
go func() {
defer func() {
hk.Unregister()
log.Printf("hotkey: %v is unregistered\n", hk)
}()
err := hk.Register()
if err != nil {
log.Printf("hotkey: failed to register hotkey: %v", err)
}
log.Printf("hotkey: %v is registered\n", hk)
for {
select {
case <-hk.Keydown():
log.Printf("hotkey: %v is down\n", hk)
if keyDown != nil {
keyDown()
}
case <-hk.Keyup():
log.Printf("hotkey: %v is up\n", hk)
if keyUp != nil {
keyUp()
}
}
}
}()
return hk
}