How to change Display modes per node (view modes)? In Drupal 8 views modes are supported by Core, which makes entity view modes obsolete. I will like to have the ability to change my view mode per node without using Display Suite.

Does anyone know if I can do this by only using Drupal core or a lighter contribute module than Display suite for? 

Ideally, I will have a select list to pick my view mode from the UI at the node level.
That's a task for hook_entity_view_mode_alter.


  Change the view mode of an entity that is being displayed.


See the following working sample that automatically lets node 123 be rendered in the teaser view mode when accessed as full page. You could simply add your own logic (type, user, datetime etc.) as well.

/**
 * Implements hook_entity_view_mode_alter().
 */
function MYMODULE_entity_view_mode_alter(&amp;$view_mode, Drupal\Core\Entity\EntityInterface $entity, $context) {

  // Change the view mode to teaser on full page view for node ID 123.
  if ($entity-&gt;getEntityTypeId() == 'node' &amp;&amp; $entity-&gt;id() == '123' &amp;&amp; $view_mode == 'full') {
    $view_mode = 'teaser';
  }
}




As you can maybe imagine, from $entity you can get any field value of a node. So you could add some select list field or taxonomy reference to your content type and then adjust that value node-wise. Finally you can use above code snippet to switch the view mode depending on these values. Mission accomplished.