• ᴥ •つ TOP

post created: Mar 07, 2024

MacBook Pro Specification

  • 13-inch, 2020
  • 2 GHz Quad-Core Intel Core i5
  • 16 GB RAM
  • 512 GB SSD
  • Key Layout - QWERTY
  • macOS Sonoma 14.4

System Preferences

  • Appearance
    • Appearance - Light
    • Show scroll bars - Always (ugly I know)
  • Control Center
    • Battery - Show Percentage
    • Automatically hide and show the menu bar - Always
  • Siri & Spotlight
    • Ask Siri - Disable
    • Spotlight Search result - Disable all except
      • Applications
      • Calculator
      • Conversion
      • Definition
      • System Settings
  • Privacy & Security
    • FileVault - ON
  • Desktop & Dock
    • Position on screen
      • if a single monitor -> Left
      • Multiple monitors -> Bottom
    • Automatically hide and show the Dock - Enable
    • Animate opening applications - Disable
    • Show suggested and recent apps in Dock - Disable
    • Default web browser - Safari
  • Displays
    • Use as - More Space
  • Wallpaper
    • Slam Dunk
  • Battery
    • Low Power Mode - Only on Battery
  • Lock Screen
    • Start Screen Saver when inactive - For 20 minutes
    • Turn display off on battery when inactive - For 10 minutes
    • Turn display off on power adapter when inactive - For 30 minutes
    • Require password after screen saver begins or display is turned off - After 15 minutes
  • Touch ID & Password
    • Use Apple Watch to unlock you applications and your Mac - Enable
  • Keyboard
    • Text Input
      • Dvorak
      • Japanese - Romaji
      • 3-Set Korean (390)
    • Text Input Options
      • Correct spelling automatically - Disable
      • Capitalize words automatically - Disable
      • Add period with double-space - Disable
      • Use smart quotes and dashes - Disable
  • Trackpad
    • Point & Click
      • Tracking Speed - all the way to fast
      • Silent clicking - Enable
      • Force Click and haptic feedback - Disable
      • Tap to click - Enable
    • More Gestures
      • Notification center - Disable
  • Finder -> Settings
    • General
      • Show these items on the desktop: Disable All
      • New finder windows show: Home
    • Tags
      • Disable All
    • Sidebar
      • uncheck Recents
      • check Home
      • uncheck Shared iCloud
    • Advanced
      • Show all filename extensions - Enable
      • Remove items from the Trash after 30 Days - Enable
  • Sharing
    • Disable all sharing
    • Edit Local hostname
    • Also in terminal:
      • sudo scutil --set ComputerName "newname"
      • sudo scutil --set LocalHostName "newname"
      • sudo scutil --set HostName "newname"

System Preferences (Terminal)

Take screenshots as JPG

defaults write com.apple.screencapture type jpg

Show hidden files

defaults write com.apple.finder AppleShowAllFiles YES

Show path bar

defaults write com.apple.finder ShowPathbar -bool true

Show status bar

defaults write com.apple.finder ShowStatusBar -bool true


Install Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Update everything in Homebrew to recent version:

brew update brew upgrade # if you have any outdated packages

Install GUI Applications

brew install --cask \ bitwarden \ figma \ karabiner-elements \ obsidian \ nota \ rectangle \ spotify \ gifski \ obs \ kitty

Install CLI Applications

brew install \ bat \ curl \ fish \ # used for oh-my-fish fisher \ git \ git-lfs \ gh \ # github CLI gpg \ pinentry-mac \ nvm \ pnpm \ neovim \ tmux \ ripgrep \ # used for telescope.nvim fd \ # used for telescope.nvim

Git & Git LFS

Configure the global user name and email:

git config --global user.name 'NAME' git config --global user.email 'EMAIL'

Initiate LFS setting by installing it:

git lfs install git lfs install --system # you may skip this

To process unicode file names:

git config --global core.precomposeunicode true

Backup previous SSH and GPG keys or create new ones.

Get the GPG key using gpg --list-secret-keys --keyid-format=long and set the global defaults to sign your commits.

