diff --git a/panelizer.api.php b/panelizer.api.php
index 6d60a6e..a651b03 100644
--- a/panelizer.api.php
+++ b/panelizer.api.php
@@ -26,5 +26,25 @@ function hook_panelizer_pre_view_builder_alter(&$view_mode, \Drupal\Core\Entity\
 }
 
 /**
+ * Allow other modules alter panelizer default display.
+ *
+ * @param $default_display
+ *   Name of default display.
+ * @param \Drupal\Core\Entity\FieldableEntityInterface $entity
+ *   Entity to be viewed.
+ * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
+ *   Current entity display.
+ */
+function hook_panelizer_default_display_alter(&$default_display,
+                                              Drupal\Core\Entity\FieldableEntityInterface $entity,
+                                              Drupal\Core\Entity\Display\EntityViewDisplayInterface $display) {
+  $view_mode = $display->getMode();
+  $displays = $display->getThirdPartySetting('panelizer', 'displays', []);
+  $bundle = $entity->bundle();
+  $entity_type = $entity->getEntityTypeId();
+  // Logic to switch to other existing display from default.
+}
+
+/**
  * @} End of "addtogroup hooks".
  */
\ No newline at end of file
diff --git a/src/Panelizer.php b/src/Panelizer.php
index 5169bb1..4a6043a 100644
--- a/src/Panelizer.php
+++ b/src/Panelizer.php
@@ -212,6 +212,9 @@ class Panelizer implements PanelizerInterface {
    */
   public function getPanelsDisplay(FieldableEntityInterface $entity, $view_mode, EntityViewDisplayInterface $display = NULL) {
     $settings = $this->getPanelizerSettings($entity->getEntityTypeId(), $entity->bundle(), $view_mode, $display);
+    $default_display = $settings['default'];
+    $this->moduleHandler->alter('panelizer_default_display', $default_display, $entity, $display);
+    $settings['default'] = $default_display;
     if (($settings['custom'] || $settings['allow']) && isset($entity->panelizer) && $entity->panelizer->first()) {
       /** @var \Drupal\Core\Field\FieldItemInterface[] $values */
       $values = [];
