Hacker News new | ask | show | jobs
by sunaurus 1692 days ago
I just completed my migration in the opposite direction after using Arch Linux as my daily driver for ~10 years.

I think Arch Linux is by far the better OS for pretty much all power users, but when using multiple devices, the benefits of the "Apple Ecosystem" outweigh the benefits of an amazing desktop OS for me, which is why I ended up switching to Mac OS.

Some key points which I believe are much worse on Mac:

* No great package managers. Nothing is super-integrated with the core system like pacman is in Arch, and even when heavily using some package manager, there will always be a bunch of software that can only be updated using their own auto-update mechanism instead of a central package manager.

* Docker in general is just much slower compared to running directly on Linux.

* Setting up ergonomic custom keyboard shortcuts is painful and requires (multiple?) third-party applications to do well.

9 comments

> Setting up ergonomic custom keyboard shortcuts is painful and requires (multiple?) third-party applications to do well.

Take a look at Hammerspoon[0] for this if you haven't already. It requires some work to get it working the way want (you'll be writing some basic Lua code) but it's by far the best, all-in-one solution I've found for this problem on macOS. It has a ton of built-in modules for automating things including being to setup hotkeys globally as well as modal/on per-app basis

[0] https://github.com/Hammerspoon/hammerspoon

If Lua scripting doesn't float your boat and you don't mind commercial software, Keyboard Maestro[0] is brilliant. I use it for:

* Expanding text macros (like TextExpander but not with a subscription)

* Automating web forms I have to fill out frequently (find the "Last Name" button; send "Smith"; hit "tab"; send "Joe"; find the "Submit this form" button and press it).

* Opening apps with hotkeys.

* Scripting stuff that isn't scriptable, like "find the Music app; right click on the ... menu; click Share; click Copy Link" to get the currently playing song's URL. (PS: If you know how to reliably get this another way, please let me know.)

* Doing really nifty things with OCR on the screen, like "send this set of keypresses, then look for the text that says 'I accept this', put the mouse over it, and click it" for apps that don't use native widgets.

Hammerspoon is super cool too, but I don't have the time to really tweak it as much as I can Keyboard Maestro.

[0] https://www.keyboardmaestro.com/main/

Hammerspoon is what makes macOS usable for me (plus karabiner for caps lock twiddling). The randomly rearranging layout of mission control has to be the most user hostile annoyance I have ever experienced in an OS to date.

Ironically, there isn't anything equivalent to it in linux land, and once I had gotten some really nice customizations, going back makes me a little sad.

If you’re talking about spaces automatically swapping around, you can disable that functionality in System Preferences-Mission Control, just fyi.
Your last point is interesting. When I switched from macOS to Linux, the tool is missed most was definitely Karabiner-Elements. I got nightmares from xkb & related tools.
What remappings do you use?
The Alt-Tab behavior on MacOS across multiple screens is really annoying. Also window resizing behaviors. If there was a way to override those it would be an unmatched system/environment.
I haven’t tried it so I can’t vouch for it, but AltTab[0] may meet your window switching needs.

What specifically would you prefer to be different for window resizing behaviors? If it’s something akin to Aero Snap on Windows there’s a multitude of options, including Moom[1], Rectangle[2], and Magnet[3] among others.

[0]: https://alt-tab-macos.netlify.app/ [1]: https://manytricks.com/moom/ [2]: https://rectangleapp.com/ [3]: https://magnet.crowdcafe.com/

I've said this many times on this forum, but the fact that macOS doesn't natively allow users to snap windows to the edge is incredibly annoying, and is one of those indications of the wrong and stubborn choices made in the design of the OS.

Most Linux distros don't assume they know how users want their windows arranged. macOS says, "We, in fact, do know better than users how large windows should be and where they should be placed."

I just got my first Mac ever: a MacBook Air M1. Coming from Arch I thought I would handle it easy. How bad can it be? It just works, right?… right?

So I wanted a laptop instead of a desktop computer and Framework isn’t available where I’m from so I went for the MacBook. In terms of performance, all is fine. Some OS based decisions make me want to put everything back into the packaging and send the thing back.

