Toying around with a phone dock

In my last post about using my self refurbished Chromebook, I mentioned starting a new job and finding it handy as a portable computer. As of this morning, however, I might have also found another potential option, which I'm typing this on now.

Anyway, long story short, I wound up getting a USB-C laptop dock and a few screens for work, then went "Hmm, I wonder if my phone would connect to this too?" After yoinking the ethernet cord (I figure they probably wouldn't appreciate my phone on the corporate network), I plugged it in and it worked. So, off I went on a quest to figure out how much I could get my phone to act like a desktop. From the looks of it, as long as your phone supports display over USB-C, and is running the latest version of Android, it'll probably work for something like this. The hardware support is the big limiting factor, although my Pixel 8a (and old 5a) both support it - two solid mid range phones - so I'm guessing quite a few phones would work for something like this.

On the software side, getting a more desktop style layout was as simple as enabling developer options, then enabling desktop features. My 8a still has full software support, so it's still getting updates for the latest and greatest, which is needed for experimental features (it's also running GrapheneOS, although I assume Graphene hasn't added any desktop features). With desktop mode enabled, when connecting a screen, it'll prompt you to enable desktop mode or screen mirroring. In desktop mode it actually sets the screen as a second screen (instead of mirroring the phone screen), and has standard desktop OS screen options (such as setting its resolution to match the screen). It also gives a nice desktop style taskbar, standard desktop window management, and changes to the behavior of a few apps (such as enabling double click in the AOSP file browser).

Since I don't think work would be appreciative of me repurposing my dock to toy around with, I wound up buying my own dock - a UGreen Revodok, which cost me $13 on Amazon. The dock itself makes up for the phone's lack of I/O; having two USB-A ports, two USB-C ports, HDMI, and USB-C charging built into it. It seems to work fine with multiple things connected (e.g. no mouse delay), and probably gives the phone better I/O support than most laptops have. I can charge it while it's connected, use peripherals like keyboards/mice or headphones via USB-C <> audio adapter, and presumably even use USB thumb drives and hard drives. Repurposing a monitor and keyboard/mouse combo that were headed to the work e-waste bin, and I've got an entire phone-desktop setup at my work desk.

So, how does it actually work?

Is this actually like a full blown computer, or just fisher price OS with a bigger screen? Of course, with the disclaimer that I've only used this for like an hour.

The Bad

They weren't lying when they said it was experimental. It's not that desktop mode itself isn't working, but a lot of apps have their hangups. Lots of apps don't seem to handle resizing windows or mouse/keyboard input well, and trying to make touch gestures with a mouse is not so intuitive. Using apps built to run in fullscreen on a touchscreen device isn't always going to translate well. Even apps that seem built for it, such as Brave which automatically switches to a desktop layout, lacks some keyboard shortcuts desktop has (shortcuts like Ctrl+F work, while something like Ctrl+T does not).

Android is also somewhat more locked down than a desktop device. It's not like Linux (or to an extent Windows) where you can pick it apart and change each component; things are a lot more set in stone, and the environment is very containerized.

The Good

That said, containerization is a double edged sword. It's not inherently bad, it's actually a very useful security feature. I'm willing to bet a 'desktop' setup with a GrapheneOS based phone is about as secure as you can get, at least without sacrificing much for usability. And it's still got the standard stuff under the hood, you just need to manually enable permissions and fine tune what you do and don't want to allow.

I also think Android is a lot more power-user-friendly than most people give it credit for. Something like Termux is great for running CLI based Linux software, and is nearly a standard shell within Android. I'm writing this now after opening Termux, cd-ing into my Syncthing folder via a bash alias, and opening this markdown file in Emacs (with all the standard keyboard shortcuts and features as desktop Emacs).

Desktop Linux software is also possible now. Although the above image from my phone review post is in Termux, which is a bit complicated to setup a desktop environment in, the Terminal feature (virtualized Debian) added to Android's experimental features makes it quite a lot easier. It's actually fairly easy to run standard graphical desktop software in it, for example, editing photos on my phone using Darktable. There's a slight bit of jank to it, and I don't think it's got graphical acceleration, but for basic stuff like photo editing it's been working well. I've toyed around with Darktable and Gimp in it for a bit now (before getting the dock), and it's been working surprisingly well. On a small phone screen it's a bit difficult, but with an external screen, you can easily forget you're on a phone working in a Linux container.

And finally, of course, it's extremely portable. Compared to a laptop or a tablet, having a phone in my pocket is a lot more portable (and one less thing, since I'd have it with me anyway). Assuming there's a screen/keyboard/mouse where I'm headed, it'd mean lugging around a lot less stuff while also having a better screen & keyboard than a laptop would. Even a small portable screen and keyboard/mouse combo would probably be only slightly more volume, and slightly less weight, than my modified Chromebook. I don't know that I'll actually replace my laptop with a phone + dock for work, but it is a neat idea.

I'm experimenting with what I've deemed a ' mini blog ' - smaller posts and different mediums, while experimenting with different platforms/protocols. If you want to see more you can follow it here .