git config --global user.signingkey <key> git config --global commit.gpgsign true git config --global gpg.program /usr/local/bin/gpg

You may need to run the following:

export GPG_TTY=$(tty) echo "pinentry-program /usr/local/bin/pinentry-mac" > ~/.gnupg/gpg-agent.conf gpgconf --kill gpg-agent # restart the gpg service


I'm using the kitty terminal.


Install Oh-My-Fish.

curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fish

Install packages and setup Node

Install packages using omf install:

omf install z nvm

Set the NVM directory

set -gx NVM_DIR (brew --prefix nvm)

Install the NVM plugin for Fisher

fisher install jorgebucaran/nvm.fish

Install and use Node

nvm install latest nvm use latest set --universal nvm_default_version latest

You may want to remove the conflicting Node versions:

which -a node ... rm -rf /usr/local/bin/node

Install Theme and Fonts

Show all themes using omf theme:

omf theme Available: ... toaster

Install a theme toaster:

omf install toaster

If you need to uninstall it, run omf uninstall <THEME>

omf uninstall toaster # and reload the terminal

Install the Meslo Nerd Font:

brew tap homebrew/cask-fonts brew install font-meslo-lg-nerd-font

You can change the font from the configuration file: Settings or ⌘ + , on macOS. Find # font_family, un-comment it, and replace the monospace with MesloLGS Nerd Font Mono.

Set tmux as default

Open the configuration file: Settings or ⌘ + , on macOS.

Find # shell . and replace it with shell tmux.

Then configure tmux (~/.tmux.conf) to start with a fish shell.

set-option -g default-shell /usr/local/bin/fish

Configure Fish shell's greeting message

set fish_greeting 'Happy Coding ヾ(*´ ∇ `)ノ'

Install LazyVim

Make a back up of your current neovim files.

# required mv ~/.config/nvim{,.bak} #optional; you can delete it instead of backing it if you want mv ~/.local/share/nvim{,.bak} mv ~/.local/state/nvim{,.bak} mv ~/.cache/nvim{,.bak}

Install it.

git clone https://github.com/LazyVim/starter ~/.config/nvim rm -rf ~/.config/nvim/.git nvim

When you first launch nvim, it will install lazy vim and its plugins.

If you have your neovim setup template/backups, copy and/or replace files in ~/.config/nvim/lua.

I saved my current setups in a private repository in github.

Configure aliases

Create a file aliases.fish inside ~/.config/fish/conf.d.

alias vim='nvim' alias cat='bat'

Add another aliases for git, git_aliases.fish.

# ~/.config/fish/conf.d/git_aliases.fish alias g='git' alias gd='git diff' alias gst='git status' alias ga='git add' alias gaa='git add --all' alias gcmsg='git commit -m' alias gl='git pull' alias gll='git pull origin (current_branch)' alias gp='git push' alias gpp='git push origin (current_branch)' alias gpf='git push -f origin (current_branch)' alias gco='git checkout' alias gs='git switch' # switch branch alias gsp='git switch -' #switch back to previous branch alias gsm='git switch main' alias gb='git branch' alias gba='git branch -a' alias gcount='git shortlog -sn' alias glo='git log --oneline' alias gloga='git log --oneline --graph --all' alias gwc='git whatchanged' alias gwcp='git whatchanged -p --abbrev-commit --pretty=medium' alias gr='git restore --staged' # unstage changes; git reset file alias grd='git restore --staged --worktree' # unstage and discard changes; git checkout file alias gsundo='git reset --soft HEAD~1' alias ghundo='git reset --hard HEAD~1' alias gwa='git worktree add' alias gwr='git worktree remove' alias gwl='git worktree list' alias gbs='git bisect start' alias gbb='git bisect bad' alias gbg='git bisect good' function current_branch set ref (git symbolic-ref HEAD 2> /dev/null); or set ref (git rev-parse --short HEAD 2> /dev/null); or return echo $ref | sed -e 's|^refs/heads/||' end

Source two alias files or restart the terminal.

← prev post