diff --git a/res/values/custom_arrays.xml b/res/values/custom_arrays.xml
index eff5300..a8f0951 100644
--- a/res/values/custom_arrays.xml
+++ b/res/values/custom_arrays.xml
@@ -461,4 +461,16 @@
         <item>6</item>
         <!--<item>1</item>-->
     </string-array>
+
+    <string-array name="systemui_theme_style_entries" translatable="false">
+        <item>@string/systemui_theme_style_auto</item>
+        <item>@string/systemui_theme_style_light</item>
+        <item>@string/systemui_theme_style_dark</item>
+    </string-array>
+
+    <string-array name="systemui_theme_style_values" translatable="false">
+        <item>0</item>
+        <item>1</item>
+        <item>2</item>
+    </string-array>
 </resources>
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 88184ae..db487fd 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -610,4 +610,9 @@
     <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>
+
+    <string name="systemui_theme_style_title">SystemUI style</string>
+    <string name="systemui_theme_style_auto">Wallpaper based</string>
+    <string name="systemui_theme_style_light">Light style</string>
+    <string name="systemui_theme_style_dark">Dark style</string>
 </resources>
diff --git a/res/xml/style_settings.xml b/res/xml/style_settings.xml
index 94c25df..af018ae 100644
--- a/res/xml/style_settings.xml
+++ b/res/xml/style_settings.xml
@@ -30,8 +30,16 @@
                     android:targetPackage="org.omnirom.omnistyle"
                     android:targetClass="org.omnirom.omnistyle.BrowseWallsActivity" />
         </Preference>
+
+        <ListPreference
+            android:key="systemui_theme_style"
+            android:title="@string/systemui_theme_style_title"
+            android:persistent="false"
+            android:entries="@array/systemui_theme_style_entries"
+            android:entryValues="@array/systemui_theme_style_values" />
+
     </PreferenceCategory>
-    
+
     <PreferenceCategory
         android:key="category_custom_header"
         android:title="@string/custom_header_title">
diff --git a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
index 9876b0a..980a16a 100644
--- a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
@@ -61,6 +61,7 @@
     private static final String CUSTOM_HEADER_PROVIDER = "custom_header_provider";
     private static final String STATUS_BAR_CUSTOM_HEADER = "status_bar_custom_header";
     private static final String CUSTOM_HEADER_ENABLED = "status_bar_custom_header";
+    private static final String SYSTEMUI_THEME_STYLE = "systemui_theme_style";
 
     private Preference mWallBrowse;
     private Preference mHeaderBrowse;
@@ -69,6 +70,7 @@
     private ListPreference mHeaderProvider;
     private String mDaylightHeaderProvider;
     private SystemSettingSwitchPreference mHeaderEnabled;
+    private ListPreference mSystemUIThemeStyle;
 
     @Override
     public int getMetricsCategory() {
@@ -120,6 +122,14 @@
         mHeaderProvider.setSummary(mHeaderProvider.getEntry());
         mHeaderProvider.setOnPreferenceChangeListener(this);
         mDaylightHeaderPack.setEnabled(providerName.equals(mDaylightHeaderProvider));
+
+        mSystemUIThemeStyle = (ListPreference) findPreference(SYSTEMUI_THEME_STYLE);
+        int systemUIThemeStyle = Settings.System.getInt(getContentResolver(),
+                Settings.System.SYSTEM_UI_THEME, 0);
+        valueIndex = mSystemUIThemeStyle.findIndexOfValue(String.valueOf(systemUIThemeStyle));
+        mSystemUIThemeStyle.setValueIndex(valueIndex >= 0 ? valueIndex : 0);
+        mSystemUIThemeStyle.setSummary(mSystemUIThemeStyle.getEntry());
+        mSystemUIThemeStyle.setOnPreferenceChangeListener(this);
     }
 
     private void updateHeaderProviderSummary(boolean headerEnabled) {
@@ -169,6 +179,11 @@
         } else if (preference == mHeaderEnabled) {
             Boolean headerEnabled = (Boolean) newValue;
             updateHeaderProviderSummary(headerEnabled);
+        } else if (preference == mSystemUIThemeStyle) {
+            String value = (String) newValue;
+            Settings.System.putInt(getContentResolver(), Settings.System.SYSTEM_UI_THEME, Integer.valueOf(value));
+            int valueIndex = mSystemUIThemeStyle.findIndexOfValue(value);
+            mSystemUIThemeStyle.setSummary(mSystemUIThemeStyle.getEntries()[valueIndex]);
         }
         return true;
     }
