This Week's Sponsor:

Kolide

Ensures that if a device isn’t secure it can’t access your apps.  It’s Device Trust for Okta.


Using a Mac from iOS, Part 2 – Luna Display and macOS as an App

iPad Diaries is a regular series about using the iPad as a primary computer. You can find more installments here and subscribe to the dedicated RSS feed.

In the first part of my ongoing experiment with controlling and accessing a Mac from the iPad Pro, I covered FileExplorer – the app I use to open Finder locations from iOS’ Files app – and shared a collection of shortcuts to control certain macOS features via Siri and the Shortcuts app. I also described my podcasting setup and how I’ve been taking advantage of Keyboard Maestro to automate window resizing across my two displays connected to the Mac mini. Today, I’m going to cover one of those two external displays – the iPad Pro running the Luna Display app – and how I’ve been using it to have “macOS as an app” on my iPad Pro. If you find this idea of reducing macOS to an app that runs on the iPad upsetting, the rest of this article likely isn’t going to make you happy. If you’re intrigued, however, strap in because I have a lot to share.

Allow me to offer some context first. In case it wasn’t clear with the first installment of this mini-series, the iPad Pro is still my primary computer and I still use it every day for the majority of my work. The main work-related task that I need to perform on macOS is podcast recording1. My Mac mini is primarily a home server dedicated to tasks that are not supported on iOS such as running Plex Media Server, adding HomeKit compatibility to unsupported accessories via homebridge, and downloading 4K versions of YouTube videos using shell scripts. The fact that I acquired a Mac mini and have been using it more than my old MacBook Pro does not mean I’m abandoning the iPad Pro and “going back to the Mac”.

In fact, it’s quite the opposite. As I noted in the last installment of iPad Diaries, I like using macOS for certain tasks that are not available on iOS, but I don’t like being forced to sit down at my desk to use a different computer. After working on the iPad as my main computer for the past seven years, I guess I take its extreme portability for granted. With the iPad Pro I can work from my desk and the kitchen table and the sofa and the balcony; with the Mac mini, I have to sit in a corner of my bedroom.

And it’s not like I only use my Mac for recording podcasts. For all the effort I’ve put into trying to optimize my iPad setup and get everything done on iOS without macOS, there are still certain tasks that I can only perform on a Mac. For example, downloading multiple files with Safari’s download manager on the Mac and having them saved in the Finder is easier than using iCab on iOS if I later need to move those files to an SD card (or, God forbid, a USB drive). Checking the status of my homebridge server (which I leave running in a Terminal window) or tweaking automation settings in Hazel are other examples of app-related tasks that can’t be done on iOS because those apps are Mac-only. I could go on: iTunes is the only way to connect to AirPlay 2 speakers and control them with automation thanks to AppleScript (Shortcuts for iOS does not support these kinds of actions); some websites still don’t work well enough (or at all) in Safari for iPad, such as Google Docs, which I have to use every day to prepare show notes for my podcasts; speaking of Google Docs, I have found that pasting rich text from Evernote into a Google document is only supported on the Mac; for some reason, the rich text framework on iOS loses formatting when copying and pasting between Evernote and Google Docs.

These are just some examples of tasks that I need to perform for my job and apps I need to use for personal reasons that, despite my unending iOS optimism, cannot be completed in a reasonably efficient way on the iPad alone. Which means that, while I consider the iPad Pro my primary computer, I also have a use for the Mac these days, and I don’t begrudge this at all. I like using macOS for what it’s good at, and I’m having fun re-learning my way around apps like Hazel and Keyboard Maestro.

However, this doesn’t change the fact that I’m still not in love with the idea of the Mac mini requiring me to sit down in one specific location of the house to use it. What if I’m in the middle of a writing session on the iPad Pro in another room but need to quickly check something on the Mac? On the other hand, when I am using the Mac mini, what if I could “expand” the setup at my (relatively small) desk by adding another display without actually buying a new, separate external display for the Mac alone? This is where Luna Display comes in.

Luna Display

By now you’re probably familiar with Luna Display: it’s a popular third-party accessory that resembles a tiny USB key and which you plug into your Mac. The Luna device pretends to be a physical display attached to the Mac (hence why the device comes in two versions, Mini DisplayPort and USB-C – standards typically used for connecting displays) while, in practice, it connects wirelessly to a Luna Display app running on your iPad, which is where you’ll actually see the macOS interface.

