code: func detachKeyBindWindow(xu *xgbutil.XUtil, evtype int, win xproto.Window) {
  	xu.KeybindsLck.Lock()
  	defer xu.KeybindsLck.Unlock()
  
  	// Since we can't create a full key, loop through all key binds
  	// and check if evtype and window match.
  	for key, _ := range xu.Keybinds {
  		if key.Evtype == evtype && key.Win == win {
  			xu.Keygrabs[key] -= len(xu.Keybinds[key])
  			delete(xu.Keybinds, key)
  		}
  	}
  }
docs: // detachKeyBindWindow removes all callbacks associated with a particular
  // window and event type (either KeyPress or KeyRelease)
  // Also decrements the counter in the corresponding 'keygrabs' map
  // appropriately.
  // This is exported for use in the keybind package. It should not be used.
  // To detach a window from a key binding callbacks, please use keybind.Detach.
  // (This method will issue an Ungrab requests, while keybind.Detach will.)