A Hackintosh Experience as a Long Time Windows User

One of the things I see many software developers use is a Mac. Even at Microsoft's own Build expo, you can see presenters use macOS to use Microsoft VS Code. This puzzled me a bit, so I did some digging. For the most part, a Macbook is an all-in-one package for a decent laptop that runs on linux. This gives them access to various linux tools easily accessible using Terminal (bash), rather than Command Prompt. It's the linux experience on a decent laptop.

So this got me interested. Having been a Windows user since pretty much forever, this would be a new experience and would breathe new life into how I interact with computers. Also if I were ever handed a company Macbook I wouldn't be puzzled of how to use it.

Getting Started

I don't personally have a Macbook and I wasn't going to spend a thousand dollars on getting one either. So the alternative was to run Hackintosh - running macOS outside of Macbook hardware. I own a a Dell XPS 13 9350 and luckily for me there have been many users running Hackintosh on this laptop, and so there is quite a bit of support for it, especially over on tonymacosx86. My specific hardware looks like:

  • Intel Core i7 6660U
  • QHD+ 3200x1800 IPS Touchscreen
  • Samsung PM951 250GB NVMe SSD
  • Dell DW1820A WiFi card
  • BIOS on version 1.7.0

There was just one problem with my setup: there was no support to get the DW1820A card to work on macOS. However, there are alternative cards that work like the DW1830 and the DW1560. I picked up a DW1560 card on eBay for around $35 CAD. Make sure that the card has the right connector.

A USB was also needed to install macOS. I used some 16GB one I had lying around. One thing that it had that really helped me out was its LED indicator, which we will discuss later.

The main guide that I followed was on from ZombieTheBest on Github: https://github.com/ZombieTheBest/XPS9350-10.13-HighSierra

This was a fork of one by syscl, which I tried but couldn't get the proper keyboard and WiFi drivers.

The guide is good, but not appropriate for beginners. Beginners ought to google each of the steps independently to get a feel of what the process is and some of the nomenclature for Hackintosh builds like 'kexts', 'DDST', etc.

Guide Comments

Create a vanilla installation disk (USB or other removable disk). (Google how to)

This step involves just installing macOS into a USB.

Install Clover with UEFI only and UEFI64Drivers to the installation disk just created.

Clover refers to the Clover EFI Bootloader installer. This software allows the PC to boot into macOS.

Boot to USB and hit F4 and/or Fn-F4 to capture ACPI tables to the USB

This copies 'ACPI Tables' to the EFI paritition on the USB. The LED indicator on my USB helped here to show that I was actually writing to it. It took about 20 seconds to complete. The files can be found in /EFI/ACPI/origin.

Replace the original CLOVER folder on the SSD with the one from the USB drive under my Git/XPS9350-macOS/CLOVER.

Clarifying, we need to copy the CLOVER folder from the USB's EFI partition to the SSD's EFI partition. This ensures we also copy the ACPI tables we captured earlier.

Note: If booting into the macOS installer fails with an error such as Waiting for root device (verbose output needs to be enabled first when booting), then we need to add USBInjectAll to our kexts under CLOVER/kexts/Other. This happens because we need a USB driver.

The macOS Experience

I used macOS for about 2 days before I switched back to Windows 10. Don't get me wrong, macOS:

  • Looks great
  • Gave me more battery life than a similar setup in Windows by about 30 minutes (over 4 charge cycles).
  • Forced me to use keyboard shortcuts more for faster workflow
  • Has the all-great Terminal built-in
  • Easy expansion through Homebrew.
  • Retained NVMe

But there were some drawbacks as well:

  • The dock was a step down from the Windows taskbar for me, espeially managing multiple instances of a Application like multiple Finder folders
  • GUI Scaling was good, but HiDPI settings were pretty meh. On my 3200x1800 monitor, running at 200% (1600x900) looks pretty nice and sharp, but all the macOS elements were small. I bumped this up to 250% (1280x720) which is what I have on Windows, but elements became much more blurred. Windows handled this visually much better for me.
  • No USB-C/Thunderbolt Hot-plugging
  • Mouse and trackpad was a nightmare, some due to compatibility:
    • Acceleration was an abomination. I hate acceleration, so I tried to disable it by using defaults write -g com.apple.mouse.scaling -1, and similar for com.mouse.trackpad.scaling but it resulted in very low sensitivity so I tried to increase this value in System Preferneces and lo and behold the setting actually modifies .scaling. In the experience I had, macOS makes acceleration and tracking synonymous. Some solutions was to install third-party programs like Steelseries Exact Mouse, which doesn't work on trackpads, and Steermouse, which had a CPU usage of 5%. Both solutions didn't work that well.
    • macOS does not allow you to invert scrolling directions for the mouse and trackpad independently, so again, you have to use a third-party program. Steermouse worked, but for some reason it 'shutdown' its scroll inversion feature at some point during use. Scroll Reverser worked, but I couldn't get it to work independent of trackpad and mouse.
    • The trackpad had issues with multi-touch. If you were holding down the left click and swiping at the same time, like dragging a file, sometimes the cursor moves to the position of the left click. The three-finger swipe gestures to switch apps was not there. Instead, they can be mapped to key actions.
    • The trackpad also had some issues with two-finger scrolling. It was sometimes jittery and inaccurate of how far I wanted to scroll.

Most of the issues I had was compatibility with my hardware. Sure macOS was great, but the interfacing experience was terrible compared to Windows. This became my dealbreaker and I just couldn't stand the experience any longer. I write this blog on my reverted Windows machine and input, as far as I can tell, is flawless. Installing the linux subsystem so far gives pretty good linux integration. Who would have thought that using hardware with its intended software would be so good?

Some Information on the BluePill (STM32F103C) USB Serial for Blue Pill (STM32) with PlatformIO

Add a comment