package keyboard import ( "os" "testing" "time" "github.com/bnema/purego-xkbcommon/raw" ) func TestLayoutsAndRepeat(t *testing.T) { k := requiredKeyboard(t, "en_US.UTF-8") defer k.Close() now := time.Now() for _, tc := range []struct { layout string code uint32 want string }{{"us", 16, "q"}, {"fr", 16, "a"}, {"de", 21, "z"}} { if err := k.Rules(tc.layout, ""); err != nil { t.Fatal(err) } key, err := k.Event(tc.code, true, now) if err != nil || key.Text != tc.want || key.Physical != tc.code || key.Logical == 0 { t.Fatalf("%s: %+v %v", tc.layout, key, err) } k.Event(tc.code, false, now) } if err := k.Rules("de", ""); err != nil { t.Fatal(err) } idx, err := k.keymap.ModIndex("Mod5") if err != nil { t.Fatal(err) } if err := k.Mask(1<