MCPcopy Index your code
hub / github.com/BobdaProgrammer/doWM / getNumLockMask

Function getNumLockMask

wm/window_manager.go:333–357  ·  view source on GitHub ↗
(conn *xgb.Conn)

Source from the content-addressed store, hash-verified

331
332
333func getNumLockMask(conn *xgb.Conn) uint16 {
334 numLockSym := uint32(0xff7f) // XK_Num_Lock
335 numLockKeycode := getKeycodeForKeysym(conn, numLockSym)
336 if numLockKeycode == 0 {
337 slog.Info("Num Lock keycode not found")
338 return 0
339 }
340
341 modMap, err := xproto.GetModifierMapping(conn).Reply()
342 if err != nil {
343 slog.Error("failed to get modifier mapping: %v","error: " ,err)
344 }
345
346 // Each modifier (Shift, Lock, Control, Mod1-Mod5) has modMap.KeycodesPerModifier keycodes
347 for modIndex := 0; modIndex < 8; modIndex++ {
348 for i := 0; i < int(modMap.KeycodesPerModifier); i++ {
349 index := modIndex*int(modMap.KeycodesPerModifier) + i
350 if modMap.Keycodes[index] == numLockKeycode {
351 return 1 << uint(modIndex)
352 }
353 }
354 }
355
356 return 0
357}
358
359
360func getKeycodeForKeysym(conn *xgb.Conn, keysym uint32) xproto.Keycode {

Callers 1

createKeybindMethod · 0.85

Calls 1

getKeycodeForKeysymFunction · 0.85

Tested by

no test coverage detected