Decapitating Macbook: An Odyssey
27 minute read
Intro Part 1 of 11
Accepting that I need a Mac if I want to develop for Apple platforms.
I donât tend to enjoy using Apple products. I want to be able to make my software available on their platforms though.
To publish apps for MacOS/iOS/iPadOS, you really need Apple hardware. Also, if I am to provide software for their platforms, and especially if I want to sell my work, I need to be able to experience my apps in the same way my users will experience them.
Itâs basic respect for the user.
Virtualisation
I tried Virtual Machines, probably had half a dozen MacOS VMs over the years in VirtualBox and QEMU/KVM. Getting MacOS working in a VM is difficult, inconsistent and (at least on my machines) performance isnât great. Apple strongly does not want you doing this, youâll always be swimming upstream.
Itâs a joyless experience.
Codemagic
I tried Codemagic, a continuous integration/continuous delivery service which lets you publish to various platforms including the Apple ones. Itâs a great service and has a free tier, but it seemed that my usage would end up putting me in a paid tier, and that could get expensive for me quite quickly.
Itâs also from-a-distance, and while Codemagic does allow remote login to the MacOS GUI itâs not the same as having a device in front of me, and if I want to thoroughly check the experience of using my apps on Codemagicâs remote machines (rather than just running builds) thatâs going to quickly eat up any free minutes.
I can certainly see this being a solution for some situations â not mine.
SoâŠ
For the first time in over 20 years of owning dozens of computers, I allowed myself to decide that I needed some kind of Mac.
Which Mac Should I Get? Part 2 of 11
Finding a Mac that I can work with.
The strongest factors affecting my decision were:
- Cost. I wanted to spend as little as possible.
- Power usage. I live in a low-power environment and didnât want to introduce a new device that was going to dramatically increase my electricity usage.
Clearly Apple Silicon was what I needed in terms of power. Iâve preferred ARM processors for years and use them for as much of my work as possible. Appleâs use of specialised ARM chips and tight control over their hardware/software architecture means theyâre in a good position to maximise performance-per-Watt⊠if I must paddle in Appleâs pool, Apple Silicon is a no-brainer.
To keep it cheap, the obvious choice was to go with the first generation M1 chips. They reportedly still held up well and should get OS updates for a while (even longer with OpenCore Legacy Patcher).
I donât love laptops (Iâd rather choose my own keyboard, pointing device and screen so having redundant copies of these things stuck on my computer is a waste), so I was initially attracted to the M1 Mac Mini. Itâs just a computer, without Human Interface Devices that I donât need.
Two things put me off the M1 Mac Mini though:
It has a fan
People say itâs silent. Even if this is true (there are levels to this), fans are mechanical devices which can wear out (and develop a noise), suck/blow dust around (needing to be cleaned), or fail. They also use power.
Power delivery
The battery bank from which I power my home is 12V (24V or 48V would be better and Iâll upgrade when the time is right). All my electricity comes from this battery bank.
I have a power inverter, meaning I can use appliances with normal/household plugs, but the inverter wastes some power in the conversion process, stepping up from 12V to 220V. To then plug in a power brick, which will again throw away some power in converting 220V back down to whatever voltage a device uses, means double wastage, and a mess of plugs and wires.
I have DC 12V from the battery, and an easily-accessible 20V feed via a step-up converter. Then of course I have 5V over USB, not to mention all the exotic USB-C variants. Between all these methods I can power everything that I use regularly.
When I buy a new device the first thing I do is chop off its power connector, attach it to
one of the XT60 connectors I use for everything
, and chuck (hoard, actually) the deviceâs power brick. Iâve done this with multiple laptops and small form factor PCs without issue. They usually seem to want 19V-21V and be tolerant of 20V although Iâve heard stories of people damaging stuff with similar reckless behaviour to mine so maybe Iâve been lucky.
I searched for info about doing this with the M1 Mac Miniâs power brick and found some people saying they had problems. While writing this I just searched again to try to find those discussions but this time I found stuff suggesting itâs fairly easy. So Iâm not sure if I used the wrong search terms before, or maybe I was just too jumpy about modding power delivery for an Apple device. Apple tends to be so unfriendly towards going off-road and theyâre known for implementing measures to prevent you doing things in âunapprovedâ ways. I didnât want to waste money buying something I couldnât use.
For better or worse, I decided against the M1 Mac Mini.
M1 Macbook Air Part 3 of 11
I admit it's a modern classic.
Despite its laptop-ness, I decided to think harder on the Macbook Air:
- Itâs thin, light and particularly low-powered
- Itâs fanless
- Although Iâll never prefer it, Apple (/my?) users tend to love the trackpad, so the ability to check out my apps on the M1 Airâs trackpad and make sure everything feels ok might be useful
My issue with the redundant (for me) display being attached?.. this could become an advantage.
People sell these machines cheaply when the displays break (Apple is⊠not big on right-to-repair). I could buy a Macbook with a broken screen and remove it. I checked whether this was possible (such things are a given with most laptops but with Apple I wasnât sure what to expect). I found that this was doable, people were out there doing it. Fantastic.
âBUY IT NOWâ
I managed to find a smashed-screen, 8GB M1 Macbook Air in Rose Pink on eBay for ÂŁ300. Really if Iâd waited I could probably have picked one up for less.
But this was a strike while the iron is hot situation⊠my resistance had been strong for many years, if I waited I might easily end up changing my mind.
8GB RAM? Rose Pink?
Iâd ideally want 16GB RAM minimum on a modern laptop, but the price difference between that and 8GB was significant, even on the second-hand market. Everyone seemed to be saying that 8GB on Apple Silicon was like 16GB on AMD64, which sounded distinctly like the reality-distortion-field in effect, but there were architectural realities such as their âUnifiedâ memory architecture to back this up (or at least the idea that you get more bang per GB on Apple Silicon). Iâd decided to trust.
I was mainly interested in using this machine for Flutter development, and had found several people saying they were doing that on an M1 with 8GB without issues. [Note from the future: Itâs great, no worries and easily snappy enough for me]
This model was Rose Pink, the colour Iâd usually be least likely to choose. Considering I was buying it to immediately butcher, this somehow made it all the more perfect.
It's from eBay. Does it Even Work? Part 4 of 11
I've generally had decent experiences buying from eBay. But before I start chopping bits off my purchase I should probably make sure it works.
Being an eBay purchase (albeit from a seller with good feedback) the first thing I needed to do was make sure that this thing was actually functional.
The screen was damaged (as per the listing) and displayed basically nothing, or to be specific a few single-pixel lines of colour which hinted at whether the machine was on or off, on a black smashed background.
Nothing so garish as âan LED to tell you when its powered onâ would be allowed on a modern Mac. These thin, single-pixel lines of colour would be my power indicator.
Monitors and cables
This is where I encountered my first difficulties. I have a very small, very cheap USB-C monitor. This is the only actual monitor I have. I usually run stuff headless over VNC, NoMachine etc, using tablets like my Galaxy Tab S8 Ultra as remote OLED displays. I just donât have much need for monitors. I have a Boox Max Lumi E-ink tablet with a micro HDMI input, so that can act as a monitor but⊠maybe later.
So I plugged the little monitor in to one of the two available ports on the characterless bravely minimal chassis (the other port would do for power). The monitor didnât light up.
A vast landscape of confusing possible states opened up before me. Was I in the wrong port? A USB-C port is not a USB-C port etc, especially where displays and power are concerned. Maybe only one specific port would power the Mac, or only one of them would output a display signal.
What about the cable, both cables? Were they even providing power/pixels or did they have the wrong strands in them?
Did the Macbook put out enough power over USB-C for the monitor? Did I need to plug an additional cable for power, or charge the battery some more, or plug extra power into the monitor itself?
Was my monitor just not compatible? Itâs a simple AliExpress generic thing, and Apple is not exactly known for its broad compatibility with 3rd-party products. Was it just not-yet-enabled in the OS?
Was I even âin the OSâ at this point, or was the Macbook still booting⊠or stuck in some horrific ârecovery zoneâ where blindly pressing the wrong button might result in destroying the OS, the only solutions to be âplug it into one of the other Apple computers that you donât haveâ or âtake it to an Apple Store where (if somebody dressed like you is allowed inside) a Genius will go asthmatic at the concept of a headless Macbook and make you buy a new one for a thousand of the pounds that you donât haveâ?
After an embarrassing amount of cable-swapping (80% of my USB-C cables either couldnât deliver enough power, or couldnât deliver the pixels, and Iâve been through this stuff so many times I should know by now to never assume that my cables are good) I eventually made progress.
The monitor lit up.
Then it went black again. Not dead-black, but that rubbish glowingly-grey attempt at black that TFT panels manage, which told me that the monitor was powered up and trying to display something, but had nothing to display.
The Macbook does grant me a power button at least, in the form of a special key on the keyboard, up in the corner.
Itâs a strange item, sitting slightly lower than the other keys on the keyboard, with a slightly different tactile response compared to the other keys. Maybe this is to mark it out as being âotherâ for usability reasons (which I like), or maybe itâs a side-effect of the button housing a fingerprint sensor.
With my lack of Apple experience and the lack of working screen, I actually found this button a little confusing. I was never sure if Iâd pressed it âproperlyâ, ie did it require a tap, or a little hold, or did perhaps a long hold perform a different function?
I tried searching for info about the button but there are so many different models of Macbook, many users with varying ways of communicating their ideas, no official detailed documentation for these things, and of course the reasonable assumption that Macbooks have screens. Yes, I was confused by a power button.
After several presses of the power button, and waits to see if a reboot was happening, more progress. Trees! The MacOS login screen appeared, only⊠not quite. There were no buttons, dialogues, or any user interface elements.
A bit of searching taught me that the missing login UI was indicative of a second screen being attached to a Macbook. The login screen was being shown (invisibly to me) on the broken internal display, and my little monitor was just acting as an extension. Fair enough.
More âinternet researchâ revealed that CMD + F1 would swap output to the external monitor. This worked. Great. I now had a dinky 11" MacOS login screen.
It Just (about) Works.
Removing the Display Part 5 of 11
Finally getting down to some hardware pruning.
Removing the display was relatively easy, but time-consuming. There were lots of screws and they had pentalobe and torx heads, but these are standard in any electronics screwdriver set â I have one of those.
I checked a couple of disassembly videos on YouTube to make sure I wasnât going to encounter any plastic tabs which might break off, short tearable ribbon cables etc, and to find where the display connectors were. Iâve taken apart quite a few laptops, this wasnât one of the worst.
Separating the lid from the base was tricky. Even when all fastenings were removed it was still stuck. I couldnât tell if it was just tight tolerances on the hinges (hey, get the tolerances tight enough and metal sticks to metal⊠although I think even with Appleâs admittedly precise engineering this was probably normal stuckness rather than anything more mystical), or if there was a piece of the assembly in the way, something Iâd missed.
I found a video suggesting to open the laptop to 90 degrees, then hang it off the edge of a table and give it a sharp whack to separate the lid from the base. They made it look easier than I found it to be, but eventually I got the lid off.
Keeping the lid
After looking into various cases and sleeves (if nothing else I wanted to be able to stop keys from getting pressed when the Macbook was put away and waking it up), I decided that Iâd keep the lid. It is thin, light and tough, so why not continue using it to protect the computer? It was designed for the job.
Getting the glass panel out of the lid was a chore. Like most modern displays it was very thin and shatterable (pre-shattered in this case), and gripped tightly to the inside of the metal shell of the lid via some kind of adhesive or thin tape. I had to use heat and a scraper and it made a horrible and probably dangerous mess, thousands of specks of shattered material that looked pretty like toffee-apple but were actually cutty, inhalable glass.
I worked slowly, every minute or so I swept up the latest shards into a container so they wouldnât get embedded in my hands/cornea/bronchioles. I did this gently so as not to disperse the bits all over the place with the flicking of the brush.
After a while I had the idea of sticking a patch of duct tape over each area of glass before I scraped it away. This worked well, preventing the pieces from scattering and making it easier to scrape the glass away from the metal shell of the lid.
With all the glass finally removed, there were a couple of areas which remained sticky and some unfinished sharp metal edges. To prevent it from getting hair stuck to it or from scratching the keyboard/touchpad I covered the entire inside surface of the lid with some clear adhesive plastic sheet.
The final effect is reminiscent of an overprotected sofa, but itâs all I had to-hand and itâll do for now.
Factory Reset Part 6 of 11
Just a formality...
The display was removed, things were looking clean.
This is a used device. It seemed like the OS was a fresh install, but I like to be sure, so I did a factory reset. The process seemed smooth, until the reboot.
I wasnât sure how long to wait for boot after a factory reset. Iâve had some devices (eg Android phones after installing custom ROMS) take many minutes on first boot after a reset, but online info suggested this should be pretty quick on an M1 Mac.
Minutes passed and the display wasnât showing anything. I wasnât sure what was going on, and I started playing guessing games with the power button. I wished again that there was a power LED. With the broken screen removed I couldnât even rely on those few lines of pixels lighting up to give me clues.
Iâm still not sure if I broke/interrupted something, or if this was a normal part of the reset process. I tried various patterns of tapping, holding, holding for longer, each time waiting for something to happen for 10, 30 or 60 seconds. How long should I wait before I expect to see something on the screen?
Eventually I got something to happen. I was back to the black (but lit/powered on) screen. I guessed I was somewhere mid-boot. I tried the CMD + F1 combo which had made the external monitor primary when I was on the login screen. It didnât work â the key combo/switching must be a feature of MacOS, which I was not yet booted into. A little reading around online hinted that I might be in recovery mode.
I found a video explaining how recovery mode worked on a machine with an external monitor and no internal display, and how to handle it.
Recovery mode when you only have an external monitor
The situation is this:
- Recovery mode recognises your external monitor, but treats it as an extension to the internal display
- The window with all of the useful user interface is there, but itâs âon the internal displayâ (whether that exists or not)
- The phantom internal display is drawn off to the right of the external monitor
In my case, the resolution of my external monitor was smaller in height than the internal monitor. This may have made the situation more confusing. I think that the top menu bar extends across both displays, and if my monitor was tall enough Iâd have seen the bar, giving a massively more helpful clue than the empty black screen.
To get stuff done in recovery mode, you have to drag the window from phantom screen, onto the external display. The window is only draggable by its title bar. So you have to
shoot your touchpad pointer off the right-hand side of your screen, aim for where you think the title bar might be, and try to tap/drag it back over to your real visible screen on the left
.
This took me ages. I think the window on the invisible screen was centred, but because it was a different resolution to my monitor it was hard to visualise and aim for it. But once done, I could access everything in recovery mode.
After finishing the reset I booted. The monitor doesnât start showing stuff until later in the boot process but thatâs ok.
Iâm in, on the external monitor, with the Macbookâs internal screen removed.
Is This Thing On? Part 7 of 11
Questioning my hatred of LEDs.
One of the most difficult problems Iâve had with using this machine headless, is knowing whether itâs turned on or not. Seriously.
If I connect the external monitor (ok, not headless in that case), no image on the screen might mean:
- The Macbook is not turned on
- The Macbook is asleep
- There is a problem with the monitor or connection (eg bad cable)
If I try to connect over NoMachine or VNC and fail, that might mean:
- The Macbook is not turned on
- The Macbook is asleep
- The Macbook is not connected to the network
- NoMachine/VNC is not started on the Macbook
- Iâve configured something wrongly with NoMachine/VNC
I really dislike the millions of blinking LEDs designers love to stick on electronic devices. They constantly nag or distract, I think they are bad. But Iâd kill for one one this Macbook!
Things Iâve tried
I have a small USB-C SD card reader. It has a red LED which lights up when it is receiving power. For a while I used this, but itâs impractical. Although itâs small, it still sticks out to be breakage risk. A nice bit of leverage on the USB port, just waiting to wrench it off if it catches on something (a bit like the 1st-gen Apple Pencil when it was charging).
At some point I noticed that the caps lock button on the keyboard had an LED which lit when caps was locked. And (remembering Iâd usually be using a Bluetooth keyboard and pointing device), the caps lock could be applied to the built-in keyboard without affecting the Bluetooth keyboard. I could just leave caps lock on and the LED would stay lit.
The showstopper problem with both of the above ideas was that they both only worked when the Macbook was fully booted and ready to rock. I guess the ports and caps lock LED are powered off at other times. Most of my periods of confusion as to whether it was powered on or not were happening when it was half-on, during boot, sleep, shutdown etc.
My current-best solution
I noticed that my router, in its list of âattached clientsâ was providing relatively quick/up-to-date information about whether the Macbook was connected or not. It seemed to connect to Wi-Fi quite early in the boot process, and disconnect soon after I initiated a shutdown.
Following on from that, I started pinging the Macbook in a terminal window, which I could keep nearby while I worked. This was getting close enough for my purposes.
The obvious next step was to script it properly. My aim was to get a brief status line telling me if the Macbook was connected or not, and its battery charge level. The following script did the job:
#!/bin/bash
# Ping a Mac on the LAN
# If it's alive, check its battery level using a seperate script `battery-check` (present on the
# Mac)
# Return the result with coloured text to indicate off/on status, and rough battery level
# Loop repeatedly, overwriting the results text each time onto the same single line
ip_to_check=192.168.8.123
hostname=AIR
wht='\033[1;15m'
red='\033[1;31m'
ylw='\033[1;33m'
ong='\033[38;5;208m'
grn='\033[1;32m'
nc='\033[0m' # No Colour
update_battery () {
# Log in with SSH and call script to get battery charge info.
battery_check_output=$(ssh AIR "bash --login -c battery-check")
# `battery-check` returns a string like `battery: 18%`, we want to extract the number.
percentage=$(echo "${battery_check_output}" | tr -dc '0-9')
if [[ $percentage -lt 15 ]]; then
battcolor=$red
elif [[ $percentage -lt 30 ]]; then
battcolor=$ong
elif [[ $percentage -lt 80 ]]; then
battcolor=$ylw
else
battcolor=$grn
fi
}
# Hide cursor
tput civis
# Sometimes (too soon after boot?) the first call fails
# Machete through it
update_battery
sleep 1
update_battery
sleep 1
i=0
while :
do
# -c 1 ... count 1 (only ping once)
if ping -c 1 ${ip_to_check} &> /dev/null; then
# Temporarily go white to indicate battery has just been checked/updated (2 * 5 = 10secs)
if [[ $i -lt 2 ]]; then
color=$wht
else
color=$battcolor
fi
echo -ne " ${hostname} ${grn} ON ${nc}${color}${percentage}%${nc}\r"
# i ends up incrementing every 5secs or so
((i++))
# Increment and every n counts update battery
# 5sec * 36 = 180secs = 3mins
if [[ $i -eq 36 ]]; then
i=0
update_battery
fi
else
echo -ne " ${hostname} ${red} OFF ${nc}\r"
fi
sleep 5
done
Fromhttps://codeberg.org/mm-dev/shell-scripts/raw/branch/termux-proot-ubuntu/mac-get-status
I already had a little script on the Mac to report the battery level (a very simple wrapper around a Mac built-in system_profiler, just to shorten the output).
#!/bin/sh
percent=$(system_profiler SPPowerDataType | grep "State of Charge (%)" | awk '{print $5}')
echo "battery: ${percent}%"
Then I wanted to be able to float the mac-get-status script in a tiny window.
This next script opens up a terminal in a new window, gives it a specific title macmonitor, and runs mac-get-status:
#!/bin/bash
$TERMINAL --title macmonitor -e "mac-get-status" &
Fromhttps://codeberg.org/mm-dev/shell-scripts/raw/branch/termux-proot-ubuntu/mac-monitor
Then I tell my window manager (DWM) to apply a special rule to windows with that specific title. This is how itâs done in DWM but other window managers may have ways of achieving the same thing.
static const Rule rules[] = {
// If an Xfce4-terminal window has title 'macmonitor':
// - Make it float
// - Make its dimensions 150px x 22px
{"Xfce4-terminal", NULL, "macmonitor", 0, 1, -1, 0, 0, 150, 22, 1},
// other rules...
};
Magnets Part 8 of 11
Magnets are fun.
I experienced a ridiculous amount of confusion and wasted time due to a silly oversight I made (repeatedly!).
As mentioned earlier, Iâd kept the lid for the Macbook, detached from its hinges and with the broken screen removed, to use as a kind of⊠lid.
When in use, it seemed like the obvious place to put the lid was under the Macbook, where it fitted perfectly.
For the first few hours, days, even weeks, I had intermittent problems with the machine randomly turning off/on (actually sleeping/waking but I didnât know that at the time).
Remember I was having enough trouble knowing whether the machine was turned on or not in those early days.
It was the magnets in the lid, activating the hall sensors in the base and making it think I was opening/closing the lid. Due to the thickness of the base the magnets werenât as close as theyâd normally be, and the alignment wasnât perfect. So this wasnât a simple matter of âwhen the lid is under the laptop it goes to sleepâ. This was a sporadic problem that could come and go as things wobbled in the environment. It took me a while to make the mental connection and work out what was happening.
# TODO Remove magnets from lid!
Remote Access Part 9 of 11
How I really use this machine.
Now Iâm past the novelty of plugging in monitors this is how I actually use the machine.
Remote builds over SSH
Iâm working on an Android tablet most of the time, using Termux, Proot-distro and Termux/X11 to run Debian Bookworm arm64. This setup has shortcomings but I find it very comfortable and manage to get 90% of my work done on it.
One current problem is that the arm64 version of the Android SDK canât build arm64 APKs for Android. During main development I just build/run the Linux version of whichever app Iâm working on â Flutter is multi-platform and suprisingly consistent between platforms. But of course I need to build APKs for Android devices at some point.
When I just need to quickly build some APKs for a given project, I use something like the following script (this one is for auDAV, my WebDAV audiobook player app):
#!/bin/sh
# Script to be run from Termux/proot-distro
# - Connects to build machine AIR (host defined in `~/.ssh/config`)
# - Logs in to working directory
# - Builds APKs
# - Syncs APKs to local machine
remote_commands=$(cat << 'EOF'
echo "~~~~~~~ Remote: Source local environment ~~~~~~~"
source ~/.zprofile
source ~/.zshrc
echo "~~~~~~~ Remote: Change working directory ~~~~~~~"
cd ~/development/audav
echo "~~~~~~~~~ Remote: Pull latest from git ~~~~~~~~~"
git pull
echo -e "\n~~~~~~~~~~~~~~ Remote: Build APKs ~~~~~~~~~~~~~~"
flutter build apk --split-per-abi
EOF
)
ssh AIR "bash --login -c '${remote_commands}'"
echo "\n~~~~~~~~~~~ Local: Sync APKs to local ~~~~~~~~~~"
rsync -r --mkpath --progress AIR:development/audav/build/app/outputs/flutter-apk $HOME/000-WORK/audav/build/app/outputs/
Fromhttps://codeberg.org/mm-dev/shell-scripts/raw/branch/termux-proot-ubuntu/audav-build-on-mac
Full remote graphical access with NoMachine
To build apps for MacOS, iOS and iPadOS I must endure the torturous window management, tedious animations, and terrible file manager of MacOS (and thatâs before we even get to XCode).
To ease my suffering I can at least use MacOS via the OLED screen of a Galaxy Tab S8 Ultra, a DEFT PRO trackball and a Ferris Sweep split mechanical keyboard.
NoMachine works well for remoting into MacOS and over the LAN it performs well with very little lag. Thereâs client software for Android and arm64 Linux meaning itâs quick and easy for me to just pop in to MacOS from my favoured Linux/DWM environment.
Running Headless: What I've Learned Part 10 of 11
A few findings.
The lid
- Removing the lid turns it on (hall sensors in the base are activated by magnets in the lid)
- Replacing the lid leaves the device visible on the network, but it can no longer be
SSHed into (some form of âsleepingâ)
- During a user-initiated shutdown process (which takes some time, up to 20-30 seconds], replacing the lid re-wakes the machine â so wait 30 seconds or more before replacing the lid
As the lid is no longer attached, âopening/closingâ makes no sense so Iâll instead use âremoving/replacingâ
- Holding the power button for 5 seconds will begin the shutdown process, but the machine will still be visible on the network for a few seconds, allow at least 15-20 seconds for shutdown to complete
- Holding the power button for 2 seconds will turn the machine on but it takes maybe 20 seconds to show up on the network
As mentioned in previous parts of this series, âshowing on the networkâ is taken as a proxy for âmachine is turned onâ
From dead (no/low power)
A couple of times Iâve not used the machine for a week or more and the battery has got very flat â honestly itâs disappointing that it isnât engineered to handle this situation better.
For a while I struggled to charge it, trying all of the following with no success:
- Charging for over 10 mins in first USB-C port
- Charging for over 10 mins in second USB-C port
- Tried powering up several times during the charge periods above
- After each attempt at powering up, waited 2 minutes for sign of life via the Macbook being seen on the LAN
Charging units are dedicated USB PD/QC chargers wired directly to DC 12V/20V feeds, very stable/reliable and with ample amperage
What eventually got past this problem:
- Unplugged all cables
- Plugged one end of a charging cable into the Macbook first (top/corner port)
- THEN plugged the other end of the cable into the USB charger
- 30 seconds later I was in (Macbook showed on router as a client and could be
sshed into etc)
This could be a red herring eg the order of plugging in cables was not important but instead the battery had accumulated a charge and the final successful attempts just pushed it above some threshold that would allow it to boot. The fact that the response was so quick (30 secs after plugging in the cables in this order the machine was on) makes me think this is unlikely.
The only other explanation I can think of is that which end of the charging cable is plugged in first makes a difference, possibly due to something related to USB-C handshake/power negotiations that Iâm ignorant of. This is a hunch and might make no sense in reality. I leave the info/observation here with very little weight attached to it, it is what it is.
End Results and Bonus Part 11 of 11
I'm really happy with my choice and how I've managed to integrate the Macbook into my working environment as a build machine.
Good
- I love that itâs silent
- Apple Silicon is as good as Iâd hoped â the bang-per-watt is great for my circumstances with solar power etc
- The annoyances with not knowing when itâs turned on are largely alleviated with my scripts, as long as Iâm using it on my LAN (which, realistically I always am)
Bad
- MacOS, when I do have to use it (sorry Mac fans⊠I do at least prefer it to Windows)
- The battery does not hold power at all well when turned off (if I turn it off â yes off, not asleep â with a full battery, a few days later itâs completely dead and needs to be charged before I can turn it on)
Iâm never going to use this as my main machine, and that was never my plan. Iâm into minimal Linux with invisible tiling window managers like DWM, and dragging windows around, being forced to watch animations etc wonât cut it for my preferences.
I do know about Asahi Linux but that makes power usage much less special and Iâm not sure how it plays with the development stack I need for Flutter. More crucially, at time of writing DP Alt Mode is not working, which means monitors plugged in to the USB-C port wonât work. Having cut the display off, this scuppers me.
For me this was an investment into being able to responsibly build software for the Apple ecosystem and its users who have different preferences than mine. Itâs a tool for a specific sub-set of tasks, and under those conditions it does what I need.
Bonus: E-ink Macbook
Remember I mentioned that I had a Boox Max Lumi which could function as a monitor for the Macbook? Here it is in full effect.
After tweaking some settings in Accessibility/Display, MacOS can be made to look half-decent on e-ink.
All the usual caveats about e-ink apply re refresh rates and ghosting of course, but I could easily see myself working quite happily in Vim on it in some imaginary future dystopia where Iâm trapped in Appleâs walled garden, all that exists, protected by a multi-trillion dollar Reality Distortion Field that they managed to power up just before the bombs droppedâŠ