Customize the default search block
I'm sure this can be done more elegantly , but I was able to do this with a #icon_variable from the form[] to change the input suggestion. I just added side that I want the icon on the button and an extra option to ...-icon-class.html.twig etc.

1) Add a suggestion to the input

function MODULE_theme_suggestions_input_alter(array &amp;$suggestions, array $variables, $hook) {

   if (isset($variables['element']['#icon']) || isset($variables['element']['#icon-left']) || isset($variables['element']['#icon-right'])) {
         $suggestions[] = 'input__submit_icon';
         if (isset($variables['element']['#icon'])) {
           $suggestions[] = 'input__submit_icon_' . $variables['element']['#icon'];
         }
      }
   }


Then I can add/alter this on the form:

   $form['actions']['submit']['#icon-left'] = 'icon-class';


With a template like input__submit_icon.html.twig :

&lt;button {{ attributes }} &gt;
    {% if element['#icon-left'] %}
        &lt;i class="{{ element['#icon-left'] }}"&gt;&lt;/i&gt;
    {% endif %}
    {{ attributes.value }}
    {% if element['#icon-right'] %}
        &lt;i class="{{ element['#icon-right'] }}"&gt;&lt;/i&gt;
    {% endif %}
&lt;/button&gt;