My Mac Setup

Nick Taylor on January 12, 2018

Maybe I should start a series called “Not just a Gist”, as I’m slowly converting gists of mine to blog posts. The last one I converted was all ab... [Read Full]

Nice list!

I would add Sip which I use for colors and color management

As well as Stay which I use for window management, since I regularly switch between laptop, 4K and various multiple-monitor setups -- one hot key and my windows adapt to whichever setup I'm running at the moment.

Thanks Allan. I'll check them out!

Thanks for the list! Added some really nice utility to my macOS tool belt. 👍

I'd like to give a shoutout to one vital app in my setup: BetterTouchTool (or short, BTT). It really is pure gold.
The app allows you to create custom (global or per-app) gestures for the trackpad or the magic mouse. (It supports changing other devices' behaviour as well, like adding system-wide keyboard shortcuts, but those two are the ones I most commonly use it for.)

Some examples from the gestures I defined for the trackpad on my MacBook Pro:

  • 3 finger swipe down: close the current window/tab (performs ⌘W)
  • 3 finger swipe left/right/up: Put current window to the left/right half of the screen resp. maximize it

The following are only enabled for my browsers:

  • 2 finger click: open link in a new tab (⌘ + Click)
  • 3 finger swipe up: restore the most recently closed tab (⌘⇧T)
  • 2 finger swipe from bottom edge: refresh the page (⌘R)

Those are only a few of the gestures I use. They really become muscle memory and you're whole workflow is screwed when BTT is not running for some reason. 🙃

I frequently use ngrok (ngrok.com/) to expose my local dev environment over the internet.
It's quite useful to show the current state of a project to a customer.

I tried it a couple of summers ago. It seemed pretty easy to setup. I may have to check it out again.

some install snippets are missing brew on start - it is typed before code section as plain text. You might want to fix that (or not - in any case this is a great post, I've acquired some handy tools/setups from it)

Example: "brew cask install iterm2" (not the only one in whole text)

Thanks Den. I'll update it when I have a chance. Glad you liked the post. Cheers.

I also started a script to automate the install of my tooling. It's not finished, but feel free to take inspiration from it.

Nice. I automated mine a while back, but still need to tweak it a bit still, gist.github.com/nickytonline/729fc...

Great write-up ... the Mac "tools" (or programs, really) that I love personally are:

  • uBar: adds a Linux/Windows like taskbar which for me takes away the annoyance of window/task management on OSX (only the Dock and Mission Control is too frustrating for me, drives me crazy ... don't start a discussion with a Mac purist on this!)

  • DaisyDisk: lets you find out what the heck is eating so much space on your harddrive and reclaim that space. Easy and very powerful tool.

  • Apptivate: handy tool to define keyboard shortcuts to launch applications

uBar is paid (I believe it costs $10 or something like that), but it's well worth it for me. DaisyDisk is 'semi free' (pay a small amount to get rid of a startup message which makes you wait a bit). Apptivate is free.

All these programs are simple and have a zero learning curve.

Apart from these the 'tool' I use the most is the bash shell (Terminal).

I haven numerous other 'utility' programs installed but I could just as well delete them, never using them.

There's a free alternative for DaisyDisk: Disk Inventory X

Does it work as well as DaisyDisk? I found DaisyDisk to work extremely well, and tbh I'm using it for free ...

Late to the party here, but have two small contributions to add:

  1. Your glog alias looks very similar to something I came up with that I named git tree and git tree --all that show a nicely styled git graph, tweaked and colorized for the most relevant info.

    => Screenshot of output from git tree

    I use this literally 10s of times a day as primary developer, and release manager on a wide array of projects for work.

    Also, I'd point out that instead of putting this in a shell-specific aliases file, I place these kinds of git-specific configurations inside ~/.gitconfig and then can easily scp the file to any server environment that has git installed.

    # in ~/.gitconfig
    [alias]
    
    # Change directory to repo root
    repo-root = "!cd $(git rev-parse --show-cdup)"
    
    # Display the commit history of current branch in a tree format, with color. 
    # Use git tree --all to see entire repo instead of current branch.
    tree  =  "!git log --graph --decorate --pretty=format:'%C(yellow)%h %Cred%ad %Cblue(%an)%C(cyan)%d%Creset %s' --date=format:'%F %k:%M:%S'  --abbrev-commit"
    
    # Show recent commits, similar to git tree, but with different contextual information
    recent = "!git log --color --format='format:%C(auto)%h %Cred%<(8,trunc)%aN  %Cblue%<(12)%ar %Creset%s'"
    
    # Show the merge history on the current branch.
    mh = "!git log --decorate=short --pretty=format:'%C(yellow) %h %C(blue) %s %C(reset)(%C(red)by %cN %C(green)on %cD%C(reset))' --merges"
    
    # Sometimes the only change in a file is from 0755 to 0644 or
    # vice versa; the following command resets all file permissions
    # changes to their original values.
    permission-reset = "!git diff -p | grep -E \"^(diff|old mode|new mode)\" | sed -e \"s/^old/NEW/;s/^new/old/;s/^NEW/new/\" | git apply"
    
  2. When I need something a bit more powerful than git tree to view the git graph interactively I use gitUp (free and open source). ProTip: this tool is also really useful as a replacement for git add/checkout -p to interactively stage or discard hunks across a large number of files with mouse-click-n-drag, then Enter key to stage or Delete key to discard.

    To open gitup for the current repository from the command line just type gitup from inside any folder in a repository, which launches via a symlink at /usr/local/bin/gitup that points to /Applications/GitUp.app/Contents/SharedSupport/gitup

Thanks for sharing those tips James. Gonna check gitup out.

Thanks for the awesome list. I look forward to checking these out!

(Small suggestion - you might want to link to the main LiceCap page since the version you direct linked to is outdated (1.25 vs 1.28).)

Hi Nick. Great list. I’ve got a similar set-up but have also now found some new tools I wasn’t aware of, thanks! Seeing as we have a similar taste in apps, I thought you might like to take a look at an app I’ve been developing called Browserosaurus (shameless plug, I know, but seemed appropriate). It allows you to intercept clicked links and send them to the browser of your choice. I’m currently in the process of a bit of a rewrite that should be released soon, but v1.3 is still fairly solid. The code is open source on GH too, so feel free to have a poke around and send feedback/issues.

As a substitute for Spectacles, it feels a bit outdated compared to VEEER! You should definitely check it out, very similar but it is newly built so that means the developer is constantly updating it!

Thanks Naseem, I'll check it out.

For those interested, here's the link, veeer.io

@nzraad , I may be a veeer convert. Still trying it out, but very happy so far.

I've tried VEEER today. Spectacle has more keyboard shortcuts for better controlling and resizing windows. And I can't find a way of moving windows between monitors with VEEER.

This blog post inspired me to do a fresh mac setup and try to automize everything that is possible throughout the setup process. Took quit some time but my future me will thank me :) github.com/oncode/mac-setup

Nice. I automated mine a while back, but still need to tweak it a bit still, gist.github.com/nickytonline/729fc...

Small correction, for me the Cobalt 2 theme had to be downloaded first: github.com/wesbos/Cobalt2-Alfred-T...

Great post!

You're right. Thanks Don. I must have had it there for so long that I forgot it doesn't ship with it. I'll update the article.

Don, the article has been updated. 💻

Good explanation there;although i don't have Mac. Hahaha, any chance for Linux or windows setup?

Aside from Alfred, Spectacle, Amphetamine and iTerm2, most of those tools including My Visual Studio Code Setup are available for all OSes. You also might want to check out @brpaz 's post My Linux Development Environment of 2018.

This is pretty close from my config, i would just add tmux (with tmux-powerline) is a pretty amazing tool if you're using a lot your shell :)

I tried out tmux a while back. I folllowed Bonnie Eisenman's course Wrangle your terminal with tmux from @brindelle on @eggheadio. I like the idea of keeping your sessions even if you accidentally close the terminal. I just haven't had time to totally mess around with it. What's your favourite parts of tmux? Maybe write a post on dev.to about it? ;)

Hi. I recently switched from zsh to fish a nvm works just fine thanks to github.com/fisherman/nvm and installed via oh my fish

Thanks David. I had tried all that but for some reason I was getting errors still. Don't remember the exact error, but I'll revisit this and see if I can get it working.

Haven't tried Bear, looks nice. I'm a big fan of Day One.

Ahaha you're a cask power user! I still have most of my apps installed the old fashioned way or through the App Store.

Thanks for the list!

Really great list, I use some of this tools and tried others, though some tools lacks small description (n for example)

Thanks For the feedback Tom. I'll add the missing descriptions.

I've updated the missing descriptions.

Thanks for the Alfred suggestion. I'm checking it out right now. And as another Spectacle user, I also suggest all Mac users to have it installed.

Good read! I want to recommend use nodengine for automagically switch node version between projects. It complements n perfectly github.com/Kikobeats/nodengine 👌

I personally overuse o from Alex Plutov to go to open my git's remote in the web browser. I find it ridiculously simple and good.

Just came across this great little app for Slack like emoji support on macOS. Thanks Ben Ilegbodu for mentioning this on Twitter.

I'd like to recommend this super simple timer.app that help me time box things I'm doing. Also great with pomodoro technique.

michaelvillar / timer-app

A simple Timer app for Mac

A simple Timer app for Mac

Download here

Drag the blue arrow to set a timer. Release to start! Click to pause.

When the time is up, a notification will show up with a nice sound.

Create new timers with CMD+N.

Install as a cask via brew cask install michaelvillar-timer.

Inspired by the great Minutes widget from Nitram-nunca I've been using for years. But it wasn't maintained anymore (non-retina) + it was the only widget in my dashboard :)

Timer requires macOS 10.11 or later.

Build

xcodebuild -quiet clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
open build/Release/

Definitely adding this to my configuration.

code of conduct - report abuse