Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
MonitorControl
🖥 Control your display's brightness & volume on your Mac as if it was a native Apple Display. Use Apple Keyboard keys or custom shortcuts. Shows the native macOS OSDs.
-
Mos
一个用于在 macOS 上平滑你的鼠标滚动效果或单独设置滚动方向的小工具, 让你的滚轮爽如触控板 | A lightweight tool used to smooth scrolling and set scroll direction independently for your mouse on macOS
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Rectangle is fully open source, so rather than working with the community to fix the problem you're having (about 1/10th the effort you went into debugging the problem), you instead opt for a paid app? What you do if you were using Linux?
https://github.com/rxhanson/Rectangle
Since I don't have (nor plan to have) Magic mouse, that's kinda expensive solution :)
I use this instead: https://github.com/pilotmoon/Scroll-Reverser and it works well. Generally my preferred settings is like this: natural scrolling (ie. the mac default) for trackpad, but inversed (ie. linux/windows default) scrolling for mouse.
https://github.com/sbmpost/AutoRaise then, as mentioned before.
Although what you can't do (I think) is having (input) focus on a non-raised window, because that would break the focused-app-is-active-app-hence-menubar (because keyboard shortcuts) model imposed by the window manager.
Valid points in the article.
Slightly related: I feel it's worth spreading the word about yabai [1], a tiling window manager for MacOs. I've been using it for >1 year, to get an i3 like experience, and find that it makes using MacOs very pleasant.
> Focus Follow Mouse
Can do this with yabai
> Always on top windows
Can do this with yabai
> Window snapping
Can do this with yabai
The way I use it: I have 9 desktops, and can switch between them via the keyboard (ctrl+). Can move apps from one desktop to another via keyboard commands. Apps are automatically resized to fit. Can move apps around on screen via keyboard commands.
[1] https://github.com/koekeishiya/yabai
- Debug apps which don't opt into debugging, using gdb/lldb, without disabling SIP. It's my computer, I should be root, I should be able to introspect how processes execute on it. Not being able to do so prevented me from debugging https://github.com/samschott/maestral/issues/597, since I had to disable SIP, which required rebooting, which stopped the bug from happening.
- Edit $PATH for IDEs launched from the Mac GUI (to add MacPorts/Homebrew-installed Ninja to Qt Creator's binary search $PATH). ~/.profile isn't evaluated at login time (only in terminals), /etc/paths doesn't work (forgot if it affected terminals, definitely doesn't affect GUI apps), and `launchctl setenv PATH` didn't work in my testing.
- Install libraries like SDL systemwide in paths searched by default by build systems and runtimes, like on Linux. MacPorts installs to /opt/local, Homebrew on M1 installs to /opt/homebrew, neither of which is searched by build systems. I might try setting up developer environments using Nix at some point, but I haven't learned how to use Nix/nix-darwin beyond editing the set of global apps.
NFS mounts are supported in macOS natively
SSH mounts are done with osxfuse
MTP support is also available: https://github.com/ganeshrvel/openmtp
This article feels a bit like the author didn’t look very hard for solutions to a lot of their problems, but instead skipped straight to writing an article to complain about things they didn’t understand.
I'll start with things that I'm happy to have in mac that didn't have in Linux :)
- Cannot run a bunch of programs that stay on the topbar, like LINE (https://line.me/en/), Kap (https://getkap.co/), etc. I am a fairly heavy user of Kap and I love the interface, so this is probably the biggest differentiator for me.
- The visual quality of the programs in Mac is generally a lot higher, and humans do like aesthetic visuals. For example the "CPU indicator" (iStat) I have in mac is an order of magnitude better, same as VPN tool, etc.
- Upgrading the OS to a major version without worrying if I'll be able to boot next time.
- (unfair?) 10+ hours of real-world battery usage, in Linux I could often get half of the advertised 5-6h battery life from the PCs if lucky
- A lot more hardware stuff with the M1 Macbook Air, like the amazing touchpad, keyboard (in new models), etc. Some will say it's fair to compare them some won't, so I'll leave that up to you but summarize them all in this point. I want to try Asahi Linux when it comes out stable though!
- Drivers all work very well, it's like they built them on purpose for their hardware (!). No more fighting with pulseaudio.
However overall I've found them to be a lot more similar than dissimilar to my surprise, swapping from one to another as a normal everyday JS dev is fairly trivial. To add on the author's list, the biggest issue I have is with external USBs, I like having them encrypted for backups and there doesn't seem to be an easy way to do that with mac. I had no trouble with AndroidUSB, just install it and it behaves just like another filesystem program.
For those who don't mind "full screen" still including the top bar, I find https://www.hammerspoon.org/ to be a good compromise. I set up option+shift+f to full screen my window instantly.
You can use this app to get the alt-tab behavior from Windows on macOS if you want: https://alt-tab-macos.netlify.app/
Try out BeardedSpice[0] which handles the media keys
[0] https://github.com/beardedspice/beardedspice || brew install —cask beardedspice
Honestly, I think Apple just forgets people use a mouse. The default trackpad scroll direction matches iPads and touchscreens. Their oversight was coupling trackpad and mouse wheel scroll direction. Until I had a job where I needed both I didn't really care...and I found an open source utility that addressed it[1].
[1] https://github.com/Caldis/Mos