Best Way To Run Mac Apps On Linux Mint

To run Mac apps on Linux, you’ll need some sort of virtual machine or translation layer. Run a macOS Virtual Machine (All Apps) The most reliable way to run Mac apps on Linux is through a virtual machine. With a free, open-source hypervisor application like VirtualBox, you can run macOS on a virtual device on your Linux machine. We’ve established how easy it is to make Ubuntu look like a Mac but theming Linux Mint, the popular Ubuntu-based offshoot, is a little trickier. It’s now possible to make Linux Mint look like a Mac too, and it’s all thanks to a customised version of the uncannily accurate macOS Mojave GTK theme we highlighted a few weeks ago.

Linux users who want to run Windows applications without switching operating systems have been able to do so for years with Wine, software that lets apps designed for Windows run on Unix-like systems.

There has been no robust equivalent allowing Mac applications to run on Linux, perhaps no surprise given that Windows is far and away the world's most widely used desktop operating system. A developer from Prague named Luboš Doležel is trying to change that with 'Darling,' an emulation layer for OS X.

'The aim is to achieve binary compatible support for Darwin/OS X applications on Linux, plus provide useful tools that will aid especially in application installation,' Doležel's project page states. Darwin is Apple's open source operating system, which provides some of the backend technology in OS X and iOS. The name 'Darling' combines Darwin and Linux. Darling works by 'pars[ing] executable files for the Darwin kernel... load[ing] them into the memory... and execut[ing] them.'

But there is a ways to go. 'Darling needs to provide an ABI-compatible [application binary interface] set of libraries and frameworks as available on OS X... by either directly mapping functions to those available on Linux, wrapping native functions to bridge the ABI incompatibility, or providing a re-implementation on top of other native APIs,' the project page notes.

Doležel, who started Darling a year ago, described the project and its progress in an e-mail interview with Ars. Darling is in the early stages, able to run numerous console applications but not much else. 'These are indeed the easiest ones to get working, albeit 'easy' is not the right word to describe the amount of work required to achieve that,' Doležel said. 'Such applications include: Midnight Commander, Bash, VIM, or Apple's GCC [GNU Compiler Collection]. I know it doesn't sound all that great, but it proves that Darling provides a solid base for further work.'

Users must compile Darling from the source code and then 'use the 'dyld' command to run an OS X executable,' Doležel said. One roadblock is actually getting Mac .dmg and .pkg application files working on a Linux system. Because doing so isn't that straightforward, Doležel said, 'I've written a FUSE module that enables users to mount .dmg files under Linux directly and without root privileges. An installer for .pkg files is underway.'

Unix/Linux synergy

The fact that OS X is a Unix operating system provides advantages in the development process. 'This saved me a lot of work,' Doležel explained. 'Instead of implementing all the 'system' APIs, it was sufficient to create simple wrappers around the ones available on Linux. I had to check every function for ABI compatibility and then test whether my wrapper works, so it wasn't as easy as it may sound.'

Another lucky break not available to Wine developers is that Apple releases some of the low-level components of OS X as open source code, 'which helped a lot with the dynamic loader and Objective-C runtime support code,' Doležel noted.

But of course, the project is an extremely difficult one. Doležel isn't the first to try it, as Darling was initially based on a separate project called 'maloader.' Doležel said he heard from another group of people 'who started a similar project before but abandoned the idea due to lack of time.'

Doležel was actually a novice to OS X development when he started Darling, being more familiar with OS X from a user's perspective than a developer's perspective. 'I have personally looked for something like Darling before, before I realized I would have to start working on it myself,' he said.

Darling relies heavily on GNUstep, an open source implementation of Apple's Cocoa API. GNUstep provides several core frameworks to Darling, and 'the answer to 'can it run this GUI app?' heavily depends on GNUstep,' Doležel said. Doležel is the only developer of Darling, using up all his spare time on the project.

No reverse-engineering

Doležel isn't reverse-engineering Apple code, noting that it could be problematic in terms of licensing and also that 'disassembling Apple's frameworks wouldn't be helpful at all because Darling and the environment it's running in is layered differently than OS X.'

The development process is a painstaking one, done one application at a time. Doležel explains:

To improve Darling, I first take or write an application I'd like to have running. If it is someone else's application, I first examine it with one of the tools that come with Darling to see what frameworks and APIs it requires. I look up the APIs that are missing in Apple's documentation; then I create stub functions for them and possibly for the rest of the framework, too. (Stub functions only print a warning when they are called but don't do any real work.)

The next step is to implement all the APIs according to the documentation and then see how the application reacts. I also add trace statements into important functions to have an insight into what's happening. I believe this is very much like what Wine developers do.

When things go wrong, I have to use GDB [GNU Debugger] to debug the original application.

It is rather unfortunate that Apple's documentation is often so poorly written; sometimes I have to experiment to figure out what the function really does. Many OS X applications seem to contain complete pieces of example code from Apple's documentation, presumably because one would have to spend a lot of time getting to understand how the APIs interact. This is why I appreciate open source so much—when the documentation is sketchy, you can always look into the code.

