How to specify default formatter for custom field widget?
Short answer is you can't. You can only specify a default formatter for each field type itself in hook_field_info():


  default_formatter: The machine name of the default formatter to be used by instances of this field type, when no formatter is specified in the instance definition. This formatter must be available whenever the field type is available (i.e. provided by the field type module, or by a module the field type module depends on).