diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/AppearanceSettings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/AppearanceSettings.kt
index 2720317ded3da4d982748be838ae6b2746145595..4eea3ce72c12cbbbe517785ff4306161566e4310 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/settings/AppearanceSettings.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/settings/AppearanceSettings.kt
@@ -26,7 +26,8 @@ data class AppearanceSettings(
   val inputEnter: InputEnterMode = InputEnterMode.EMOJI,
   val showLag: Boolean = true,
   val theme: Theme = Theme.MATERIAL_LIGHT,
-  val language: String = ""
+  val language: String = "",
+  val keepScreenOn: Boolean = false
 ) {
   enum class InputEnterMode {
     EMOJI,
diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt
index 1efeced29b82a2b81bf423b4f8dcc65485b2ab73..015d621ba63d7ec3b26a128efc808fbed9b2565d 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt
@@ -44,6 +44,10 @@ object Settings {
         context.getString(R.string.preference_show_lag_key),
         AppearanceSettings.DEFAULT.showLag
       ),
+      keepScreenOn = getBoolean(
+        context.getString(R.string.preference_keep_screen_on_key),
+        AppearanceSettings.DEFAULT.keepScreenOn
+      ),
       language = getString(
         context.getString(R.string.preference_language_key),
         AppearanceSettings.DEFAULT.language
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt
index db87d423684c49e39df27533e590234bfe665048..b9c355097f96ed0ed5db92a2b41e15fdb5de02c0 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt
@@ -24,6 +24,7 @@ import android.content.SharedPreferences
 import android.os.Bundle
 import android.support.annotation.ColorRes
 import android.support.annotation.DrawableRes
+import android.view.WindowManager
 import de.kuschku.libquassel.session.Backend
 import de.kuschku.libquassel.util.Optional
 import de.kuschku.quasseldroid.Keys
@@ -75,6 +76,10 @@ abstract class ServiceBoundActivity :
     connection.context = this
     lifecycle.addObserver(connection)
     checkConnection()
+
+    if (appearanceSettings.keepScreenOn) {
+      window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+    }
   }
 
   fun updateRecentsHeader() =
diff --git a/app/src/main/res/values-de/strings_preferences.xml b/app/src/main/res/values-de/strings_preferences.xml
index 56f9477bf2639fe673ee3446203e2eaea6876b41..3f0abe89ace9de3921928b7482f44a2dc0f26252 100644
--- a/app/src/main/res/values-de/strings_preferences.xml
+++ b/app/src/main/res/values-de/strings_preferences.xml
@@ -31,12 +31,17 @@
   <string name="preference_theme_entry_gruvbox_light">Gruvbox (Hell)</string>
   <string name="preference_theme_entry_gruvbox_dark">Gruvbox (Dunkel)</string>
   <string name="preference_theme_entry_dracula">Dracula</string>
+
   <string name="preference_input_enter_title">Eingabetaste auf Tastatur</string>
   <string name="preference_input_enter_entry_emoji">Emoji-Auswahl</string>
   <string name="preference_input_enter_entry_send">Senden</string>
+
   <string name="preference_show_lag_title">Latenz anzeigen</string>
   <string name="preference_show_lag_summary">Zeigt die Gerät-Core-Latenz in der Statusleiste</string>
 
+  <string name="preference_keep_screen_on_title">Bildschirm aktiv halten</string>
+  <string name="preference_keep_screen_on_summary">Verhindert, dass das Gerät in den Schlafmodus wechselt während die App im Vordergrund ist</string>
+
   <string name="preference_language_title">Sprache</string>
   <string name="preference_language_entry_auto">System-Standardsprache</string>
   <string name="preference_notifications_title">Benachrichtigungen</string>
diff --git a/app/src/main/res/values/strings_preferences.xml b/app/src/main/res/values/strings_preferences.xml
index a3e3ccc49b831e73525eb7c1697761dac7b2dbca..23cf0cbf92d1cd592171a9da8e27f0d7152bafcf 100644
--- a/app/src/main/res/values/strings_preferences.xml
+++ b/app/src/main/res/values/strings_preferences.xml
@@ -74,6 +74,10 @@
   <string name="preference_show_lag_title">Show lag</string>
   <string name="preference_show_lag_summary">Displays the lag between client and core in the action bar</string>
 
+  <string name="preference_keep_screen_on_key" translatable="false">keep_screen_on</string>
+  <string name="preference_keep_screen_on_title">Keep Screen Active</string>
+  <string name="preference_keep_screen_on_summary">Prevents the device from going to sleep while the app is in foreground</string>
+
   <string name="preference_language_key" translatable="false">language</string>
   <string name="preference_language_title">Language</string>
   <string name="preference_language_entry_auto">System Default</string>
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index ae83ca1528c9d495902f24dd66d47a2b52bc4981..5f5fb5685b1cf6129b4d92eca22400fb786859cd 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -41,6 +41,12 @@
       android:summary="@string/preference_show_lag_summary"
       android:title="@string/preference_show_lag_title" />
 
+    <SwitchPreference
+      android:defaultValue="false"
+      android:key="@string/preference_keep_screen_on_key"
+      android:summary="@string/preference_keep_screen_on_summary"
+      android:title="@string/preference_keep_screen_on_title" />
+
     <DropDownPreference
       android:defaultValue=""
       android:entries="@array/preference_language_entries"