diff --git a/ds.module b/ds.module
index 1c1c6b9..4a0260c 100644
--- a/ds.module
+++ b/ds.module
@@ -575,7 +575,21 @@ function ds_preprocess_field(&$variables) {
     if (isset($field_settings[$entity_type][$bundle][$view_mode][$field_name]['ft'])) {
       $config = $field_settings[$entity_type][$bundle][$view_mode][$field_name]['ft'];
       $variables['ds-config'] = $config;
+    }
+    else {
+      // Check for default field settings.
+      $default_ft = \Drupal::config('ds.settings')->get('ft-default');
+      if ($default_ft != 'default') {
+        $variables['ds-config']['id'] = $default_ft;
 
+        // Load default plugin configuration.
+        // @todo The next step suggests having settings not empty, could it be optimized?
+        /* @var \Drupal\ds\Plugin\DsFieldTemplate\DsFieldTemplateInterface $layout_instance */
+        $layout_instance = \Drupal::service('plugin.manager.ds.field.layout')->createInstance($default_ft);
+        $variables['ds-config']['settings'] = $layout_instance->defaultConfiguration();
+      }
+    }
+    if (!empty($variables['ds-config'])) {
       // When dealing with a field template we need to massage to values before
       // printing to prevent layout issues.
       if (isset($config['id']) && $config['id'] != 'default' && !empty($variables['ds-config']['settings'])) {
@@ -657,6 +671,13 @@ function ds_theme_suggestions_field_alter(&$suggestions, $variables) {
     if (isset($field_settings[$entity_type][$bundle][$view_mode][$field_name]['ft'])) {
       $config = $field_settings[$entity_type][$bundle][$view_mode][$field_name]['ft'];
     }
+    else {
+      // Check for default field settings.
+      $default_ft = \Drupal::config('ds.settings')->get('ft-default');
+      if ($default_ft != 'default') {
+        $config['id'] = $default_ft;
+      }
+    }
 
     // Initialize suggestion name.
     $suggestion = '';
