diff --git a/config/schema/diff.schema.yml b/config/schema/diff.schema.yml
index 8321192..d0ebbe7 100644
--- a/config/schema/diff.schema.yml
+++ b/config/schema/diff.schema.yml
@@ -18,6 +18,19 @@ diff.settings:
         revision_pager_limit:
           type: integer
           label: 'Revisions per page to be displayed in diff pager'
+        layout_plugins:
+          type: sequence
+          label: 'Plugins'
+          sequence:
+            type: mapping
+            label: 'Layout plugins configuration'
+            mapping:
+              enabled:
+                type: boolean
+                label: 'Enabled'
+              weight:
+                type: integer
+                label: 'Weight'
     entity:
       type: sequence
       label: 'Entities'
diff --git a/src/Controller/PluginRevisionController.php b/src/Controller/PluginRevisionController.php
index 07cae4f..5908413 100644
--- a/src/Controller/PluginRevisionController.php
+++ b/src/Controller/PluginRevisionController.php
@@ -159,9 +159,12 @@ class PluginRevisionController extends ControllerBase {
    */
   protected function buildLayoutNavigation(EntityInterface $entity, $left_revision_id, $right_revision_id, $active_filter) {
     $links = [];
-    foreach ($this->diffLayoutManager->getDefinitions() as $key => $value) {
+    $layouts = $this->config->get('general_settings.layout_plugins');
+    $layouts = $layouts ?: $this->diffLayoutManager->getDefinitions();
+    foreach ($layouts as $key => $value) {
+      $layout = $this->diffLayoutManager->getDefinition($key);
       $links[$key] = array(
-        'title' => $value['label'],
+        'title' => $layout['label'],
         'url' => $this->diffRoute($entity, $left_revision_id, $right_revision_id, $key),
       );
     }
diff --git a/src/Form/GeneralSettingsForm.php b/src/Form/GeneralSettingsForm.php
index c15e6a2..db67dfe 100644
--- a/src/Form/GeneralSettingsForm.php
+++ b/src/Form/GeneralSettingsForm.php
@@ -58,6 +58,57 @@ class GeneralSettingsForm extends ConfigFormBase {
       '#options' => $options,
     );
 
+    $layout_plugins = \Drupal::service('plugin.manager.diff.layout')->getDefinitions();
+    $weight = count($layout_plugins) + 1;
+    $layout_plugins_order = [];
+    foreach ($layout_plugins as $id => $layout_plugin) {
+      $layout_plugins_order[$id] = [
+        'label' => $layout_plugin['label'],
+        'enabled' => $config->get('general_settings' . '.' . 'layout_plugins')[$id]['enabled'] ?: FALSE,
+        'weight' => $config->get('general_settings' . '.' . 'layout_plugins')[$id]['weight'] ?: $weight,
+      ];
+      $weight++;
+    }
+
+    $form['layout_plugins'] = [
+      '#type' => 'table',
+      '#header' => [t('Layout'), t('Weight')],
+      '#empty' => t('There are no items yet. Add an item.'),
+      '#suffix' => '<div class="description">' . $this->t('The layout plugins that are enabled for displaying the diff comparison. Select none to allow all plugins.') .'</div>',
+      '#tabledrag' => [
+        [
+          'action' => 'order',
+          'relationship' => 'sibling',
+          'group' => 'diff-layout-plugins-order-weight',
+        ],
+      ],
+    ];
+
+    uasort($layout_plugins_order, 'Drupal\Component\Utility\SortArray::sortByWeightElement');
+
+    foreach ($layout_plugins_order as $id => $layout_plugin) {
+      $form['layout_plugins'][$id]['#attributes']['class'][] = 'draggable';
+      $form['layout_plugins'][$id]['enabled'] = [
+        '#type' => 'checkbox',
+        '#title' => $layout_plugin['label'],
+        '#title_display' => 'after',
+        '#default_value' => $layout_plugin['enabled'],
+      ];
+      $form['layout_plugins'][$id]['weight'] = [
+        '#type' => 'weight',
+        '#title' => t('Weight for @title', ['@title' => $layout_plugin['label']]),
+        '#title_display' => 'invisible',
+        '#delta' => 50,
+        '#default_value' => (int) $layout_plugin['weight'],
+        '#array_parents' => [
+          'settings',
+          'sites',
+          $id
+        ],
+        '#attributes' => ['class' => ['diff-layout-plugins-order-weight']],
+      ];
+    }
+
     return parent::buildForm($form, $form_state);
   }
 
@@ -71,6 +122,7 @@ class GeneralSettingsForm extends ConfigFormBase {
       'radio_behavior',
       'context_lines_leading',
       'context_lines_trailing',
+      'layout_plugins',
     );
     foreach ($keys as $key) {
       $config->set('general_settings.' . $key, $form_state->getValue($key));
