diff --git a/Ryujinx.Ava/Program.cs b/Ryujinx.Ava/Program.cs
index 1dc1a7bce..010aff514 100644
--- a/Ryujinx.Ava/Program.cs
+++ b/Ryujinx.Ava/Program.cs
@@ -6,8 +6,8 @@ using Ryujinx.Common;
 using Ryujinx.Common.Configuration;
 using Ryujinx.Common.GraphicsDriver;
 using Ryujinx.Common.Logging;
-using Ryujinx.Common.SystemInterop;
 using Ryujinx.Common.SystemInfo;
+using Ryujinx.Common.SystemInterop;
 using Ryujinx.Modules;
 using Ryujinx.SDL2.Common;
 using Ryujinx.Ui.Common;
@@ -227,6 +227,12 @@ namespace Ryujinx.Ava
                     ConfigurationState.Instance.Graphics.GraphicsBackend.Value = GraphicsBackend.Vulkan;
                 }
             }
+
+            // Check if docked mode was overriden.
+            if (CommandLineState.OverrideDockedMode.HasValue)
+            {
+                ConfigurationState.Instance.System.EnableDockedMode.Value = CommandLineState.OverrideDockedMode.Value;
+            }
         }
 
         private static void PrintSystemInfo()
diff --git a/Ryujinx.Ui.Common/Helper/CommandLineState.cs b/Ryujinx.Ui.Common/Helper/CommandLineState.cs
index cda4af4ed..8ca7fba18 100644
--- a/Ryujinx.Ui.Common/Helper/CommandLineState.cs
+++ b/Ryujinx.Ui.Common/Helper/CommandLineState.cs
@@ -7,6 +7,7 @@ namespace Ryujinx.Ui.Common.Helper
     {
         public static string[] Arguments { get; private set; }
 
+        public static bool?  OverrideDockedMode      { get; private set; }
         public static string OverrideGraphicsBackend { get; private set; }
         public static string BaseDirPathArg          { get; private set; }
         public static string Profile                 { get; private set; }
@@ -69,6 +70,12 @@ namespace Ryujinx.Ui.Common.Helper
 
                         OverrideGraphicsBackend = args[++i];
                         break;
+                    case "--docked-mode":
+                        OverrideDockedMode = true;
+                        break;
+                    case "--handheld-mode":
+                        OverrideDockedMode = false;
+                        break;
                     default:
                         LaunchPathArg = arg;
                         break;
diff --git a/Ryujinx/Program.cs b/Ryujinx/Program.cs
index b1fedaade..56352a4ce 100644
--- a/Ryujinx/Program.cs
+++ b/Ryujinx/Program.cs
@@ -3,8 +3,8 @@ using Ryujinx.Common;
 using Ryujinx.Common.Configuration;
 using Ryujinx.Common.GraphicsDriver;
 using Ryujinx.Common.Logging;
-using Ryujinx.Common.SystemInterop;
 using Ryujinx.Common.SystemInfo;
+using Ryujinx.Common.SystemInterop;
 using Ryujinx.Modules;
 using Ryujinx.SDL2.Common;
 using Ryujinx.Ui;
@@ -271,6 +271,12 @@ namespace Ryujinx
                 }
             }
 
+            // Check if docked mode was overriden.
+            if (CommandLineState.OverrideDockedMode.HasValue)
+            {
+                ConfigurationState.Instance.System.EnableDockedMode.Value = CommandLineState.OverrideDockedMode.Value;
+            }
+
             // Logging system information.
             PrintSystemInfo();