Things I can’t do on macOS which I can do on Ubuntu

This page summarizes the projects mentioned and recommended in the original post on

Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • Glassfy - Build, manage, and grow in-app purchases and subscriptions
  • Scout APM - Less time debugging, more time building
  • SonarQube - Static code analysis for 29 languages.
  • JetBrains - Developer Ecosystem Survey 2022
  • Rectangle

    Move and resize windows on macOS with keyboard shortcuts and snap areas

    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?

  • Scroll-Reverser

    Per-device scrolling prefs on macOS.

    Since I don't have (nor plan to have) Magic mouse, that's kinda expensive solution :)

    I use this instead: 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.

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support. Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

  • AutoRaise

    AutoRaise (and focus) a window when hovering over it with the mouse 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.

  • yabai

    A tiling window manager for macOS based on binary space partitioning

    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.


  • maestral

    Open-source Dropbox client for macOS and Linux

    - 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, 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.

  • openmtp

    OpenMTP - Advanced Android File Transfer Application for macOS

    NFS mounts are supported in macOS natively

    SSH mounts are done with osxfuse

    MTP support is also available:

    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.

  • afloat

    Always on top solution, quickly install Afloat in macOS

  • Glassfy

    Build, manage, and grow in-app purchases and subscriptions. Glassfy open source SDK and backend enable you to integrate and remotely manage in-app subscriptions in just minutes, so you can focus on your app.

  • Kap

    An open-source screen recorder built with web technology

    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 (, Kap (, 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.

  • hammerspoon

    Staggeringly powerful macOS desktop automation with Lua

    For those who don't mind "full screen" still including the top bar, I find to be a good compromise. I set up option+shift+f to full screen my window instantly.

  • 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.

  • KE-complex_modifications

    Karabiner-Elements complex_modifications rules

  • alt-tab-macos

    Windows alt-tab on macOS

    You can use this app to get the alt-tab behavior from Windows on macOS if you want:

  • beardedspice

    Mac Media Keys for the Masses

    Try out BeardedSpice[0] which handles the media keys

    [0] || brew install —cask beardedspice

  • Mos

    一个用于在 macOS 上平滑你的鼠标滚动效果或单独设置滚动方向的小工具, 让你的滚轮爽如触控板 | A lightweight tool used to smooth scrolling and set scroll direction independently for your mouse on macOS

    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].


  • KeepingYouAwake

    Prevents your Mac from going to sleep.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts