Skip to content

Instantly share code, notes, and snippets.

@basavyr
Last active June 23, 2024 09:53
Show Gist options
  • Save basavyr/d5857faf7beaf00fe357933a882cce3d to your computer and use it in GitHub Desktop.
Save basavyr/d5857faf7beaf00fe357933a882cce3d to your computer and use it in GitHub Desktop.
MacOS First Setup

Initial setup for a developer oriented macOS

In this guide we will focus on the necessary steps, settings, and tools that are required in order to have an environment that is streamlined for development, research, and overal productivity; all while keeping an emphasiz on distraction-free and minimalism

OS level

  • We will always try to keep the operating system at the latest available version (stable releases only), so the very first step would be to make sure that our system has all the OS updates installed
  • At the time of writing this guide, my macOS version is Version 14.5 (23F79)

Categories

The priorities of the following apps, and settings are mostly a preference, decision on their order can be arbitrary. It is just their unified and cohesive form that makes the entire setup to work properly.

Moreover, please keep in mind that the applications mentioned in the lists are 100% subjevtive. Instead of the services I use, there are plenty of alternatives for most of them (many free, and others paid). Choice is absolutely given to the user.

Manager apps

  1. Install Maccy, a clipboard manager. This will offer you a history of all the things that were selected in the clipboard.
  2. Install Magnet, a window manager. Moving windows around using keyboard shortucts is extremly useful.
  3. Install RayCast, an laternative to the builtin Spotlight, but with highly customizable features.
  4. Install OneSwitch. Useful options to turn on or off via accessible UI.
  5. Install Bartender 5, an awesome manager for the menu bar applications.
  6. Install Stats. See your computer statistics and health right within the menu bar itself.
  7. Install Alt-Tab. It simulates the behavior of Windows, which IMHO offers a better way to naturally navigate windows.
  8. Ehance Finder behavior. Under the View menu, activate the Status bar and Path Bar. Under Finder -> Preferences -> Advanced also select the option Show all filename extensions.
  9. iCloud. If you have multiple devices it would be very helpful to turn on Desktop & Documents Folders sync option through the iCloud settings from the System Settings.
  10. Install Espanso. An awesome autocomplete tool.

Feature apps

  1. Install a dedicated browser. I use Brave. If you prefer using Safari, then the step can be safely disregarded.
  2. Enhance the browser functionality with with a set of extensions. Here is the list of extensions that I normally use: Bitwarden Password Manager, Tab Session Manager, UnTrap for YouTube, FireShot, Malwarebytes Browser Guard. The UnTrap extension is quite useful if you want minimal YoyTube experience. The other extensions are pretty much self-explanatory.
  3. Install Bitwarden (as machine-wide application), which is the password manager of choice with multi-device support and a great free suite of features, including sync. Additionally, the CLI can also be configured on the system, and this will go hand in hand with another application that will be later configured, i.e., RayCast.
  4. Install the Xcode Command line tools. It is a smiple command, which can be given from the terminal and it helps by installing the clang+gcc compilers and git. Run xcode-select --install.
  5. Install brew, the famous package manager for macOS. It is just a shell command that can be written from a terminal window: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  6. Enhance your UNIX experience through a dedicated terminal application, such as iTerm2 or Warp. I personally use Warp, as it offers a more unique way of interacting with shell environments,
  7. Install Standard Notes. Encrypted note-taking app that also supports web access.
  8. Install GitKraken, which is one of the most practical Git clients available.
  9. Install Visual Studio Code, which is a GUI-based text editor.
  10. Install GoodNotes 6, which is a great notetaking app for hand-written notes on iPad. Synchronization of the notes allows seamless integration between writing and reading the notes anywhere.
  11. Install Obsidian, which is another note-taking app, but with much richer out-of-the-box feature set than Standard Notes. It is based on the Zettelkasten concept. Similar to RoamResearch.
  12. Install Dropover. Helps move and manage files.

Shell-level

  1. Update your ~/.vimrc with set number and syntax on. This will ease the navigation and reading of files through Vim.
  2. Create an SSH key. Mandatory if you want hassle-free git cloning and repo management. ssh-keygen -t ed25519 -C "email"
  3. Install fzf, ommand-line fuzzy finder..
  4. [pre-step 5] in preparation of the next step, it is always best to manually install the following packages via brew. Run brew install openssl readline sqlite3 xz zlib tcl-tk (This is for macOS). For Linux systems the command would be sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev curl \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
  5. Install pyenv, which is one of the most useful and simple Python version managers available. Within a terminal windows, just run the following command curl https://pyenv.run | bash.
  6. Install oh-my-zhs. sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  7. Install Powerlevel10k, which is a theme over zsh.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment