code: func ClientEvent(xu *xgbutil.XUtil, window xproto.Window, messageType string,
  	data ...interface{}) error {
  
  	mstype, err := xprop.Atm(xu, messageType)
  	if err != nil {
  		return err
  	}
  
  	evMask := (xproto.EventMaskSubstructureNotify |
  		xproto.EventMaskSubstructureRedirect)
  	cm, err := xevent.NewClientMessage(32, window, mstype, data...)
  	if err != nil {
  		return err
  	}
  
  	return xevent.SendRootEvent(xu, cm, uint32(evMask))
  }
docs: // ClientEvent is a convenience function that sends ClientMessage events
  // to the root window as specified by the EWMH spec.