diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..e84ff8f
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="deploymentTargetDropDown">
+    <runningDeviceTargetSelectedWithDropDown>
+      <Target>
+        <type value="RUNNING_DEVICE_TARGET" />
+        <deviceKey>
+          <Key>
+            <type value="SERIAL_NUMBER" />
+            <value value="C86314713FC5" />
+          </Key>
+        </deviceKey>
+      </Target>
+    </runningDeviceTargetSelectedWithDropDown>
+    <timeTargetWasSelectedWithDropDown value="2021-11-07T15:04:02.322808Z" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Android.bp b/Android.bp
index 60c1d6c..df8a12a 100644
--- a/Android.bp
+++ b/Android.bp
@@ -7,7 +7,6 @@
 
   srcs: [
     "app/src/main/**/*.kt",
-    "app/src/main/**/*.java",
   ],
 
   resource_dirs: [
@@ -19,6 +18,7 @@
     "androidx.appcompat_appcompat",
     "androidx.preference_preference",
     "com.google.android.material_material",
+    "OmniLib",
   ],
 
   kotlincflags: ["-Xjvm-default=enable"],
diff --git a/app/src/main/java/org/omnirom/control/AbstractSettingsFragment.kt b/app/src/main/java/org/omnirom/control/AbstractSettingsFragment.kt
new file mode 100644
index 0000000..d318550
--- /dev/null
+++ b/app/src/main/java/org/omnirom/control/AbstractSettingsFragment.kt
@@ -0,0 +1,37 @@
+package org.omnirom.control
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.preference.PreferenceFragmentCompat
+import org.omnirom.omnilib.preference.SecureCheckBoxPreference
+import org.omnirom.omnilib.preference.SecureSettingSwitchPreference
+import org.omnirom.omnilib.preference.SystemCheckBoxPreference
+import org.omnirom.omnilib.preference.SystemSettingSwitchPreference
+
+abstract class AbstractSettingsFragment() : PreferenceFragmentCompat() {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        // TODO this is just to create some reference to OmniLib
+        val sysSwitch = SystemSettingSwitchPreference(requireContext())
+        val sysCheck = SystemCheckBoxPreference(requireContext())
+        val secSwitch = SecureSettingSwitchPreference(requireContext())
+        val secCheck = SecureCheckBoxPreference(requireContext())
+    }
+
+    abstract fun getFragmentTitle(): String
+
+    abstract fun getFragmentSummary(): String
+
+    abstract fun getFragmentIcon(): Int
+
+    override fun onResume() {
+        super.onResume()
+        (activity as? AppCompatActivity)?.supportActionBar?.setDisplayHomeAsUpEnabled(true)
+        (activity as? SettingsActivity)?.updateFragmentTitle(
+            getFragmentTitle(),
+            getFragmentSummary(),
+            getFragmentIcon()
+        )
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/omnirom/control/AppListFragment.kt b/app/src/main/java/org/omnirom/control/AppListFragment.kt
index 1ad24f5..f2a513d 100644
--- a/app/src/main/java/org/omnirom/control/AppListFragment.kt
+++ b/app/src/main/java/org/omnirom/control/AppListFragment.kt
@@ -19,21 +19,26 @@
 
 import android.content.Intent
 import android.os.Bundle
-import androidx.appcompat.app.AppCompatActivity
 import androidx.preference.Preference
 import androidx.preference.PreferenceCategory
-import androidx.preference.PreferenceFragmentCompat
 
-class AppListFragment : PreferenceFragmentCompat() {
+// TODO maybe better to use a GridView
+class AppListFragment : AbstractSettingsFragment() {
     private val KEY_APPS_LIST = "apps_list"
     private val OMNISTORE_APP_PKG = "org.omnirom.omnistore"
     private val OMNISTORE_INSTALL_PKG = "org.omnirom.omnistoreinstaller"
     lateinit var appManager: ApplicationManager
 
-    override fun onResume() {
-        super.onResume()
-        (activity as? AppCompatActivity)?.supportActionBar?.setDisplayHomeAsUpEnabled(true)
-        (activity as? SettingsActivity)?.updateFragmentTitle(resources.getString(R.string.applist_settings_title))
+    override fun getFragmentTitle(): String {
+        return resources.getString(R.string.applist_settings_title)
+    }
+
+    override fun getFragmentSummary(): String {
+        return resources.getString(R.string.applist_settings_summary)
+    }
+
+    override fun getFragmentIcon(): Int {
+        return R.drawable.applist_icon
     }
 
     override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
diff --git a/app/src/main/java/org/omnirom/control/BarsSettingsFragment.kt b/app/src/main/java/org/omnirom/control/BarsSettingsFragment.kt
index dd475bb..cd069b5 100644
--- a/app/src/main/java/org/omnirom/control/BarsSettingsFragment.kt
+++ b/app/src/main/java/org/omnirom/control/BarsSettingsFragment.kt
@@ -24,12 +24,18 @@
 import androidx.preference.PreferenceFragmentCompat
 
 
-class BarsSettingsFragment : PreferenceFragmentCompat() {
+class BarsSettingsFragment : AbstractSettingsFragment() {
 
-    override fun onResume() {
-        super.onResume()
-        (activity as? AppCompatActivity)?.supportActionBar?.setDisplayHomeAsUpEnabled(true)
-        (activity as? SettingsActivity)?.updateFragmentTitle(resources.getString(R.string.bars_settings_title))
+    override fun getFragmentTitle(): String {
+        return resources.getString(R.string.bars_settings_title)
+    }
+
+    override fun getFragmentSummary(): String {
+        return resources.getString(R.string.bars_settings_summary)
+    }
+
+    override fun getFragmentIcon(): Int {
+        return R.drawable.ic_bars_tile
     }
 
     override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
diff --git a/app/src/main/java/org/omnirom/control/ButtonSettingsFragment.kt b/app/src/main/java/org/omnirom/control/ButtonSettingsFragment.kt
index ebb9a9e..bdfc2ee 100644
--- a/app/src/main/java/org/omnirom/control/ButtonSettingsFragment.kt
+++ b/app/src/main/java/org/omnirom/control/ButtonSettingsFragment.kt
@@ -24,12 +24,18 @@
 import androidx.preference.PreferenceFragmentCompat
 
 
-class ButtonSettingsFragment : PreferenceFragmentCompat() {
+class ButtonSettingsFragment : AbstractSettingsFragment() {
 
-    override fun onResume() {
-        super.onResume()
-        (activity as? AppCompatActivity)?.supportActionBar?.setDisplayHomeAsUpEnabled(true)
-        (activity as? SettingsActivity)?.updateFragmentTitle(resources.getString(R.string.button_settings_title))
+    override fun getFragmentTitle(): String {
+        return resources.getString(R.string.button_settings_title)
+    }
+
+    override fun getFragmentSummary(): String {
+        return resources.getString(R.string.button_settings_summary)
+    }
+
+    override fun getFragmentIcon(): Int {
+        return R.drawable.ic_settings_buttons
     }
 
     override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
diff --git a/app/src/main/java/org/omnirom/control/LockscreenSettingsFragment.kt b/app/src/main/java/org/omnirom/control/LockscreenSettingsFragment.kt
index 730dadc..ec4b370 100644
--- a/app/src/main/java/org/omnirom/control/LockscreenSettingsFragment.kt
+++ b/app/src/main/java/org/omnirom/control/LockscreenSettingsFragment.kt
@@ -18,18 +18,21 @@
 package org.omnirom.control
 
 import android.os.Bundle
-import android.provider.Settings
-import androidx.appcompat.app.AppCompatActivity
 import androidx.preference.Preference
-import androidx.preference.PreferenceFragmentCompat
 
 
-class LockscreenSettingsFragment : PreferenceFragmentCompat() {
+class LockscreenSettingsFragment : AbstractSettingsFragment() {
 
-    override fun onResume() {
-        super.onResume()
-        (activity as? AppCompatActivity)?.supportActionBar?.setDisplayHomeAsUpEnabled(true)
-        (activity as? SettingsActivity)?.updateFragmentTitle(resources.getString(R.string.lockscreen_item_title))
+    override fun getFragmentTitle(): String {
+        return resources.getString(R.string.lockscreen_item_title)
+    }
+
+    override fun getFragmentSummary(): String {
+        return resources.getString(R.string.lockscreen_item_summary)
+    }
+
+    override fun getFragmentIcon(): Int {
+        return R.drawable.ic_lockscreen_tile
     }
 
     override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
diff --git a/app/src/main/java/org/omnirom/control/MoreSettingsFragment.kt b/app/src/main/java/org/omnirom/control/MoreSettingsFragment.kt
index 77a337c..9d72993 100644
--- a/app/src/main/java/org/omnirom/control/MoreSettingsFragment.kt
+++ b/app/src/main/java/org/omnirom/control/MoreSettingsFragment.kt
@@ -18,18 +18,21 @@
 package org.omnirom.control
 
 import android.os.Bundle
-import android.provider.Settings
-import androidx.appcompat.app.AppCompatActivity
 import androidx.preference.Preference
-import androidx.preference.PreferenceFragmentCompat
 
 
-class MoreSettingsFragment : PreferenceFragmentCompat() {
+class MoreSettingsFragment : AbstractSettingsFragment() {
 
-    override fun onResume() {
-        super.onResume()
-        (activity as? AppCompatActivity)?.supportActionBar?.setDisplayHomeAsUpEnabled(true)
-        (activity as? SettingsActivity)?.updateFragmentTitle(resources.getString(R.string.more_settings_title))
+    override fun getFragmentTitle(): String {
+        return resources.getString(R.string.more_settings_title)
+    }
+
+    override fun getFragmentSummary(): String {
+        return resources.getString(R.string.more_settings_summary)
+    }
+
+    override fun getFragmentIcon(): Int {
+        return R.drawable.ic_settings_more
     }
 
     override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
diff --git a/app/src/main/java/org/omnirom/control/SettingsActivity.kt b/app/src/main/java/org/omnirom/control/SettingsActivity.kt
index c628e9e..848abd2 100644
--- a/app/src/main/java/org/omnirom/control/SettingsActivity.kt
+++ b/app/src/main/java/org/omnirom/control/SettingsActivity.kt
@@ -19,6 +19,8 @@
 
 import android.os.Bundle
 import android.view.MenuItem
+import android.view.View
+import android.widget.ImageView
 import android.widget.TextView
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.widget.Toolbar
@@ -27,7 +29,6 @@
 
 class SettingsActivity : AppCompatActivity() {
 
-    lateinit var titleView: TextView
     private val CURRENT_FRAGMENT = "current_fragment"
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -48,8 +49,6 @@
         val toolbar: Toolbar = findViewById(R.id.toolbar)
         toolbar.title = ""
         setSupportActionBar(toolbar)
-
-        titleView = findViewById(R.id.fragment_title)
     }
 
     override fun onOptionsItemSelected(item: MenuItem): Boolean {
@@ -59,8 +58,22 @@
         return super.onOptionsItemSelected(item)
     }
 
+    fun updateFragmentTitle(title: String, summary: String, icon: Int) {
+        (findViewById<TextView>(R.id.fragment_title)).text = title
+        if (summary.isNotEmpty()) {
+            (findViewById<TextView>(R.id.fragment_summary)).visibility = View.VISIBLE
+            (findViewById<TextView>(R.id.fragment_summary)).text = summary
+        } else {
+            (findViewById<TextView>(R.id.fragment_summary)).visibility = View.GONE
+        }
+        (findViewById<ImageView>(R.id.fragment_icon)).visibility = View.VISIBLE
+        (findViewById<ImageView>(R.id.fragment_icon)).setImageResource(icon)
+    }
+
     fun updateFragmentTitle(title: String) {
-        titleView.text = title
+        (findViewById<TextView>(R.id.fragment_title)).text = title
+        (findViewById<TextView>(R.id.fragment_summary)).visibility = View.GONE
+        (findViewById<ImageView>(R.id.fragment_icon)).visibility = View.GONE
     }
 
     override fun onSaveInstanceState(outState: Bundle) {
diff --git a/app/src/main/java/org/omnirom/control/Utils.kt b/app/src/main/java/org/omnirom/control/Utils.kt
index bb4e9bf..6759f88 100644
--- a/app/src/main/java/org/omnirom/control/Utils.kt
+++ b/app/src/main/java/org/omnirom/control/Utils.kt
@@ -10,7 +10,7 @@
                     val enabled = pm.getApplicationEnabledSetting(packageName)
                     enabled != PackageManager.COMPONENT_ENABLED_STATE_DISABLED &&
                             enabled != PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER
-            } catch (e: PackageManager.NameNotFoundException) {
+            } catch (e: Exception) {
                     false
             }
     }
diff --git a/app/src/main/res/drawable/grid_item_background_shape.xml b/app/src/main/res/drawable/grid_item_background_shape.xml
index 5321c0e..ba480c8 100644
--- a/app/src/main/res/drawable/grid_item_background_shape.xml
+++ b/app/src/main/res/drawable/grid_item_background_shape.xml
@@ -17,5 +17,5 @@
 
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
     <corners android:radius="@dimen/grid_item_corner_radius" />
-    <solid android:color="@color/colorPrimary" />
+    <solid android:color="@color/grid_shape_background" />
 </shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_info_outline.xml b/app/src/main/res/drawable/ic_info_outline.xml
new file mode 100644
index 0000000..35f7f5f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_info_outline.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M11,7h2v2h-2zM11,11h2v6h-2zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z"/>
+</vector>
diff --git a/app/src/main/res/layout/grid_fragment.xml b/app/src/main/res/layout/grid_fragment.xml
index a5f25e3..ee2303f 100644
--- a/app/src/main/res/layout/grid_fragment.xml
+++ b/app/src/main/res/layout/grid_fragment.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_marginStart="30dp">
+    android:layout_height="match_parent">
 
     <GridView
         android:id="@+id/grid_view"
diff --git a/app/src/main/res/layout/grid_item.xml b/app/src/main/res/layout/grid_item.xml
index a3e4c62..2ea5762 100644
--- a/app/src/main/res/layout/grid_item.xml
+++ b/app/src/main/res/layout/grid_item.xml
@@ -6,20 +6,20 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_margin="20dp"
+        android:layout_margin="@dimen/grid_item_border"
         android:orientation="horizontal">
 
         <ImageView
             android:id="@+id/grid_item_icon"
-            android:layout_width="48dp"
-            android:layout_height="48dp"
+            android:layout_width="@dimen/grid_item_icon_size"
+            android:layout_height="@dimen/grid_item_icon_size"
             android:layout_gravity="center_vertical" />
 
         <LinearLayout
             android:layout_width="0dp"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:layout_gravity="start|center_vertical"
-            android:layout_marginStart="20dp"
+            android:layout_marginStart="@dimen/fragment_icon_margin_start"
             android:layout_weight="1"
             android:orientation="vertical">
 
@@ -27,18 +27,16 @@
                 android:id="@+id/grid_item_title"
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
-                android:text="foo"
                 android:layout_weight="1"
                 android:gravity="center_vertical"
-                android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"/>
+                android:textAppearance="@style/Theme.OmniControl.GridItem.TitleTextStyle"/>
 
             <TextView
                 android:id="@+id/grid_item_summary"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:text="bar"
                 android:gravity="center_vertical"
-                android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"/>
+                android:textAppearance="@style/Theme.OmniControl.GridItem.SummaryTextStyle"/>
 
         </LinearLayout>
     </LinearLayout>
diff --git a/app/src/main/res/layout/settings_activity.xml b/app/src/main/res/layout/settings_activity.xml
index e403696..8d2b0f8 100644
--- a/app/src/main/res/layout/settings_activity.xml
+++ b/app/src/main/res/layout/settings_activity.xml
@@ -8,18 +8,53 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />
 
-    <TextView
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:id="@+id/fragment_title"
-        android:textAppearance="@style/Theme.OmniControl.TitleTextStyle"
-        android:layout_marginStart="30dp"/>
+        android:layout_gravity="center_vertical"
+        android:layout_marginStart="@dimen/fragment_side_margin"
+        android:orientation="horizontal">
+
+        <ImageView
+            android:id="@+id/fragment_icon"
+            android:layout_width="@dimen/grid_item_icon_size"
+            android:layout_height="@dimen/grid_item_icon_size"
+            android:layout_gravity="center_vertical"
+            android:layout_marginStart="@dimen/fragment_icon_margin_start" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="start|center_vertical"
+            android:layout_marginStart="@dimen/fragment_icon_margin_start"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/fragment_title"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:gravity="center_vertical"
+                android:textAppearance="@style/Theme.OmniControl.TitleTextStyle" />
+
+            <TextView
+                android:id="@+id/fragment_summary"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:gravity="center_vertical"
+                android:textAppearance="@style/Theme.OmniControl.GridItem.SummaryTextStyle" />
+
+        </LinearLayout>
+    </LinearLayout>
 
     <FrameLayout
         android:id="@+id/settings"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_weight="1"
-        android:layout_marginTop="20dp"/>
+        android:layout_marginStart="@dimen/fragment_side_margin"
+        android:layout_marginTop="20dp"
+        android:layout_marginEnd="@dimen/fragment_side_margin"
+        android:layout_weight="1" />
 
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values-land/dimens.xml b/app/src/main/res/values-land/dimens.xml
index 55344e5..33ffafa 100644
--- a/app/src/main/res/values-land/dimens.xml
+++ b/app/src/main/res/values-land/dimens.xml
@@ -1,3 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
+    <dimen name="fragment_side_margin">30dp</dimen>
+    <dimen name="fragment_icon_margin_start">20dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index 672af4a..9f5a30e 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <color name="colorPrimary">@color/material_blue_grey_950</color>
-    <color name="colorPrimaryDark">@color/material_blue_grey_950</color>
-    <color name="main_background_light">@color/material_blue_grey_950</color>
+    <color name="colorPrimary">@color/system_neutral1_900</color>
+    <color name="colorPrimaryDark">@color/system_neutral1_900</color>
+    <color name="main_background_light">@color/system_neutral1_900</color>
+    <color name="grid_shape_background">@color/main_background_light</color>
+
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 3a44432..26ef2e9 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -8,7 +8,12 @@
     <color name="black">#FF000000</color>
     <color name="white">#FFFFFFFF</color>
     <color name="omni_logo_color">#a1c729</color>
-    <color name="colorPrimary">@android:color/white</color>
-    <color name="colorPrimaryDark">@android:color/white</color>
-    <color name="main_background_light">@android:color/white</color>
+    <color name="colorPrimary">@color/system_neutral1_50</color>
+    <color name="colorPrimaryDark">@color/system_neutral1_50</color>
+    <color name="main_background_light">@color/system_neutral1_50</color>
+    <color name="grid_shape_background">@color/main_background_light</color>
+    <color name="material_grey_950">#ff101010</color>
+    <color name="system_neutral1_800">#2E3133</color>
+    <color name="system_neutral1_900">#191C1E</color>
+    <color name="system_neutral1_50">#F0F0F3</color>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index afbe64f..1de6ecd 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -1,6 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <dimen name="applist_icon_size">108dp</dimen>
-    <dimen name="grip_view_spacing">8dp</dimen>
+    <dimen name="grip_view_spacing">0dp</dimen>
     <dimen name="grid_item_corner_radius">16dp</dimen>
+    <dimen name="fragment_side_margin">10dp</dimen>
+    <dimen name="grid_item_border">10dp</dimen>
+    <dimen name="fragment_icon_margin_start">10dp</dimen>
+    <dimen name="grid_item_icon_size">36dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6dbd34b..b38495e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5,7 +5,6 @@
 
     <string name="weather_config_title">Weather service</string>
     <string name="weather_config_summary">System service settings</string>
-
     <string name="omni_remote_title">OmniRemote</string>
     <string name="omni_remote_summary">VNC server to allow remote connection to device</string>
     <string name="matlog_title">MatLog</string>
@@ -49,4 +48,5 @@
     <string name="lockscreen_item_summary">Configure visibility of lock screen items</string>
     <string name="lockscreen_weather_title">Show weather condition</string>
     <string name="lockscreen_weather_summary">Show current weather condition and temperature</string>
+    <string name="lockscreen_weather_enabled_info">Requires enablement of weather service</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 10abf5a..788bc59 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -9,8 +9,14 @@
         <item name="windowActionBar">false</item>
     </style>
 
-    <style name="Theme.OmniControl.TitleTextStyle" parent="TextAppearance.MaterialComponents.Body1">
-        <item name="android:textSize">32dp</item>
-        <item name="android:color">?android:textColorPrimary</item>
+    <style name="Theme.OmniControl.TitleTextStyle" parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title">
+        <item name="android:textSize">24sp</item>
+    </style>
+
+    <style name="Theme.OmniControl.GridItem.TitleTextStyle" parent="@style/TextAppearance.MaterialComponents.Subtitle1">
+        <item name="android:textSize">18sp</item>
+    </style>
+
+    <style name="Theme.OmniControl.GridItem.SummaryTextStyle" parent="@style/TextAppearance.MaterialComponents.Body2">
     </style>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/xml/applist_preferences.xml b/app/src/main/res/xml/applist_preferences.xml
index 4d01696..f337b07 100644
--- a/app/src/main/res/xml/applist_preferences.xml
+++ b/app/src/main/res/xml/applist_preferences.xml
@@ -3,5 +3,4 @@
     <PreferenceCategory android:key="apps_list">
     </PreferenceCategory>
 
-
 </PreferenceScreen>
\ No newline at end of file
diff --git a/app/src/main/res/xml/lockscreen_settings_preferences.xml b/app/src/main/res/xml/lockscreen_settings_preferences.xml
index fc09e06..2215dac 100644
--- a/app/src/main/res/xml/lockscreen_settings_preferences.xml
+++ b/app/src/main/res/xml/lockscreen_settings_preferences.xml
@@ -1,13 +1,22 @@
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:title="@string/lockscreen_item_title"
-    android:key="lockscreen_item">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    android:key="lockscreen_item"
+    android:title="@string/lockscreen_item_title">
 
     <org.omnirom.omnilib.preference.SystemSettingSwitchPreference
+        android:defaultValue="false"
         android:key="lockscreen_weather_enabled"
-        android:title="@string/lockscreen_weather_title"
         android:summary="@string/lockscreen_weather_summary"
-        android:defaultValue="false" />
+        android:title="@string/lockscreen_weather_title" />
+
+    <Preference
+        android:icon="@drawable/ic_info_outline"
+        android:persistent="false"
+        android:summary="@string/lockscreen_weather_enabled_info">
+        <intent
+            android:action="android.intent.action.MAIN"
+            android:targetClass="org.omnirom.omnijaws.SettingsActivityService"
+            android:targetPackage="org.omnirom.omnijaws" />
+    </Preference>
 
 </PreferenceScreen>
 
