diff --git a/res/values/custom_arrays.xml b/res/values/custom_arrays.xml
index 35f4b05..837eaab 100644
--- a/res/values/custom_arrays.xml
+++ b/res/values/custom_arrays.xml
@@ -444,4 +444,14 @@
         <item>@string/SHORT_SMS_TEMP_APP_WHITELIST_DURATION</item>
         <item>@string/SHORT_KEY_NOTIFICATION_WHITELIST_DURATION</item>
     </string-array>
+
+    <string-array name="long_press_recents_action_entries" translatable="false">
+        <item>@string/long_press_recents_action_split</item>
+        <item>@string/long_press_recents_action_lastapp</item>
+    </string-array>
+
+    <string-array name="long_press_recents_action_values" translatable="false">
+        <item>0</item>
+        <item>1</item>
+    </string-array>
 </resources>
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 8505c60..19e4c6b 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -212,7 +212,10 @@
     <string name="omniswitch_dialog_running_new">OmniSwitch is currently not enabled. Please enable it in the app settings.</string>
     <string name="omniswitch_dialog_unavail">OmniSwitch is not installed.</string>
     <string name="omniswitch_title">Recents style</string>
-
+    <string name="long_press_recents_action_title">Long press recents action</string>
+    <string name="long_press_recents_action_split">Toggle splitscreen</string>
+    <string name="long_press_recents_action_lastapp">Toggle last app</string>
+    
     <string name="doze_brightness_level_title">Brightness level</string>
 
     <!-- Lock screen config -->
diff --git a/res/xml/button_settings.xml b/res/xml/button_settings.xml
index 56f5d7c..c6f5eb9 100644
--- a/res/xml/button_settings.xml
+++ b/res/xml/button_settings.xml
@@ -264,6 +264,13 @@
             android:entryValues="@array/navbar_recents_style_values"
             android:persistent="false"/>
 
+        <ListPreference
+            android:key="long_press_recents_action"
+            android:title="@string/long_press_recents_action_title"
+            android:entries="@array/long_press_recents_action_entries"
+            android:entryValues="@array/long_press_recents_action_values"
+            android:persistent="false"/>
+
         <org.omnirom.omnigears.preference.SystemSettingSwitchPreference
             android:key="button_back_kill_enable"
             android:title="@string/button_back_kill_enable_title"
diff --git a/src/org/omnirom/omnigears/ButtonSettings.java b/src/org/omnirom/omnigears/ButtonSettings.java
index 0f3d259..33a3a17 100644
--- a/src/org/omnirom/omnigears/ButtonSettings.java
+++ b/src/org/omnirom/omnigears/ButtonSettings.java
@@ -96,6 +96,7 @@
     private static final String KEYS_DISABLE_HW_KEY = "hardware_keys_disable";
     private static final String NAVIGATION_BAR_RECENTS_STYLE = "navbar_recents_style";
     private static final String BUTTON_BACK_KILL_TIMEOUT = "button_back_kill_timeout";
+    private static final String LONG_PRESS_RECENTS_ACTION = "long_press_recents_action";
 
     // Available custom actions to perform on a key press.
 //    private static final int ACTION_NOTHING = 0;
@@ -151,6 +152,7 @@
 //    private PreferenceCategory mKeysAssistCategory;
     private ListPreference mNavbarRecentsStyle;
     private ListPreference mBackKillTimeout;
+    private ListPreference mLongPressRecentsAction;
 
     @Override
     protected int getMetricsCategory() {
@@ -471,6 +473,14 @@
         mNavbarRecentsStyle.setSummary(mNavbarRecentsStyle.getEntry());
         mNavbarRecentsStyle.setOnPreferenceChangeListener(this);
 
+        mLongPressRecentsAction = (ListPreference) findPreference(LONG_PRESS_RECENTS_ACTION);
+        int longPressRecentsAction = Settings.System.getInt(resolver,
+                Settings.System.BUTTON_LONG_PRESS_RECENTS, 0);
+
+        mLongPressRecentsAction.setValue(Integer.toString(longPressRecentsAction));
+        mLongPressRecentsAction.setSummary(mLongPressRecentsAction.getEntry());
+        mLongPressRecentsAction.setOnPreferenceChangeListener(this);
+
         mBackKillTimeout = (ListPreference) findPreference(BUTTON_BACK_KILL_TIMEOUT);
         final int backKillTimeoutDefault = res.getInteger(com.android.internal.R.integer.config_backKillTimeout);
         final int backKillTimeout = Settings.System.getInt(resolver,
@@ -706,6 +716,12 @@
             mBackKillTimeout.setSummary(mBackKillTimeout.getEntries()[index]);
             Settings.System.putInt(getContentResolver(), Settings.System.BUTTON_BACK_KILL_TIMEOUT, value);
             return true;
+        } else if (preference == mLongPressRecentsAction) {
+            int value = Integer.valueOf((String) newValue);
+            int index = mLongPressRecentsAction.findIndexOfValue((String) newValue);
+            mLongPressRecentsAction.setSummary(mLongPressRecentsAction.getEntries()[index]);
+            Settings.System.putInt(getContentResolver(), Settings.System.BUTTON_LONG_PRESS_RECENTS, value);
+            return true;
         }
         return false;
     }
