code: func MapsGet(xu *xgbutil.XUtil) (*xproto.GetKeyboardMappingReply,
  	*xproto.GetModifierMappingReply) {
  
  	min, max := minMaxKeycodeGet(xu)
  	newKeymap, keyErr := xproto.GetKeyboardMapping(xu.Conn(), min,
  		byte(max-min+1)).Reply()
  	newModmap, modErr := xproto.GetModifierMapping(xu.Conn()).Reply()
  
  	// If there are errors, we really need to panic. We just can't do
  	// any key binding without a mapping from the server.
  	if keyErr != nil {
  		panic(fmt.Sprintf("COULD NOT GET KEYBOARD MAPPING: %v\n"+
  			"THIS IS AN UNRECOVERABLE ERROR.\n",
  			keyErr))
  	}
  	if modErr != nil {
  		panic(fmt.Sprintf("COULD NOT GET MODIFIER MAPPING: %v\n"+
  			"THIS IS AN UNRECOVERABLE ERROR.\n",
  			keyErr))
  	}
  
  	return newKeymap, newModmap
  }
docs: // A convenience function to grab the KeyboardMapping and ModifierMapping
  // from X. We need to do this on startup (see Initialize) and whenever we
  // get a MappingNotify event.