Several manufacturers have looked at solutions to turn phones into full-featured workstations, the most recent one being Samsung with DeX. Sadly, most of these required a costly dock to connect to external monitors, keyboards and mice, which led to limited usage. Since the release of the Note 9, Samsung got rid of the need to use a cradle and let users directly connect the handset to a display using the built-in USB-C port, which made it easier to use the device as an actual computer. However, since the solution is specific to Samsung, apps have to be optimized specifically for DeX to work best when used in desktop mode, or would otherwise just be regular windowed Android apps. It appears Google is finally looking at harmonizing desktop mode with Android Q, thanks to native support for it.

The new feature is still experimental and can be found in the Developer Options menu, under "Force desktop mode." When turned on, Android will show applications in free-form windows on the external monitor, but still display the status bar at the top, as well as the navigation icons at the bottom, without adapting the interface to a wider monitor. The desktop itself appears only to be customizable with app shortcuts and doesn't seem to display widgets.

While this is an encouraging move from Google, Android Q's desktop mode looks like it's behind Samsung DeX, which has a PC-style task switcher at the bottom and specific application rendering for wider monitors. As Android Q is still in beta, let's wait to see how Google will improve this feature in the final release of the OS and hope it will be more than a mere windowed-application mode.

If you want to try Desktop Mode on your Pixel, Pixel 2, or Pixel 3, you'll have to run the below ADB command after activating the option in the Developer Options menu:

adb shell am start -n "com.google.android.apps.nexuslauncher/com.android.launcher3.SecondaryDisplayLauncher"

If you've downloaded the non-GMS Android Q image for Android Studio, use this one instead:

adb shell am start -n "com.android.launcher3/com.android.launcher3.SecondaryDisplayLauncher"