The Luna Display is tiny.

The Luna Display is tiny.

The chief advantage of Luna Display over other apps that promise to turn your iPad into a wireless display for your Mac is the fact that Luna Display is a hardware-based solution that can tap directly into the power of your Mac’s GPU to optimize performance. Luna is based on the LIQUID engine, which its developers previously used for their AstroPad creative app and later realized could be applied to a more generalized second-display product such as Luna Display. The benefits of a physical device plugged into your Mac combined with the LIQUID engine can be summarized as follows: Luna Display supports hardware acceleration with Retina quality and up to 60fps; its Velocity Control feature analyzes network traffic dozens of times each second to dynamically optimize image quality depending on your WiFi network; and, LIQUID supports the full range of native iPad features such as Pencil-based UI control and keyboard shortcuts.

Comparing Luna Display to other software-based solutions (such as Duet and Air Display) is beyond the scope of this article, but I’ll say this: I tested both alternatives with my 2018 Mac mini and 2018 iPad Pro running on a 5Ghz WiFi network powered by an Orbi mesh system, and none of them came even close to the performance and responsiveness granted by Luna Display (I have a USB-C version). With those apps, I constantly ran into choppy animations, typing latency, or poor image quality.

This is not to say that Luna Display is flawless2 or that it perfectly mimics the experience of connecting a monitor to a Mac via a cable: I still see the occasional slowdown and image artifact when using Luna Display, particularly when lots of things are going on in my network (such as Backblaze or Dropbox) or when I’m working with several windows at once. Those issues, however, are always temporary and resolved in a couple of seconds by the LIQUID engine; the overall performance of Luna Display is excellent, to the point where I sometimes forget there is no cable running from my iPad Pro into the Mac mini. I can work with macOS from my iPad Pro at the kitchen table, and it feels like the Mac mini is right next to me, not in another room with a wall between us. All of this to say: the Luna Display performance hype is most definitely real, and it’s vastly superior to any other software-based solution I’ve tested before.

With Luna Display, I can AirDrop files to the same iPad running a different OS.

With Luna Display, I can AirDrop files to the same iPad running a different OS.

I should also point out a few details about Luna Display as an iPad app that integrates with iOS. Luna Display turns your iPad into a wireless display for the Mac; as such, it lets you touch the screen to control Mac interface elements, or you can use the Pencil if you need more precise control. If you’re using the iPad running Luna Display as a secondary monitor for the Mac, you can use the Magic Trackpad you normally use as the Mac’s primary pointing device and control what’s on the Luna Display. Again, the Luna Display is just an additional monitor for your Mac that you can find under System Preferences ⇾ Displays. If you don’t want to use peripherals paired with your Mac to control what’s on screen in the Luna Display app on the iPad, besides the aforementioned support for touch controls and the Pencil, you can use whatever keyboard is paired with the iPad; keystrokes and keyboard shortcuts are natively sent to macOS, which means an iPad Pro with a Smart Keyboard and Apple Pencil is a perfectly fine combination to have both keyboard input and cursor control in one integrated package that runs on iOS.

For obvious reasons, Luna Display does not support Split View (it needs to show you the Mac’s display in full-screen); even though I sometimes wish that was an option (imagine being able to keep both macOS and an iOS app right next to each other!)3, I can just put other iOS apps in Slide Over on top of Luna Display, and that works well enough.

The good thing is, once Marzipan ships, this hybrid environment will be macOS' new reality and fewer people will probably call me crazy. At least one can hope.

The good thing is, once Marzipan ships, this hybrid environment will be macOS’ new reality and fewer people will probably call me crazy. At least one can hope.

At a high level, there are two ways to turn the iPad into a monitor for the Mac using Luna Display: you can either use Luna Display as a second monitor in addition to the primary display of the Mac, which is what you’d do if your Mac was a MacBook Pro, iMac, or any other Mac with a display always attached to it; or, you can use Luna Display as the primary display if you have a “headless” setup (such as a Mac mini) or if you manually change the display arrangement in macOS’ System Preferences. In the few months I’ve spent using the Luna Display with my iPad Pro, I’ve noticed pros and cons in each approach, and I’ve come up with a series of workarounds, best practices, and tips I want to share today.

Waking the Mac with a Siri Shortcut

First of all, if you’re like me and have a Mac desktop you want to control with the Luna Display on an iPad around the house, chances are you’ve set macOS to put the computer to sleep after a few minutes of inactivity. And while the Luna Display receiver app for Mac can keep running in the background all the time, it won’t be able to wake your computer from sleep if an iPad running the Luna Display app for iOS tries to connect to it. Your computer needs to be awake and running the Luna Display app if you want to control it from the iPad.

As I shared in the last installment of iPad Diaries, I put together two custom shortcuts to obviate this very problem. The shortcuts take advantage of the Shortcuts app’s native ‘Run SSH Script’ action to send a caffeinate command to the Mac’s shell; this command, as I explained in the article, wakes a computer from sleep and displays the login screen.

Easy enough.

Easy enough.

If you’re close enough to the Mac for Apple Watch proximity-based authentication to work, you won’t have to do anything else for the Mac to be unlocked. In fact, most days I can just say “Hey Siri, wake Mac” to my HomePod (or AirPods) before opening Luna Display on the iPad, and my shortcut will wake the Mac mini, which will be instantly unlocked by my Apple Watch. And at that point, the Luna Display app that I always keep running in the macOS dock will be ready to connect to its iOS counterpart. For those rare times when I’m not wearing an Apple Watch though (or if I already know the Apple Watch authentication is going to fail because I’m too distant from the Mac mini), I use a different flavor of the same shortcut that types my password too after waking the Mac from sleep.

Make sure that you enable Remote Login (SSH) for these shortcuts to work.

Make sure that you enable Remote Login (SSH) for these shortcuts to work.

Thanks to these two shortcuts, I can let my Mac mini go to sleep as usual but still quickly connect via Luna Display when I need it. You can download the shortcuts below, or find them in the MacStories Shortcuts Archive.

Wake Mac

Wake the display connected to a Mac on the same local network as your iOS device.

Get the shortcut here.

Wake Mac + Login

Wake the display connected to a Mac on the same local network as your iOS device and paste your password in the login screen by simulating keystrokes.

Get the shortcut here.

Luna Display as a Primary Display

While Luna Display is primarily advertised as a way to extend your Mac setup by adding a secondary display that is actually an iPad, over the past few months we’ve seen a few examples of folks turning the iPad Pro running Luna Display into a primary display for a headless Mac setup. Of course, some of them were probably inspired by the fact that the Luna Display creators themselves touted the advantages of such an approach when the new Mac mini launched in November.

It is possible to use Luna Display as your Mac’s primary monitor, and I’ve done it myself several times over the last couple of months, but it’s not the solution I recommend unless you really have a Mac mini without a display physically connected to it.

It’s important to note the distinction macOS makes when dealing with external displays in what Apple labels “extended desktop mode”. By default, a Mac has a primary display and optional secondary displays; the primary display is where your desktop icons and app windows first appear. You can move windows between displays, and you can tweak the arrangement of displays in System Preferences, but you’re always going to have to keep in mind that macOS can only see one display as primary and that choosing a different primary display has to be done manually by the user.

Here’s the problem: unless you set the Luna Display monitor to be the primary one beforehand, or unless you come up with ways to mitigate this issue (more on this in the next section), every time you open an app or trigger a keyboard shortcut on the iPad running Luna Display the associated action will be performed on the primary display by default. In my case, that meant that hitting ⌥Space to trigger Alfred would show the app’s search window on the UltraFine 4K, which is my Mac mini’s primary display, rather than the Luna Display on the iPad Pro; similarly, I couldn’t see the dock and desktop icons on the iPad, and every app window would open on the UltraFine by default. As someone who has a traditional desktop setup with a Mac connected to a display and just wants to use Luna Display as an optional way to control it (as I bet most users do), this is not an ideal situation.

The solution, as I noted above, would be to use the Luna Display as the primary monitor for the Mac. The problem is that there’s no intuitive or automatic way to quickly switch primary/secondary displays on Mojave that doesn’t involve disabling SIP (at least to my knowledge)4, and I’d rather keep that extra security feature enabled permanently. Which leaves us with the two manual options: physically unplugging the primary display from the Mac so that Luna Display can become the primary one by default (but this only works for Macs where the display can be disconnected, like a Mac mini); or, we have to manually select the primary display in macOS’ System Preferences.

If you own a Mac mini and are okay with the first option for those times when you want to use Luna Display for a long work session, then great – just unplug the primary display and use Luna Display instead. I tried this a few times and, personally, I couldn’t stand the slight annoyance of having to re-plug the USB-C cable into the back of the UltraFine every time I had to sit down in front of my Mac mini. Workarounds that involve physical actions to be performed and remembered are not for me.

The other approach, which I begrudgingly use on occasion, requires you to select a different primary display by going to System Preferences ⇾ Displays ⇾ Arrangement (while Luna Display is connected) and relocating the white menu bar to the new primary display by dragging it on top of the Luna Display monitor.

Good luck doing this without an Apple Pencil.

Good luck doing this without an Apple Pencil.

Here’s my issue with this: the menu bar that acts as an indicator of the primary display is a thin stripe of pixels that I can’t manage to select using my finger alone when using Luna Display on the iPad. This interface element was clearly designed for a desktop pointing device; the only way I found to move the menu bar from the iPad is to use the Apple Pencil. Again, possible, but not ideal, and definitely not automated in any way. Even with this approach, however, you’d still run into the problem of System Preferences initially opening on the primary display.

I tried everything I could imagine to make Luna Display work as a primary display for my setup; ultimately, I realized that as long as I keep the UltraFine on my desk, that’s going to be treated as the primary display by the Mac mini; there are workarounds, but I’m not in love with any of them.

So I started looking at the problem from a different perspective. If Luna Display was conceived as a way to turn the iPad into a secondary display for the Mac, what could I do to overcome the limitations of secondary displays instead of trying to shoehorn Luna Display into being a primary display on-demand? As it turns out, there’s a lot of flexibility involved with optimizing the software experience for secondary displays, and that’s when Luna Display finally clicked for me.


  1. Although I've been working on fixing this aspect as well, and I should have more to share soon. ↩︎
  2. A major downside of Luna Display is the lack of audio passthrough to the iPad. Any audio or sound effect that would normally play on the Mac will not play on the iPad connected via Luna Display. This isn't a big deal for me because whenever I listen to music on my Mac, I do it with iTunes (which is always streaming audio to one or more HomePods), but it's worth mentioning. ↩︎
  3. Luckily, June isn't that far now. ↩︎
  4. I'm pretty sure SwitchResX could do this, but I don't feel comfortable disabling System Integrity Protection just for this. If you know of any other utility that can do this, please let me know. ↩︎

Unlock More with Club MacStories

Founded in 2015, Club MacStories has delivered exclusive content every week for over six years.

In that time, members have enjoyed nearly 400 weekly and monthly newsletters packed with more of your favorite MacStories writing as well as Club-only podcasts, eBooks, discounts on apps, icons, and services. Join today, and you’ll get everything new that we publish every week, plus access to our entire archive of back issues and downloadable perks.

The Club expanded in 2021 with Club MacStories+ and Club Premier. Club MacStories+ members enjoy even more exclusive stories, a vibrant Discord community, a rotating roster of app discounts, and more. And, with Club Premier, you get everything we offer at every Club level plus an extended, ad-free version of our podcast AppStories that is delivered early each week in high-bitrate audio.

Choose the Club plan that’s right for you:

  • Club MacStories: Weekly and monthly newsletters via email and the web that are brimming with app collections, tips, automation workflows, longform writing, a Club-only podcast, periodic giveaways, and more;
  • Club MacStories+: Everything that Club MacStories offers, plus exclusive content like Federico’s Automation Academy and John’s Macintosh Desktop Experience, a powerful web app for searching and exploring over 6 years of content and creating custom RSS feeds of Club content, an active Discord community, and a rotating collection of discounts, and more;
  • Club Premier: Everything in from our other plans and AppStories+, an extended version of our flagship podcast that’s delivered early, ad-free, and in high-bitrate audio.