diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 0577e1d..c08862a 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -24,6 +24,9 @@
         </value>
       </option>
     </JavaCodeStyleSettings>
+    <JetCodeStyleSettings>
+      <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
+    </JetCodeStyleSettings>
     <codeStyleSettings language="XML">
       <indentOptions>
         <option name="CONTINUATION_INDENT_SIZE" value="4" />
@@ -136,5 +139,8 @@
         </rules>
       </arrangement>
     </codeStyleSettings>
+    <codeStyleSettings language="kotlin">
+      <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
+    </codeStyleSettings>
   </code_scheme>
 </component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2821f80..b7a738d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -28,8 +28,9 @@
         <entry key="app/src/main/res/drawable/ic_launcher_background.xml" value="0.3067708333333333" />
         <entry key="app/src/main/res/drawable/ic_launcher_foreground.xml" value="0.2869791666666667" />
         <entry key="app/src/main/res/drawable/ic_lockscreen_tile.xml" value="0.5130208333333334" />
+        <entry key="app/src/main/res/drawable/ic_remote.xml" value="0.4436936936936937" />
         <entry key="app/src/main/res/drawable/ic_settings_buttons.xml" value="0.3078125" />
-        <entry key="app/src/main/res/drawable/ic_settings_leds.xml" value="4979166666666667" />
+        <entry key="app/src/main/res/drawable/ic_settings_leds.xml" value="4.979166666666667E15" />
         <entry key="app/src/main/res/drawable/ic_settings_more.xml" value="0.30885416666666665" />
         <entry key="app/src/main/res/drawable/ic_settings_omnigears.xml" value="0.3098958333333333" />
         <entry key="app/src/main/res/drawable/ic_settings_overlays.xml" value="0.3078125" />
@@ -61,8 +62,8 @@
         <entry key="app/src/main/res/menu/bottom_navigation.xml" value="0.2375" />
         <entry key="app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" value="0.3067708333333333" />
         <entry key="app/src/main/res/xml/applist_preferences.xml" value="0.4979166666666667" />
-        <entry key="app/src/main/res/xml/battery_light_settings_preferences.xml" value="0.4979166666666667" />
         <entry key="app/src/main/res/xml/bars_settings_preferences.xml" value="0.3098958333333333" />
+        <entry key="app/src/main/res/xml/battery_light_settings_preferences.xml" value="0.4979166666666667" />
         <entry key="app/src/main/res/xml/bottom_navigation.xml" value="0.2375" />
         <entry key="app/src/main/res/xml/button_settings_preferences.xml" value="0.4979166666666667" />
         <entry key="app/src/main/res/xml/lockscreen_settings_preferences.xml" value="0.49583333333333335" />
diff --git a/app/src/main/java/org/omnirom/control/AppListFragment.kt b/app/src/main/java/org/omnirom/control/AppListFragment.kt
index 5764d21..76b4e57 100644
--- a/app/src/main/java/org/omnirom/control/AppListFragment.kt
+++ b/app/src/main/java/org/omnirom/control/AppListFragment.kt
@@ -75,12 +75,12 @@
             resources.getString(R.string.matlog_summary)
         )
 
-        appManager.addApp(
+        /*appManager.addApp(
             "org.omnirom.omniremote",
             "org.omnirom.omniremote.MainActivity",
             resources.getString(R.string.omni_remote_title),
             resources.getString(R.string.omni_remote_summary)
-        )
+        )*/
 
         appManager.addApp(
             "org.omnirom.omnistore",
diff --git a/app/src/main/java/org/omnirom/control/GridViewFragment.kt b/app/src/main/java/org/omnirom/control/GridViewFragment.kt
index ca9a7f4..cb9777f 100644
--- a/app/src/main/java/org/omnirom/control/GridViewFragment.kt
+++ b/app/src/main/java/org/omnirom/control/GridViewFragment.kt
@@ -118,6 +118,14 @@
                 LockscreenSettingsFragment()
             )
         )
+        gridItems.add(
+            FragmentGridItem(
+                R.string.overlays_settings_title,
+                R.string.overlays_settings_summary,
+                R.drawable.ic_settings_overlays,
+                OverlaysFragment()
+            )
+        )
         if (Utils.isAvailableApp(requireContext(), "org.omnirom.omnistyle")) {
             val intent = Intent()
             intent.component = ComponentName(
@@ -193,14 +201,21 @@
                 )
             )
         }
-        gridItems.add(
-            FragmentGridItem(
-                R.string.overlays_settings_title,
-                R.string.overlays_settings_summary,
-                R.drawable.ic_settings_overlays,
-                OverlaysFragment()
+        if (Utils.isAvailableApp(requireContext(), "org.omnirom.omniremote")) {
+            val intent = Intent()
+            intent.component = ComponentName(
+                    "org.omnirom.omniremote",
+                    "org.omnirom.omniremote.MainActivity"
             )
-        )
+            gridItems.add(
+                    IntentGridItem(
+                            R.string.omni_remote_title,
+                            R.string.omni_remote_summary,
+                            R.drawable.ic_remote,
+                            intent
+                    )
+            )
+        }
         gridItems.add(
             FragmentGridItem(
                 R.string.more_settings_title,
diff --git a/app/src/main/res/drawable/ic_remote.xml b/app/src/main/res/drawable/ic_remote.xml
new file mode 100644
index 0000000..b9497dd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_remote.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?><!-- drawable/monitor_cellphone.xml -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:textColorPrimary"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M23,11H18A1,1 0 0,0 17,12V21A1,1 0 0,0 18,22H23A1,1 0 0,0 24,21V12A1,1 0 0,0 23,11M23,20H18V13H23V20M20,2H2C0.89,2 0,2.89 0,4V16A2,2 0 0,0 2,18H9V20H7V22H15V20H13V18H15V16H2V4H20V9H22V4C22,2.89 21.1,2 20,2Z" />
+</vector>
\ 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 5bfa271..37c15a9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -4,7 +4,7 @@
 
     <string name="weather_config_title">Weather provider</string>
     <string name="weather_config_summary">Configure provider settings</string>
-    <string name="omni_remote_title">OmniRemote</string>
+    <string name="omni_remote_title">Remote access</string>
     <string name="omni_remote_summary">VNC server to allow remote connection to device</string>
     <string name="matlog_title">MatLog</string>
     <string name="matlog_summary">Show logcat</string>
diff --git a/build.gradle b/build.gradle
index 01e526c..2b14126 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@
         mavenCentral()
     }
     dependencies {
-        classpath "com.android.tools.build:gradle:7.0.3"
+        classpath 'com.android.tools.build:gradle:7.0.4'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0-RC"
 
         // NOTE: Do not place your application dependencies here; they belong
