I’ve just received a new 2020 MacBook Pro 13” (i7/32/1TB) couple of days ago and had a moment to sit with it during the weekend. To clarify, I previously had few PPC/G4 machines, and some kind of Air for a couple of days at work to do some video editing work for bunch of screencasts. Oh, and we used the first Intel iMacs at middle school with some Apple-specific OpenOffice fork.
So I’m briefly familiar with “how Macs work” in general, but this particular machine is my very first, brand new, current-gen and out of the box personal Apple computer.
And the question is: What should I do now? Which software you can suggest me to install? What settings/tunables I might change/add/update? What changed in Mac OS X during the recent years, and - probably the most important fact - which kind of “computing pleasures” I can “explore” or “experience” on modern Macintoshes?
Right now I’ve installed Homebrew and iTerm2 so you might be pretty sure that I’m going into that UNIX side of Apple, but I’m still eager to discover wonders of that “creative” or even “regular day to day usage” parts.
It might sound redundant to someone as I tried to ignite that discussion on Lobsters IRC last evening, but decided it would be better to move that into a story for wider audience where many people might share their ideas and other benefit from that using my own example as a source of nice tips, suggestions and comments.
Spectacle works great for simple window snapping
Development on Spectacle has stopped, so Rectangle is the alternative that’s based on Spectacle but which is being actively maintained.
Spectacle works just fine. It’s simple and mature. No need to “actively maintain”.
I’m the developer of Rectangle and this spurred me to finally write a post about this since I see this comment from time to time. In summary, if you’re content with your current Spectacle setup that’s great. If you’re looking to install it new, there is a bit of security risk that’s worth being aware of with apps that require accessibility privileges but are not notarized. Also, there’s always potential for software to break with each macOS release, although Spectacle has been pretty robust over the years. Through the lens of a user, personally I would pick an app that’s maintained just so I don’t have to cross my fingers with each macOS upgrade. But hey, to each their own. Spectacle’s a great app.
[Comment removed by author]
Good to know about Rectangle. I didn’t know Spectacle wasn’t actively maintained.
That said, if the user only cares about window snapping, there’s no real reason to use either over the other. They both deliver on window snapping. And the reason to use Rectangle over Spectacle has nothing to do with being actively maintained; it has to do with features. Rectangle definitely offers more than Spectacle does
Just want to emphasize how big window snapping is: idk how I lived without it on my Mac.
I find I feel more cool if I refer to it as a “commercial UNIX workstation,” which is true.
I can definitely recommend that you get Dash, it lets you download documentation for a lot of languages and frameworks and browse and search them offline. Probably one of the reason I like working on macOS so much.
Otherwise:
I second Dash recommendation. It’s a really nice app and I use it daily.
Find a programatic way of managing your installed packages or configuration files. I use git for this:
https://github.com/tomekw/dontfiles
(You will find few interesting apps / casks there, like Rectangle)
Oh, and use Homebrew :)
Good luck! 👋
Ooh, I like the way this solves the
~/.git
issue of “what if I accidentally run some git command like ‘git clean’ in my home dir?”(But, I already moved to Nix for managing my installation. Haven’t yet had a need to reinstall, so can’t say how much it covers, but I’d guess 70% at least. Nix is cool, but does have a bit of a learning curve.)
Or, if you are willing to learn a bit of Nix, home-manager.
Works on Linux too; one declarative config to manage packages and services across platforms.
Exactly, I use git every day so there was no learning curve at all for me! :)
This is much better way of dealing with that than my gross git clean hack (I use a fish function to wrap git and ignore clean if there’s a .git-noclean cookie in the directory).
I use yadm, which is basically the same thing that you are using; a thin wrapper around git to manage dot files.
I really enjoy using yadm.
Cool, I didn’t know it exists :)
Anyway, it shows how little is needed to Actually Get The Job Done (tm) :)
Plenty of lists of software here already, so I’ll just balance out a little with a suggestion to try and work with what’s provided if you can, to at least get used to it, before trying to tweak it to what you think you might prefer. The less I do to a system, the less I have to manage, so I try to go ‘with’ where possible.
That said, I do have many of the mentioned pieces of software, but the ones I actually bother to use or would care if I didn’t have? I definitely use 1Password all day every day, but it’s not as slick as it could be. Sign In with Apple is less friction - but then I’d be tied to that Apple ID…
Probably Firefox, for the sidebar tabs, but that’s really about it.
Good point. IMHO, macOS is very good out of the box. I don’t feel the need to tweak it that much. Most of the defaults are very good. (I actually feel the same about Emacs.)
It’s worth knowing about
brew bundle
and Brewfiles: https://github.com/Homebrew/homebrew-bundleMine looks like the following. Makes setting up a new machine pretty simple, just drop this file in ~ as Brewfile and run
brew bundle
. theman
command is needed to let you install Mac app store apps from the command line. Nothing particularly amazing in this list of apps, thought Patric Wardle’s (a.k.a Objective-See) apps are great if you’re a bit paranoid - Lulu and KnockKnock are particularly nice.Here are a bunch of utilities I use daily and recommend:
This HN comment is the first time that I have heard about the EEPROMs write limit. Note that I took the comment at face value because of the author and I haven’t researched it further.
I have to second your Safari recommendation. Even better with an ad-blocker like Better—the architecture of content blocker plugins in Safari means that they generally don’t negatively affect page load performance at all.
I use Better with Safari and it’s my daily driver for personal use. Of course web dev tools leave a bit to be desired and not all extensions are there. Hopefully extension issue will be resolved with upcoming changes to adopt web extensions API.
Safari will get WebExtensions soon too, so extension support will likely be similar across all 3 browsers.
Yes, I remember that from WWDC. But Apple still wants extensions in App Store, and that may limit devs since that costs $99 a year.
Let’s hope there’s a way to sideload.
Regarding battery life, I’ve found that Opera also has much better battery life than Chrome or Firefox.
tmux
orscreen
for tab/window management, it’s better in nearly every way.Alacritty is fine, but the profiles of iTerm2 is are very useful to avoid nested tmux sessions when connecting to remote machines, unless you want lots of terminal windows open. Having used both extensively, I can’t say one is significantly better than the other as a terminal emulator.
Interesting, I haven’t come across a need for that in my daily use of Alacritty. Can you elaborate more on that use case?
That’s fair enough :) I think “one is better than the other” is subjective, anyway, not least because it’s affected so strongly by personal priorities (I probably should have added “in my opinion” in my original comment). I value so much the fast response times of Alacritty that that single thing alone makes iTerm2 unusable for me, but I can understand that isn’t as important for everyone.
I connect to a couple of machines that have long running tmux sessions in them, so if I use Alacritty (which doesn’t have tabs) and I use tmux in Alacritty for tab/window management I end up with a nested tmux session when I connect. It’s a workable situation, but all the ways to deal with it are not great. With iTerm2, I can set up a profile and bind it to a hotkey to connect to the machine in a tab.
With respect to response times, the only terminal emulator that I’ve found whose response time was actually noticable was Terminal.app. You really can’t go wrong with either Alacritty or iTerm2.
Another open source alternative terminal is Kitty. I’m a recent convert after being a long-term iTerm2 user. IMHO, it’s lighter and less bloated and has all of the features I need. I did try Alacritty for a little while but find Kitty a little more polished.
I recommend buying a license for Acorn. Such a nice image editing program. A prime example of a great Mac application. (Affinity is also quite good.)
I list apps and tools I use in a GitHub repo.
Personally I can’t live without any of the apps there but Karabiner and Goku are essential as I program my keyboard keys to all be custom modifier keys.
If you are more or less new the world of macOS apps, I suggest you take a look at Setapp (https://setapp.com/). You can test out a bunch of apps for a relatively low cost and you will get a good perspective of what’s out there.
Dear god, thanks everyone for all the replies. Sorry for being late to the party, but I seriously underestimated the Mac userbase here and initially assumed this post will die alone being hid by 99 users.
Please forgive for doing only a single comment instead of replying to anyone in sub-threads, but I think many topic do have redundant suggestions or are quite similar in their tone. But believe me, I’ve read the comment section at least three times from top to bottom and I still don’t know how to thank you.
@loch: I don’t really mind paying even a bit more extra for really great software, as long as it does only the job it was dedicated to and not try to play tricks on me. Also, I really hate the subscription models, to the point that I’m more towards paying $50 for the app once and let it work even for a year or two instead of paying $10 per year for Super Pro Deluxe Premium Subscription Ultimate and having that bad occasion to see the ugly nagbar once a year which has no “I’ll pay you $100 to go fsck yourself”.
I am looking at you, Parallels. And that’s also why I probably get the Affinity suite instead of Adobe.
@lorddimwit: But aren’t they in the full definition of that? That might sound a bit too much contrRMSal, but I always wished the Commercial UNIX Workstations would succeed. I had various HP, Sun and DEC boxes which sometimes were older than me and they have really shown me how consistent and integrated UNIX could be if everything gets done within the single set of rules and predefined roadmap - that’s what also drove me into BSD world (mostly OpenBSD) and how I met amazing people such as @mulander. All of that without the “ducktape and tangled wires” model of Linux.
@rxhanson, @timetoplatypus, @nick: Thank you very much for recommending the Spectacle and Rectangle. I think I’ll probably stick to the currently maintained Rectangle and I’m glad that even its author got here and clarified the situation, as it seemed a bit too unexplained (especially from Spectacle’s side).
However, I see a bit of feature overlap as BetterTouchTool does the window snapping too. Actually, it does a huge load of stuff and to be honest I’m a bit overwhelmed by its feature creep, yet I still can notice it’s so mighty to the point that it achieve tasks which nothing else can do
@tomekw (and @stephank, @srid, @jfb): Dziękuję bardzo :) I always knew about the ability to spawn “bare” repos with Git, yet I did not even assumed it can be used for creative (and also useful) stuff with that. On my own, I can add that I really hate dotfiles - not the actual configuration files, but the
~/.anything
at my $HOME. Sadly I don’t have the energy to fight with that most of the time but I really want to and I think it’s really possible to get this on Mac without hacks like symlinking or hiding filesystem elements. I almost achieved the ultimate $HOME nirvana on my Thinkpad back in the 2013-2016 time and I quite miss that.@UkiahSmith: That
yadm
suggestion is also very good one. I really like its approach to templating and variants, but I would probably end up with my own custom Go implementation just for the convienence of easy deployments - you don’t have full-fledged python3 with pip available everywhere where you can just spawn ELF/Mach-O binaries.@vakradrz, @giffengrabber, @mscs, @kevinc: Don’t get me wrong, but I often like to “improve the factory” way of doing things. This approach comes straight from Symbian times where Nokia delivered a very bare bones of basic day-to-day applications (Mail, Music, Notes, Messaging) but their system API was very broad and allowed to do a lot of integration within thirdparty applications. The Android kiddies picked up that attitude almost a decade later but put it way beyond the scale of absurd and doing that actually lead “regular” people to be thrown off of the whole “customization” or “impriving factory” boats.
And I think I’m really welcomed with my point of view on Mac, even when the default Apple apps are top notch. That’s a very good position, becuase often the thirdparty apps are pushing that quality even further creating little pieces of art, like Things being an outstanding application making Reminder lokking like a little baby. That’s a completely new landscape which is not existent on other platforms because both Android, Windows and GNOME (yes, I call GNOME the “default” Linux desktop due to Redhatification of things these days) default applications are just silly placeholders so external devs don’t need to do much to produce passable software.
Surprisingly, considering my Symbian argument, I do completely different thing on my iPhone, where I try to stay as close to stock as possible, mostly because the eager to monetize software on mobile is far more aggressive than desktop and I’m not gonna pay motnhly subscription for the fantasic calendar. Get real, devs.
(However, as I said above, I’m completely fine with giving the dollars to devs who deserve that. But please, keep that money and then just leave me alone, okay?)
@Axman6: This is brilliant and I think Brew is probably the only one package manager (I’m not talking about the huge system configuration behemots like Nix or Guix) which can do that in such simple yet so effective way. Definitely worth noting and it might come useful in some other creative ways like checking the listed software for latest CVEs or making sure all the configuration files from every software are being backed up and uninstalled software is really gone with all it remainders.
Also, glad to see the Ruby is still very strong in Mac world and people actually use it here, I’ve noticed the bunch tools beyond the Homebrew also use Ruby for system-specific tasks or extending itself and I’m really curious to hear why it had to be Ruby (I’m not complaining, though :>)
@bronlund: I can see some values of Setapp, and I actually installed it. But it rises a lot of concerns the longer I use it:
@motet-a, @nil: I really appreciate that “quick recap” making me feel great that most regular UX patterns are still kept intact within the OSX systems line since the beginning. Big Sur seems like it’s a “Big iOS” and might break a lot of that, but to be honest I’ve only seen couple of screenshots and can’t say anything for sure.
On the other hand, I find the 32-bit application support “complainment” completely missted. It might sound zoomer-y, but it’s 2020. First 64-bit CPUs arrived in 1970 supercomputers, first 64-bit addressed CPUs arrived in 1980/1990s, first consumer available 64-bit x86 CPU arrived in early 2000s and there’s no 32-bit only x86 made for 10 years or more (last ones were very-low-powered Intel Atoms for these teeny tiny “netbooks”).
From what I researched just right now, Apple told the developers about the 32-bit deprecation at least a few years ago and they got the time with various reminders and helpful documents/tools to make the transition easier.
Yet still, the developers completely missed that and instead actually used the users’ own anger to direct it at Apple because “it let my apps break” just because some developers got lazy and didn’t spent from few hours (to retarged the compiler and then do automated tests again) to few men-days (for complex applications like data science or audio processing which had sophisticated floating-point operations and should be done migrating at least a decade ago) on their own products.
That attidue is really visible in pro audio communities which is quite amplified there as most producers don’t really dig as much “computer stuff” as they appear to.
@nikivi: OH MY. That’s clearly awesome! Your list is really consistent, organized and relies on real-life usage and still has a very good presentation value. I think I’ll probably do the similar thing soon and might consider merging it within the configuration/dotfiles repository with tome traits of “literate programming” where I describe tools as I configure them in front of readers. Overall, I’m quite speechless and very respectful to the time, energy and a bits of love you put into that repository.
Application specific suggestions.
@xfbs, @true_detective, @neilalexander, @agent281, @nerosnm, @mjturner, @y0ssar1an, @dtgriscom, @z0mbix, @voodoologic, @altano: Would you mind if I just merge all your per-app suggestions into a single list and leave some comments? That list could be possibly easily copied/expored by someone else for future use, like @nikivi did.
For people who copy this, just select the whole list and click “reply”, the Lobsters will put the original Markdown source in your textbox. Just remove everything after “:” in each line if you want to exclude my very opinionated comments.
Stuff I’ve installed (mostly due to your suggestions):
Free:
zap
command to support external applications.Paid:
--csd-wrapper
option which seems to be ignored even if explicitly stated on custom options tab. I’ll probably report that upstream.Stuff I’m yet to explore or decided to pass on:
Free:
Paid:
/quit
and/part
, including the famousMy Macbook Pro has gone to sleep, zZzZz...
(:>). But I don’t really think I’m gonna to pay for it mostly because I want to keep IRC free and pure as it can be. But they might get my attention if the WeeChat relay support will be added as ZNC already is.To be clear, Python is not the base language for Sublime– it is for the plugin system, which makes it easy for people to contribute plugins. The base language is C++, so it is very, very fast. It is one of the few text editors that can handle huge text files without missing a beat. My daily driver for programming is PyCharm but for text manipulation and non-Python work, it is my go to.
Check out all the great small apps like Little Snitch, Magnet, Flycut, Little Ipsum, etc. People have good lists online. Then mentally prepare yourself for your keyboard to break.
The 2020 MBP should have the old, pre-butterfly keyboard switches again, which were very reliable for me back when I used them. Luckily the days of “prepare yourself for your keyboard to break” should be over!
Good news
I’ve got a 2019, and they really did fix the keyboards. Feels much better than my pre-butterfly Mac as well. I’d call it a new generation rather than reviving the old gen.
Macs come with a lot out of the box, so I don’t do much. My advice would be to install as few things as possible for the first few days/weeks just to see what the builtin stuff has to offer.
From hour one on any Mac I buy, I remap caps lock to control, turn on all of the touchpad checkboxes and mouse checkboxes, and install homebrew (which gets some Xcode utilities). From there I install games and a few packages. I set up iCloud because I use the the iCloud Drive and iMessage. Other than that, I have about 61 packages installed via homebrew, and most of those are dependencies.
Examples of stuff I
brew install
or download and install from a 3rd party:For mainstream applications, I tend to use the Apple version if it exists. Terminal instead of a replacement, Pages/Numbers/Keynote instead of MS Office, Mail instead of Outlook or Thunderbird. Pretty much everything else is game clients.
System Preferences are under the Apple menu, top left. Turn on single-finger click & three-finger drag (& watch a video on all of the gestures). Keyboard modifier keys, change caps lock to send control. Terminal.app works fine (Spotlight.app, too): you don’t need iterm2, alfred, quicksilver, &c.
Trash on removable devices: empty the trash before you disconnect! It uses a .trash folder in the volume, basically. You won’t reclaim that space unless you empty trash.
A lot of settings are actually CLI-settable: this guy Matthias Bynens has the sickest defaults imaginable. Finally, learn what a proxy icon is, you can quit apps from cmd-tab, in Terminal middle click still pastes what you select, learn readline shortcuts & realize C-k is a different cut than cmd-x (2 clipboards, plus middle click paste!).
Big upvote for three-finger drag. That used to be under Trackpad and is now under Accessibility, Pointer Control, Trackpad Options.
While it might not be your use-case, I love synergy (paid) b/c it lets you control multiple computers using a single set of a keyboard and mouse. That allows me to keep my work computer and my personal computer - and their respective traffic - separate.
I forgot formation: https://github.com/minamarkham/formation for some developer goodness
[Comment removed by author]
I use a 2018 MBPE running 10.14.6. My primary environmental applications:
Then, there’s MBPE-specific frivolity:
PresButan is the first thing I install. I come from Windows so when I got my first Mac maybe eight years ago it boggled my mind that pressing
Delete
when a file was selected did nothing. PresButan enables such functionality.I’m saving this thread for the future since I’ll be switching fro Linux to macbook. Can anyone suggest me how to get a tiling window manager on macbook
You can install Linux or BSD on a Mac, or you can virtualize to run them, but for macOS itself there is no ecosystem of alternative window managers and no such abstraction layer. macOS does not run X.org or have any similar abstraction layer for multiple window managers; it has its own window server that’s tightly integrated with the Mac SDK.
I haven’t been able to find a tiling window manager on the Mac that doesn’t end up feeling like fighting the platform. I use them exclusively on X, but I don’t bother any longer on the Mac.
I’ve not used them myself, but Amethyst and yabai are options.
The name. It is “macOS 10”. But not for so long because macOS 11 should be released this fall.
Other than that, from a user perspective, the most important things didn’t change in the last couple of years. Finder have almost the same icon, the dock sill exists and the status/menu bar is still at the same place with the same Apple logo. This is a good thing in my opinion. Remember how Microsoft broke everyone’s habits with Windows 8…
But I think that every built in GUI app received significantly upgrades. It’s different from Windows for example, where you could find the exact same awkward app absolutely unchanged fifteen years later (I am looking at you,
cmd.exe
).No more 32-bit app support. That’s a big one for some folks.
I do like Divvy for arranging windows, iStat Menus for system measurements, Karabiner for key remapping, and Tot for short-term notes.
However: Give Apple’s built-in apps a shot. In particular, Safari is kind to your battery and great on privacy. As time goes on I’m more and more satisfied with the stock experience and I feel less need to customize. A lot of people will recommend LaunchBar, Quicksilver, or Alfred, all of which are great. But Spotlight itself goes a long way. Plain old Terminal meets my needs too.
There are lots of UI customizations you can make directly in the base system. If all you need to do is turn caps lock into control, you can do that in system preferences. Also look through the keyboard preferences’ shortcuts; there are lots you can turn on and reassign. One of my favorites is the one that opens the help menu, which lets you type to search the menu bar.
Holding certain keys will usually give you a menu of alternative characters to type, like e -> é. In a code editor you probably don’t want that. There’s a user default to disable it, which I think includes the words “press and hold” so you can probably Google that up.
The user defaults system is a simple app-scoped key-value database, and it’s the way an app will usually save settings you configured. Occasionally a setting will not be exposed in UI at all, and you can think of those as hidden power user features.
If you’re an iPhone or Apple Watch user too, look up the Continuity features, like using your watch to sign into your Mac, continuity camera, and handoff. Some third party apps use Handoff well but the stock apps really do.
There’s lots of great open source software, but because the look and feel of MacOS is constantly in flux, you may find things more outdated than you expect. Surprisingly, paid software on the App Store can sometimes be really great, and may be worth the value if you don’t mind avoiding a hardline FLOSS stance.
There are many lists of favourite macOS apps, but here are a few of my favourites that I haven’t seen mentioned here yet, in no particular order: