DEV Community

Cover image for My Mac Setup

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 abou...
Collapse
 
shane325 profile image
Shane Barry

Great list! Thanks for sharing.

Collapse
 
ajoslin103 profile image
allen joslin

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.

Collapse
 
nickytonline profile image
Nick Taylor

Thanks Allan. I'll check them out!

Collapse
 
loilo profile image
Florian Reuschel

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

Collapse
 
denrimus profile image
Den Drobiazko

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)

Collapse
 
nickytonline profile image
Nick Taylor

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

Collapse
 
nickytonline profile image
Nick Taylor

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

Collapse
 
oncode profile image
Manuel Sommerhalder

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

Collapse
 
nickytonline profile image
Nick Taylor • Edited

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

Collapse
 
jameswilson profile image
James Wilson • Edited

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

Collapse
 
nickytonline profile image
Nick Taylor

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

Collapse
 
leob profile image
leob • Edited

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.

Collapse
 
denrimus profile image
Den Drobiazko

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

Collapse
 
leob profile image
leob

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

Collapse
 
wstone profile image
Will Stone

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.

Collapse
 
nzraad profile image
Naseem Raad

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!

Collapse
 
edwin_r_c profile image
Edwin Ramirez

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.

Collapse
 
nickytonline profile image
Nick Taylor

Thanks Naseem, I'll check it out.

Collapse
 
nickytonline profile image
Nick Taylor

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

Thread Thread
 
nickytonline profile image
Nick Taylor

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

Collapse
 
nishi_id profile image
Nishimiya • Edited

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

Collapse
 
nickytonline profile image
Nick Taylor

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.

Collapse
 
nishi_id profile image
Nishimiya

Thx,I'll go check it.

Collapse
 
gimo profile image
Gimo • Edited

You can also install fonts use brew cask. github.com/caskroom/homebrew-fonts

Collapse
 
nickytonline profile image
Nick Taylor

Nice! Wasn't aware of that. 🔥

Collapse
 
donmccurdy profile image
Don McCurdy

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

Great post!

Collapse
 
nickytonline profile image
Nick Taylor

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.

Collapse
 
nickytonline profile image
Nick Taylor

Don, the article has been updated. 💻

Collapse
 
obahareth profile image
Omar Bahareth

Hey! Thanks for sharing!

I have a similar list as a GitHub repo that you might find interesting :)

Collapse
 
osuka42 profile image
Oscar Mendoza

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.

Collapse
 
nickytonline profile image
Nick Taylor

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

Collapse
 
alebatt profile image
Albert Le Batteux

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 :)

Collapse
 
nickytonline profile image
Nick Taylor

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? ;)

Collapse
 
ky1e_s profile image
Kyle Stephens

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

Collapse
 
rhymes profile image
rhymes

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!

Collapse
 
lt0mm profile image
Tom

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

Collapse
 
nickytonline profile image
Nick Taylor

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

Collapse
 
nickytonline profile image
Nick Taylor

I've updated the missing descriptions.

Collapse
 
edwin_r_c profile image
Edwin Ramirez

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.

Collapse
 
kikobeats profile image
K I K O B E A T S ⚡️

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

Collapse
 
speedmaster profile image
Speedmaster

Wow, thanks!

Collapse
 
nguyenquangtin profile image
Tony Tin Nguyen

Thank you for the list.

Collapse
 
schovi profile image
David Schovanec

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

Collapse
 
nickytonline profile image
Nick Taylor

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.

Collapse
 
n0kit31 profile image
Marcin Krzyżanowski

Tremendous list! Cheers!

Collapse
 
giorgiobertolotti profile image
Giorgio Bertolotti

Thanks, I'm gonna try something from the list for sure!

Collapse
 
jess profile image
Jess Lee

Do you still use spectacle or have you moved on to a different window manager? Asking bc I use spectacle but noticed recently that the project is no longer being maintained!

Collapse
 
nickytonline profile image
Nick Taylor

Ahh didn’t know that. I still use it. Any recommendations to replace Spectacle?

Collapse
 
nickytonline profile image
Nick Taylor

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

Collapse
 
nickytonline profile image
Nick Taylor

Will do. Thanks Grant!

Collapse
 
msavin profile image
Max Savin

Great list. Would love for you to try Paletter - feel free to dm me @msavin for a voucher :D

Collapse
 
maestromac profile image
Mac Siri

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/

Collapse
 
nickytonline profile image
Nick Taylor

Thanks for sharing Mac!

Collapse
 
nickytonline profile image
Nick Taylor

Definitely adding this to my configuration.