Years of development are needed. Similar to Wine, 'Having a list of applications known to be working is probably the best way to go,' Doležel said.

Darling should work on all Linux distributions, he said, with the catch that 'many apps for OS X are 32-bit only, and installing 32-bit packages on a 64-bit Linux system could be tricky depending on your distribution. I personally use Gentoo Linux, so I'm gradually creating a Portage overlay that would compile Darling and all dependencies for both 32-bit and 64-bit applications.'

Doležel would like to bring Angry Birds, other games, and multimedia applications to Linux. Darling could potentially 'be used to run applications compiled for iOS,' he writes on the project site. This will also be a challenge. 'The intention is to support the ARM platform on the lowest levels (the dynamic loader and the Objective-C runtime),' he writes. 'Rewriting the frameworks used on iOS is a whole different story, though.'

We’ve established how easy it is to make Ubuntu look like a Mac but theming Linux Mint, the popular Ubuntu-based offshoot, is a little trickier.

But no more.

It’s now possible to make Linux Mint look like a Mac too, and it’s all thanks to a customised version of the uncannily accurate macOS Mojave GTK theme we highlighted a few weeks ago.

So if you long to add some Cupertino styling to the Cinnamon desktop, read on!

Mac Theme for Linux Mint 19

Alternative GuideMake Linux Mint look like Windows 7

Mac themes for Linux Mint are not new.

But good ones? Well, they have been a bit hard to come by due, in part, to the Cinnamon desktop being based around an older version of GTK, the underlying toolkit that’s used to “draw” the GUI of many apps.

Major compatibility issues and refactoring changes between GTK versions has meant that many popular modern GTK themes were not directly compatible with Linux Mint — and that included crop of clonetastic Mac themes too.

Updated GTK in Linux Mint 19

The recent release of Linux Mint 19 changes the game; ‘Tara’ ships with a newer version of GTK that supports many of the advanced theming capabilities that themes often use.

And ready to take full advantage of the new theming capabilities available to Linux Mint 19 is prolific Linux theme maker PaulXfce.

Paul creates and maintains a bunch of well designed and well made themes for various GTK+ based desktop environments, including GNOME Shell, Budgie and, more relevant to those of you reading this post, Cinnamon.

Having recently raved about his creepily accurate macOS Mojave theme I was thrilled to learn that Paul has made a custom version of his macOS mojave theme available for the Cinnamon desktop.

Not that the task was entirely smooth sailing, as Paul points out:

“This has proven to be a much more difficult thing to do, because of the way Linux Mint uses Muffin as a window-manager, which has some drawbacks (like: Server-Side-Decoration, so no transparency in Nemo, ) and the ‘multitude’ of toolbars that take half the real-estate of the window… Reducing the size of them was my first priority.”

Run

Undeterred, Paul has re-engineered his Mac os theme for Linux Mint, building a new Metacity theme that blends with the rest of the UI while still allowing apps using Client Side Decoration (CSD) to look the part too.

The downside is that, for now, Paul’s excellent Mac os theme only affects the look and feel of applications and app window borders. A Cinnamon desktop theme is not (currently) available (and the Cinnamon Spices website turns up nothing Apple-related).

Still; the theme is a sterling attempt and well worth trying out — even if only as a novelty. You can download the theme directly from GNOME-Look:

Best way to run mac apps on linux mint command

To install, extract the archive file to the hidden ‘.themes’ folder in your Home folder (if you don’t have one, create one).

Finally, to apply the theme, Open System Settings > Appearance > Themes and select the theme in both the window-borders and controls section.

More Ways to Make Linux Mint Look like a Mac

Best Way To Run Mac Apps On Linux Mint Bootable

If you’re minded to make the Mint desktop more like Mac OS X there are some additional things you can do to curate a Cupertino-style aesthetic on the Cinnamon desktop.

You can move Mint desktop panels easily. Just right-click on an empty section of the panel, choose the ‘Properties’ menu option and, from the settings you see, move the panel from the bottom of the screen to the top.

This makes way for what is surely the most iconic element of the Mac desktop: the dock.

A chunky task bar, the dock puts large app icons and folder shortcuts within reach at the bottom of the screen. There are plenty of Linux docks available but we think that Plank is by far and away the best. You can install Plank on Linux Mint be searching for it in the Software Manager app.

Best Way To Run Mac Apps On Linux Mint Windows 10

You can add more applications to your Plank dock by dragging a shortcut out of the Mint Menu and dropping it on to the dock. You can even add folders to Plank too!

Best Way To Run Mac Apps On Linux Mint Version

Other suggestions:

Best Way To Run Mac Apps On Linux Mint Command

  • Change the desktop wallpaper to a Mac background
  • Replace the bottom panel with a dock app like Plank
  • Install a Mac icon theme for Linux
  • Move the bottom panel to the top of the screen
  • Install/enable Nemo Preview, analogous to Quick Look
  • Install Synapse, Kupfer, Alfred or similar for a Spotlight equivalent

So get started and share your screenshots in the comments.

Got any magnificent Mint-to-Mac makeover suggestions? Share ’em below!