diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 024615f..1d46b7a 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -598,4 +598,6 @@
 
     <string name="logcat_app_title">MatLog</string>
     <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>
 </resources>
diff --git a/res/xml/style_settings.xml b/res/xml/style_settings.xml
index 788519f..411e920 100644
--- a/res/xml/style_settings.xml
+++ b/res/xml/style_settings.xml
@@ -26,6 +26,16 @@
                 android:title="@string/oms_app_title"
                 android:summary="@string/oms_app_summary"/>
 
+            <PreferenceScreen
+                android:key="omni_theme"
+                android:title="@string/omni_theme_title"
+                android:summary="@string/omni_theme_summary"
+                android:persistent="false" >
+                <intent android:action="android.intent.action.MAIN"
+                        android:targetPackage="org.omnirom.daynight"
+                        android:targetClass="org.omnirom.daynight.OmniSubstratumLauncher" />
+            </PreferenceScreen>
+
             <ListPreference
                 android:key="night_mode"
                 android:title="@string/night_mode_title"
diff --git a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
index 77d1575..28d764b 100644
--- a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
@@ -46,6 +46,7 @@
 import com.android.settings.R;
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.internal.util.omni.DeviceUtils;
+import com.android.internal.util.omni.PackageUtils;
 import com.android.settings.Utils;
 import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -77,7 +78,8 @@
     private static final String STATUS_BAR_CUSTOM_HEADER = "status_bar_custom_header";
     private static final String KEY_NIGHT_MODE = "night_mode";
     private static final String KEY_OMS_APP = "oms_app";
-
+    private static final String KEY_OMNI_THEME = "omni_theme";
+    private static final String KEY_CATEGORY_THEMING = "category_theming";
 
     private ListPreference mDaylightHeaderPack;
     private SeekBarPreference mHeaderShadow;
@@ -159,6 +161,15 @@
             mNightModePreference.setOnPreferenceChangeListener(this);
         }
         mOmsApp = (Preference) findPreference(KEY_OMS_APP);
+
+        Preference omniTheme = findPreference(KEY_OMNI_THEME);
+        if (omniTheme != null) {
+            PreferenceCategory themePrefs = (PreferenceCategory) findPreference(KEY_CATEGORY_THEMING);
+            if (themePrefs != null && !PackageUtils.isAvailableApp("org.omnirom.daynight", getActivity())
+                    && !PackageUtils.isAvailableApp("org.omnirom.substratum", getActivity())) {
+                themePrefs.removePreference(omniTheme);
+            }
+        }
     }
 
     @Override
