diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 105b4e2..88184ae 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -605,4 +605,9 @@
     <string name="logcat_app_summary">Start app to collect logs</string>
     <string name="omni_theme_title">Omni Light/Dark theme</string>
     <string name="omni_theme_summary">Substratum based theme</string>
+
+    <string name="show_dashboard_columns_title">Use columns layout</string>
+    <string name="show_dashboard_columns_summary">In settings main page</string>
+    <string name="hide_dashboard_summary_title">Hide summary</string>
+    <string name="hide_dashboard_summary_summary">In settings main page</string>
 </resources>
diff --git a/res/xml/more_settings.xml b/res/xml/more_settings.xml
index 46ca535..a193dea 100644
--- a/res/xml/more_settings.xml
+++ b/res/xml/more_settings.xml
@@ -28,6 +28,16 @@
                 android:title="@string/volume_dialog_headers_title"
                 android:summary="@string/volume_dialog_headers_summary"
                 android:defaultValue="true" />
+            <SwitchPreference
+                android:key="show_dashboard_columns"
+                android:title="@string/show_dashboard_columns_title"
+                android:summary="@string/show_dashboard_columns_summary"
+                android:persistent="false" />
+            <SwitchPreference
+                android:key="hide_dashboard_summary"
+                android:title="@string/hide_dashboard_summary_title"
+                android:summary="@string/hide_dashboard_summary_summary"
+                android:persistent="false" />
 
         </PreferenceCategory>
 
diff --git a/src/org/omnirom/omnigears/moresettings/MoreSettings.java b/src/org/omnirom/omnigears/moresettings/MoreSettings.java
index 1c8c1e3..ea8dd00 100644
--- a/src/org/omnirom/omnigears/moresettings/MoreSettings.java
+++ b/src/org/omnirom/omnigears/moresettings/MoreSettings.java
@@ -19,17 +19,21 @@
 package org.omnirom.omnigears.moresettings;
 
 import android.content.Context;
+import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.support.v7.preference.ListPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceCategory;
 import android.support.v7.preference.PreferenceScreen;
+import android.support.v7.preference.Preference.OnPreferenceChangeListener;
+import android.support.v14.preference.SwitchPreference;
 import android.provider.SearchIndexableResource;
 import android.util.Log;
 
 import com.android.internal.util.omni.PackageUtils;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
 import com.android.internal.logging.MetricsLogger;
@@ -42,6 +46,10 @@
 
 public class MoreSettings extends SettingsPreferenceFragment implements Indexable {
     private static final String TAG = "MoreSettings";
+    private static final String KEY_SHOW_DASHBOARD_COLUMNS = "show_dashboard_columns";
+    private static final String KEY_HIDE_DASHBOARD_SUMMARY = "hide_dashboard_summary";
+
+    private SharedPreferences mAppPreferences;
 
     @Override
     public int getMetricsCategory() {
@@ -60,6 +68,30 @@
                 systemPrefs.removePreference(logcatApp);
             }
         }
+        mAppPreferences = getActivity().getSharedPreferences(SettingsActivity.APP_PREFERENCES_NAME,
+                Context.MODE_PRIVATE);
+
+        SwitchPreference showColumnsLayout = (SwitchPreference) findPreference(KEY_SHOW_DASHBOARD_COLUMNS);
+        showColumnsLayout.setChecked(mAppPreferences.getInt(SettingsActivity.KEY_COLUMNS_COUNT, 1) == 2);
+        showColumnsLayout.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+            public boolean onPreferenceChange(Preference preference, Object newValue) {
+                if ((Boolean) newValue ) {
+                    mAppPreferences.edit().putInt(SettingsActivity.KEY_COLUMNS_COUNT, 2).commit();
+                } else {
+                    mAppPreferences.edit().putInt(SettingsActivity.KEY_COLUMNS_COUNT, 1).commit();
+                }
+                return true;
+            }
+        });
+
+        SwitchPreference hideColumnSummary = (SwitchPreference) findPreference(KEY_HIDE_DASHBOARD_SUMMARY);
+        hideColumnSummary.setChecked(mAppPreferences.getBoolean(SettingsActivity.KEY_HIDE_SUMMARY, false));
+        hideColumnSummary.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+            public boolean onPreferenceChange(Preference preference, Object newValue) {
+                mAppPreferences.edit().putBoolean(SettingsActivity.KEY_HIDE_SUMMARY, ((Boolean) newValue)).commit();
+                return true;
+            }
+        });
     }
 
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