1) I might be alone with this but how is there no forward delete (del) button? I’ve never noticed but apparently I use it quite a lot. cmd + Backspace solves that.

2) The entire OS feels more trackpad-centric than other OS‘s I’ve used which confuses me. The gestures and the trackpad are top notch though.

3) I don’t understand the Option key. Overall the Command, Option and CTRL keys do weird things in my opinion and growing up with Windows and Linux, I don’t understand what command does either. Which leads me to…

4) The keyboard shortcuts feel complicated for the sake of complicatedness.

5) Why can I not click an app on the dock to minimise it into the dock?

6) The delete key, man.

This sounds negative but there’s a lot of positive stuff with that thing (I’m good with the display and keyboard, the battery life is crazy compared to laptops I’ve had before, …). I’m not sure yet if I want to learn a whole new OS though so I’m undecided if I want to keep it yet. The main downside of using Linux for me is Adobe (effing) Photoshop and Lightroom not working.

> The keyboard shortcuts feel complicated for the sake of complicatedness.

Mac's shortcut paradigms developed independently of IBM's CUA so they're definitely not complicated for the sake of complexity. I actually think for use with a unix-based operating system, they're much more sensible. There's no overlap with terminal commands that are mostly based on control, thus you don't need to remap basic things like pasting in the terminal to ctrl+shift+v.

> The delete key, man.

It doesn't exist as a physical key but it does work with an external keyboard. Alternatively, you might find something like Karabiner Elements [1] useful. You can make all sorts of arbitrary changes to the keyboard's behavior, including the built in one. This is sort of similar to setxkbmap, xcape, and interception-tools in linux land.

[1] https://karabiner-elements.pqrs.org/

I've discussed the shortcut thing with a friend who prefers the shortcuts on Mac, too. At the end it comes down to what you're used to and what you've learned and used for the past years I guess.

I'll definitely take a look at karabiner elements - I've seen it being mentioned in some kind of Apple subreddit as well alongside software for window snapping or at least "dividing" the screen as in Linux and Windows. Thanks for the answer!

Fn+Backspace operates as forward delete and can be combined with shift, command, and option for text editing.

I’m pretty sure Option + Clicking on a dock icon will minimize it.

If you are confused with how the keyboard shortcuts work, here’s a quick guide.

The command key is the main operator for system wide shortcuts and major application shortcuts.

Command + shift is for secondary app shortcuts

Command + option is for rarely used app shortcuts

Option is for hidden options in applications and across the system. Try opening the application menu in the top bar and holding down option to see how many new shortcuts are available up there. Try option clicking or dragging things in the system to see how they react.

The control key is never used in applications and is rarely used in the system. It’s main function is in terminal applications.

Hope this helped!

Thanks for the "option + dock icon", that helps a lot!

I knew about the forward delete shortcut but it's just another shortcut I have to remember each time I want to use it. The only reason I don't get the design decision is because I've learned it in a different manner I guess.

Outside of that, thanks for the reply. I think I got the option key better. It just gives you alternative stuff you can do in the same menu/with the same shortcut. I don't even remember why I had to use control but the positioning is also very awkward in my opinion.

Thank you!

Yeah - I used Arch and other distributions for years and always ended up back on macOS. There are tradeoffs, but on net it's hard to beat macOS especially if you use other Apple devices (plus the hardware has been getting better and better).

It's nice to have things work out of the box and never having to worry about things like hibernate, suspend, battery life etc. Trackpads, display resolution, fonts, random config failures - plus any macOS issue is usually easier to find a real solution for online imo.

Even in this article a ton of stuff seems like a pain in the ass:

- Hacking to connect bluetooth headphones

- Config required to reconnect to wifi

- Config required to get the monitor working

- No good native calendar

And of course at the end suspend/hibernate is still not working (naturally, probably never will work 100%). I'd also guess battery life is pretty bad and the UI of the tiling wm may be missing nice to have things (like accurate battery remaining).

