// addKeyString adds a new key binding string to XUtil.Keystrings. // The invariant is that each key string appears once and only once. func addKeyString(xu *xgbutil.XUtil, callback xgbutil.CallbackKey, evtype int, win xproto.Window, keyStr string, grab bool) { xu.KeybindsLck.Lock() defer xu.KeybindsLck.Unlock() k := xgbutil.KeyString{ Str: keyStr, Callback: callback, Evtype: evtype, Win: win, Grab: grab, } xu.Keystrings = append(xu.Keystrings, k) }