Here’s a rundown of the tools and applications I use to set up my development environment on both macOS and Linux. These have proven useful in my workflow, but your mileage may vary.

macOS Setup

First thing I do is go to Settings -> Trackpad -> Enable Tap to click.

Package Management

  • Homebrew: The go-to package manager for macOS. Pretty much essential. But I am thinking of learning nix for more package management goodness and reproducibility.

Terminal Enhancements

  • Oh My Zsh: A framework for managing Zsh configuration. Makes the terminal a bit more user-friendly.

Productivity Tools

  • Raycast: A launcher that’s more powerful than Spotlight. I use it for quick calculations and most importantly clipboard history. This also has window management, but i am too lazy to switch from rectangle.
  • Rectangle: Simple but effective window management app. Have gotten very used to the shortcuts, never looked back even with the latest MacOS window management.
  • Notion Calendar: This was Cron earlier. Basically alerts me before my meetings and shows it in the menu bar.

Development Tools

  • Docker client: I use OrbStack as a lightweight Docker client. It is super useful on M1 apps. This works fine for 99% of my use cases. The one time I needed some rosetta customization, I had to use the full Docker Desktop.
  • Warp: A new terminal app that supports multiple tabs, multiline editing, longer command history. I don’t like that it asks for signup at the start because it is VC driven so 🤷‍♂️. Skill issue on my part.
  • Cursor: An IDE with AI capabilities. I am faster with this.

Web Browsing

  • Brave browser: A Chromium-based browser with built-in ad-blocking and tracking prevention.

Utilities

  • Mos App: I use an external mouse and the scrolling direction is reversed. This app fixes that, along with some smoothening of the scrolling.

Command Line Tools

  • bat: A cat clone with syntax highlighting. Nice for quick file views.
  • fzf: Fuzzy finder for the command line. Great for searching through command history.

Note-taking

  • Notes: Apple Notes, Google Docs, Cursor

Python Environment

  • uv: A fast Python package installer and virtual environment manager. I recently switched to this from miniconda, which I used previously. So far, uv seems faster and more lightweight, but I’m still in the process of fully transitioning.

Some useful mac shortcuts

  • fn + delete to delete a word backwards (windows delete key)
  • Press fn twice to get emoji picker
  • cmd + shift + . to view hidden files in finder
  • cmd + shift + 3 to take a screenshot of the entire screen and save it to the desktop
  • ctrl + cmd + shift + 3 to take a screenshot of the entire screen and copy it to the clipboard
  • cmd + shift + 4 to take a screenshot of the selected window
  • ctrl + cmd + shift + 4 to take a screenshot of the selected window and copy it to the clipboard
  • cmd + shift + 5 to screen record via Quicktime
  • cmd + ~ to switch between multiple windows of the same app
  • cmd + tab to switch between apps

Some useful chrome shortcuts

  • cmd + option + arrow-keys to switch between tabs in browser (Chrome based ig)
  • cmd + shift + t to reopen the last closed tab

Some useful Cursor/VSCode shortcuts (MacOS)

  • cmd + shift + p to bring up the command palette
  • cmd + p to bring up the file navigator
  • cmd + shift + e to explore the file system
  • cmd + shift + f to search for files
  • cmd + shift + d to open debugger
  • If you want to move up/down the current line or selection, alt + arrow-keys works.
  • cmd + left-arrow to move to the beginning of the line
  • cmd + right-arrow to move to the end of the line
  • cmd + delete to delete the entire line to the left of the cursor
  • Select a word and do cmd + d to find occurrences of the word in the file. Match for case and exactness on the tooltip that appears.
  • Multiple cursors can be done using cmd + d or option + click.

Linux Setup

Terminal Enhancements

  • Oh My Zsh: Same setup as on macOS.
    • Plugins: zsh-autosuggestions, zsh-syntax-highlighting, autojump

Docker Installation

For Linux, I typically install Docker using the official script:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

Nvidia drivers

Command to install the recommended drivers:

sudo ubuntu-drivers autoinstall

Will add more here soon.

Some useful terminal shortcuts (Linux)

  • ctrl + a to move to the beginning of the line
  • ctrl + e to move to the end of the line
  • ctrl + l to clear the screen
  • ctrl + u to delete the entire line
  • ctrl + w to delete the word before the cursor
  • ctrl + r to search through command history
  • ctrl + shift + r to reverse search through command history and execute
  • ctrl + c to cancel the current command
  • ctrl + shift + c to copy the current selection (cmd + c on macOS)
  • ctrl + shift + v to paste the copied text (cmd + v on macOS)
  • ctrl + z to suspend the current command
  • ctrl + d to exit the current shell
contents
  1. macOS Setup
  2. Package Management
  3. Terminal Enhancements
  4. Productivity Tools
  5. Development Tools
  6. Web Browsing
  7. Utilities
  8. Command Line Tools
  9. Note-taking
  10. Python Environment
  11. Some useful mac shortcuts
  12. Some useful chrome shortcuts
  13. Some useful Cursor/VSCode shortcuts (MacOS)
  14. Linux Setup
  15. Terminal Enhancements
  16. Docker Installation
  17. Nvidia drivers
  18. Some useful terminal shortcuts (Linux)