I’m actually in the same boat. My approach to save a few bucks was to buy a lower end laptop I knew was somewhat compatible with Arch. But now I want something that just works without me configuring everything (and some better hardware too). I still have a box I built at home that I can tinker with Linux if I want too.
I only use macOS for work now because they have become too expensive to keep one just for personal use. The new M1 Air is not that expensive though, but it's still 3 times the price of a decent AMD based laptop.
Im going to switch from arch to mac in one month. What I should consider installing on it beside homebrew?
Bartender, Karabiner-Elements, MacUpdater, NightOwl, iStat Menus, Keyboard Maestro, Rectangle, Amphetamine are some of the most important "OS Enhancement" apps I use.

TripMode, Tripsy, 1Password, Raindrop.io, iTerm, Tower, IINA, Soulver, Spark, Carbon Copy Cloner, Find Any File, Flux, Pacifist, are some my most used "non-common" apps (excluding things like Firefox and VS Code).

Macs Just Work.

Sorry, just found it funny with the big list of applications you're recommending to install to do basic thing in OSX when the usual argument against Linux on HN is "Macs just work".

They do for regular users who use typical end user apps it doesn't just work for devs.

Apple is not designing OS for devs their vast majority of users are not devs or even professionals these days, while macs can be used for development with some wrangling to get a POSIX like environment without too much performance loss, it is not linux. Docker will run in a VM and be slower and some basic stuff like procfs would be completely missing , most of their gnu utils are from late 80s GPL being the reason.

I am also moving back to apple largely because of the m1x performance and battery. Hope Asahi becomes very stable soon on M1

> Apple is not designing OS for devs their vast majority of users are not devs or even professionals these days

yeah. So why are so many devs more or less forced to use MacBooks? someone tell their CTOs

I am a CTO and I use a system76[1] I would rather my devs used Linux systems, for a long time I did only deploy only Linux ThinkPads, but devs want MacBooks- even more so after M1 launched. A few have turned down offers because we didn't offer macs. Now we basically allow them to choose, but in the recent past not a single one has not chosen Apple .

I don't think it is all just CTOs either, there is lot of aspirational value partly driven by design of the system (light weight/looks) partly because expensive it becomes more exclusive.

Without M1 there was nothing else to go for technically they were not that much better, now atleast post m1 there is value to maybe justify the costs.

TCO for ThinkPads are way cheaper than macs upgrades are possible when it is not on macs or easier you don't need to send it apple service for ages, the in-house IT has no shortage of spare parts . No sensible CTO is going to choose apple over anything else if he had choice .

[1] ThinkPad X1 carbon before that both were much better devices just in terms of build quality than my last mac the 2016 pro .

Having linux just work is worth investing in frame.work or system76 or dell developer edition I rather do actual work than fiddle with drivers .

Not OP, but give MacPorts a try to see if you prefer it to Homebrew. It tends to push more of the configuration onto the user, but if you’re coming from Arch you might well prefer that. It’s also much faster than Homebrew in my experience.
Not OP but it depends entirely on how Linux-y you want your experience to be. I regularly hop between pop, manjaro, and macOS.

Brew is a given, but I also run karabiner elements for key remapping, Yabai+skhd+limelight for windows management, sketchybar as a panel, and Alfred as the run launcher since d-menu for Mac is still in early development.

This gives me some nice consistency between OSs since I use BSPWM+Polybar+Rofi on Linux.

There are several other neat little utilities that could come in handy like bettertouchtool and keyboard maestro for system wide automation with a gui and hammerspoon if you want a lua based automation program.

I personally use hammerspoon to bring up a list of Yabai shortcuts for windows management since I have too many keybindings.

As for dev tools, I use nvim, doom emacs, or VSC so it’s pretty easy to carry my config between OSs.

I try to keep it pretty simple. I use Karabiner for two specific keyboard alterations (swapping : and ;, and mapping cmd+esc to cmd+` for my keyboard without a dedicated ` key). I also use iTerm instead of the built-in terminal. That's about it, at least recently. I do have Rectangle installed but I don't really use it.

Well, I also use Camo so that I can use my iPhone as a webcam, but I'll probably buy a decent webcam soon because I don't want to keep paying the ongoing subscription. (Why is everything a freaking subscription these days ...)

In the past I used the tiling window manager Yabai, but I've gotten away from that recently. It didn't work properly 100% of the time, unfortunately.

Camo has a one-time "lifetime" $79 license fee, if you want to go that route, you just have to go to their website.
If you use a big monitor, Rectangle (https://rectangleapp.com/) is must-have. It’s minimal and works really well. Without it, using multiple windows side-by-side is really painful.
only use Homebrew for ‘Casks’ (GUI .apps)— `brew cask` subcommand

Nix or pkgsrc for reliable management of CLI tools (both, if you want to try Nix but want an escape hatch)

don't forget to install GNU coreutils, grep, find, and bash. (BSD coreutils are weird and anemic if you're used to GNU. macOS bash is ancient, etc.)

disable cursor acceleration (barely works, but it's the only thing that works): https://plentycom.jp/en/cursorsense/index.html

the only mature terminal emulator on the platform that performs okay (provided you enable GPU acceleration): https://iterm2.com/

recover basic key remapping functionality: https://karabiner-elements.pqrs.org/

recover basic audio controls like per-app volume mixing: https://github.com/kyleneideck/BackgroundMusic

recover FUSE support: https://osxfuse.github.io/

recover configurability for a whole host of missing functionality, like global keyboard shortcuts, through automation (Lua scripting): https://www.hammerspoon.org/

recover clipboard management: https://hluk.github.io/CopyQ/

if you don't use some hack to get window tiling, you might also want to...

recover basic window management functionality: https://github.com/rxhanson/Rectangle

recover modifier key window drag: https://github.com/dmarcotte/easy-move-resize

good luck.

Seeing a lot of recommendations for yabai- but I personally prefer amethyst for window management. Yabai had too much configuration for me- amethyst is easier
Hammerspoon is fantastic
Whoa now, don't leave me hanging. What are the benefits of the "Apple ecosystem"? I'm using a Macbook right now because it's tiny and light and has amazing hardware, but once I need to get things done, it's closed and charging. If you have multiple devices, why do they all need to be identical?
I have a macbook and and Iphone, so one handy thing I use is the clipboard is shared between devices on the same LAN that are signed into the same icloud accont. so I can select some text with my mouse, hit "paste" in my phone, and it works instantaneously. definitely one of those "wow we live in the future" moments.
This feature is available for the linux/android combination using kdeconnect. Unfortunately I don't think there's an iOS app for that.
the ios app just came out recently didn't it? I think i saw that mentioned.I don't use iOS, but i saw articles about it. YMMV.
Having my phonecalls automatically forwarded to my laptop is a huge benefit. Being able to use my iPad pro as a secondary monitor for when I have to go into the office is very useful as well. Painless copy-paste between devices is also a huge bonus.

I‘m sure there are ways to get all of that running on linux but I‘d rather spend the time that it would take setting all that up working and let my company pay a bit more on my equipment.

Is all that really a "huge" benefit? I never get phone calls that aren't spam, or have the need to copy paste from a phone. And an 11-inch second monitor doesn't sound like a huge benefit. Especially when I could just have my company "pay a bit more" on a real second monitor.

But, not gonna discount your perspective. Everyone has different priorities, and it's why different products exist for different folks.

I guess it always depends on the person. I get probably on average 8-10 work related phone calls a day and spend 2-3 hours a day on the phone, and have been on call 24/7 for the last 6 months, any little convenience that I can get I will take. I imagine with better work/life balance these things become much less of a big deal but for now I am really glad to have an environment that causes me relatively little hassle.
Yeah, that makes sense.
"All that" seems to just be one app, which requires no setup beyond clicking "pair" on the phone once.
Well, there’s not any one simple answer to the question - there’s no one killer feature, it’s more about a bunch of different tiny QoL features that work really seamlessly without any setup. Apple apps and devices all integrate really nicely with eachother in small but noticable ways.

You can probably get close with Linux using a bunch of different apps, services and tinkering, but with Apple, it’s all quite effortless.