I cannot find any guide that details how this is done, and there are a lot of questions unanswered on this forum, so I am writing this to share my setup and help gather information.

For those who are not familiar: Pixel 8 and Pixel 8 Pro have the hardware capability to output video through DisplayPort alt mode (or commonly understood as HDMI or DisplayPort output through USB-C). This can be used for either screen mirroring to use your phone on a large screen, or screen extension which gives you a desktop-like experience with floating windows. It is turned off in software on the stock OS, but GrapheneOS has enabled this feature. Using a Pixel 8 (Pro) with keyboard and mouse is possibly one of the most secure and private desktop setup, if not the best.

Disclaimer: (1) This is a description for my experience. YMMV. (2) Using this feature requires enabling developer options, which are frown upon in this community because of the security implications. Do not use this feature if the best level of smartphone security is desired. (3) Google is not enabling it because the feature is not finished and has a lot of bugs right now. The experience can be frustrating.

Prerequisites

  1. Pixel 8 or Pixel 8 Pro running the latest version of GrapheneOS (based on Android 14 QPR1 at the time of writing).
    Previous generations do not have the hardware for video output.
  2. A way to display video from USB-C. Examples:
  3. Both (1) a monitor that accepts USB-C connections directly, and (2) a USB-C cable supporting video signals. Regular USB-C cables likely cut corners and do not support video signals, so you may have to get one that specifically supports it. Or,
  4. A (good) USB-C hub supporting video output into HDMI, plus your regular HDMI cable and monitor. I have this setup with a hub from Anker, and can confirm that this model works. Or,
  5. A lapdock like NexDock 360. I have this setup too, but the result is barely usable (more on this later). It is possible that future AOSP updates can fix issues here, but I would not hold my breath.

Steps for screen mirroring

For lapdocks and monitors with USB-C support:

  1. Unlock your phone.
  2. Plug the compatible USB-C cable into your phone and your lapdock or monitor.
  3. If the phone freezes, disconnect and reconnect.

For USB-C hubs:

  1. Unlock your phone.
  2. Plug in the USB-C hub into your phone.
  3. Plug the HDMI cable into your USB-C hub and your monitor.
  4. The USB-C hub likely requires power. If it does, plug in its power supply, which may be a USB-C charger cable into its designated power port.
  5. If the phone freezes, disconnect and reconnect.

Whichever setup you choose, the monitor should now display exactly what your phone is showing. Rotate your phone for a wide view. Further, you can long-press the home screen background, press home settings, and turn on Allow home screen rotation to get a wide home screen view.

For the setup to be more useful, connect a keyboard and a mouse either wired using the USB-C hub (if your monitor has USB ports, plugging them there works too) or wirelessly using Bluetooth. Note that Bluetooth connections are not nearly as secure as wired connections, and it is recommended to use a wired connection, at least for the keyboard.

Steps for screen extension

  1. Enable developer options: in Settings (owner's profile), go to About phone, scroll to the bottom, and repeatedly tap on Build number until it says you are now a developer.
  2. Enable desktop mode: in Settings, go to System -> Developer options -> scroll to about 90% of the page, and
    a. Turn on Force desktop mode, and tap reboot later for now.
    b. (optional) Turn on Enable freeform windows, and tap reboot later for now. It is possible to leave this off, but that means your monitor is just going to show one full-screen app at a time, like a tablet.
    c. (very optional) Turn on Force activities to be resizable and Enable non-resizable in multi window. I do not know what these two options do in practice.
  3. Reboot your phone.
  4. Setup the cables and connect peripherals the same way as the steps for screen mirroring.

Now, your monitor should show your wallpaper and a 9-dot icon on the bottom right. This mean you have finished the setup. Use your mouse to click on the 9-dot icon to show your app drawer, where you can launch your apps on the monitor instead of the phone screen. They will be windowed if you have turned on Enable freeform windows.

Limitations (with USB-C monitor or USB-C hub)

  • A ton of bugs. See troubleshooting section for fixes for some common issues.
  • Alt-Tab works only on the phone side, and cannot be used to switch between apps on the monitor. There is no taskbar.
  • Windowed browser viewport size is additional fingerprinting information.
  • Security implications of turning on developer options.
  • Privacy implications of sending video signals out of the phone.

NexDock-specific limitations

First of all, yes, my NexDock 360 "works" and is able to turn my phone into a laptop with a touch screen. However: a huge drawback right now is that the desktop mode has a nasty bug with keyboard input. Whenever the I-beam cursor shows up in a textbox anywhere and the keyboard idles for about 5 seconds, the screen flickers and bugs out, and the setup is unusable until you disconnect and reconnect the USB-C cable. This includes textboxes on webpages, apps on your monitor, and apps showing on your phone. With many webpages automatically focusing on input textboxes, some hidden, this can be very frustrating. But if you carefully avoid them, for example by doing reading activities only, or switching focus to something other than a text box (or to another app on the monitor) and switching back, or keep typing and deleting whenever the I-beam shows up, this setup can work for an extended period of time.

FAQ

Q: What do I do if the screen glitches out or is not responsive?
A: Here are some tips for common issues:

  • If the screen randomly glitches out or freezes, you may have to disconnect and reconnect the phone.
  • Pressing the Meta key (or Windows key) on the home screen causes the home screen to show up as an app on the monitor, which looks like the screen glitching out. You can press Meta (Windows) + Enter to dismiss it.
  • Occasionally after unlocking, the mouse shows up on the phone, not the monitor, and you may have to disconnect and reconnect the phone.
  • Sometimes the app you launch on the monitor shows up as a full-screen app, and only the top-left is functional while the rest (either all-white or shows the home screen) is not responsive. You can press Meta (Windows) + Enter to dismiss it and reopen it to return it to a window. Locking and then unlocking the phone works too.

Q: Does this work with secondary user profiles?
A: Yes.

Q: Does the mouse show up on the extended desktop?
A: As of 2023121200, yes.

Q: My setup is not working.
A: Double check that your cable or hub specifically supports video signals. Most do not. If you are using a USB-C hub, double check that it is being properly powered. Last but not least, please double check that your monitor is on and set to display the signal from the correct source.

Help, tips, and suggestions are always welcome.

    OutlawSanZhang changed the title to Pixel 8 desktop mode guide and personal experience .
    5 days later

    Thank you for an great post.

    With your set up with the Anker hub, are you using external power? If you are what charger and Watts?

      5 days later

      Hi, thank you for documenting your experiences. Would you please let us know how the experience is using remote desktop into a windows machine or even a Linux machine via NoMachine?

      E.g. how is alt tabbing inside the target machine, do hotkeys correctly pass through like ctrl+alt+del or the Pause key?

      My dream setup is having my phone be the terminal to my work and personal desktop VMs with a portable monitor,mouse,keyboard

      Currently I use a P6P but if this experience is feasible I will buy a P8P right now

        privy2naught slightly off topic, and I can’t help you with your specific question - but this is exactly how I use my iPad. It’s a very cool experience. Would be even better on a gos device.

        BraveDuck The Anker hub setup is able to work without the external power. But I have been using a 50W Anker charger which is enough to charge the phone while running the desktop mode.

        privy2naught Unfortunately I am unable to test this app. Teamviewer does not capture the Alt-Tab. One way to use your P6P to test if it works is to go to System -> Developer options -> Simulate secondary displays to try out the desktop mode yourself. This option gives you a floating, resizable desktop overlaid on top of your regular phone screen, and similar limitations apply. For example, sometimes the mouse does not show up on the floating screen. Try restarting it. Please post to this thread if it works!

        8 days later

        (This forum software again lost my draft after reloading...)

        So basically, the differences between Android and PC are quite drastic.

        PC

        • for offices and work mainly
        • many professional tools, office, video editing, image manipulation, science, coding, ...
        • lots of FOSS but also paid and big software, with many features

        Android

        • 90% Webview
        • mostly just for consuming content, so Apps are minimalist, lots of DRM
        • nearly no real work done, apart from messaging and calling, so...
        • apps have ad-driven free "Android versions" with little features
        • there are no filemanagers with tabs
        • no good Image Editors (Snapseed & Krita are not replacements for GIMP, XNView, Inkscape, Darktable etc.)
        • not sure if Collabora Office is a whole Libreoffice Clone in Desktop mode, in mobile mode its basically only for reading
        • apart from Open Video Editor nothing for Video editing
        • k9mail is simplified (but efficient), but openkeychain is unmaintained and has no key generation!

        The whole interface has to be reduced, and things are often really opinionated. Android has awesome Gems though, like OSMAnd, Infinity for Lemmy, Fedilab and many more things I use through Waydroid on Linux.

        Also some nice ports:

        • Freetube
        • Krita
        • more?

        Not wanting to be pessimistic, but if you are perfectly fine with what a phone can do, doing stuff like this may be fine. But overall, phones are meant for stupid media consumption, messaging and really little really useful stuff.

        I think developers evaded making actually good Apps sometimes, so they are reduced and instead use Ads. But many are also great, and I can imagine many things will be fine!

        Also it is Linux, plus hardening, and it is not fragmented. This is a huge advantage. Do know that 70% of apps will look horrible though.

        For curious people I recommed installing Waydroid on Linux, and test if you could use such a Desktop. Its based on pretty old code now though, and has no official Desktop mode too.

          missing-root i guess in the future you can have full linux app emulation for android, like windows has for linux so you could run a desktop linux app on the phone with docking station, Android 15+ should also have better compatibility with this

            That's right, mobile apps were never designed for desktop use.

            freezet really, Android 15 will have native Linux App support?

            I mean it is already very possible using Termux, a vnc server and local client. But a huge pain in the ass, and a second entire OS and Desktop.

            11 days later

            I read somewhere that the AOSP January patch fixed a bunch of issues with desktop mode. Unable to locate the post. Does anyone have recent experience?

            missing-root Pixels have hardware virtualization support and being able to use other operating systems in virtual machines including Windows 11 and desktop Linux distributions is a planned feature for GrapheneOS. We just haven't prioritized it since there wasn't DisplayPort alternate mode until the Pixel 8 and the desktop mode support still isn't fully baked. Once the feature is complete and enabled on stock OS with a proper UI included for the launcher, we'll consider prioritizing it.

              @missing-root You're making a lot of incorrect assumptions based on your personal knowledge and experience with apps which does not reflect the whole set of apps that are available.

                GrapheneOS not sure which comment you are referring to but I can't find that many incorrect assumptions really.

                Krita, Chromium (and soon Firefox), Acode, OSMAnd~ are the only desktop-friendly/comparable Apps that I know. Maybe a few more, notes apps etc. but a ton of apps are not convergent (like many GNOME and KDE apps are nowadays).

                I sure hope that the many tablet options on the market will motivate people to develop good Tablet software, which would then be a step closer to Desktop.

                It just doesnt make sense on phones, so Android Tablets need to become "a thing". I suppose there are a lot more proprietary options like Adobe, Microsoft, Notes apps etc.

                • KS1 likes this.
                13 days later

                GrapheneOS accepting the hardware limitations as a bottle neck, does this mean a meaningful step towards a xen based (or similar) model?

                Or aside that, the option to launch disposables for untrusted links, PDFs, etc, along with other features people praise Qubes for?

                Since the Pixel 8 only has 1 USB 3.2 Gen 2 Port, will using it with a lot of accessories (ethernet, mouse, keyboard, display, and headset) negatively affect its speed when using external drives?

                • de0u replied to this.

                  sfdhsgjjdkdh I don't think mouse or keyboard matter. But too much overall load will slow the system down. And it might not be the USB port that saturates... DRAM has limited throughput too. Fundamentally this is a phone, not a tower PC.