Skip to content

Instantly share code, notes, and snippets.

@arvindkgs
Last active April 10, 2024 10:40
Show Gist options
  • Save arvindkgs/514ff32370f0b997fbcb0e862efa86f7 to your computer and use it in GitHub Desktop.
Save arvindkgs/514ff32370f0b997fbcb0e862efa86f7 to your computer and use it in GitHub Desktop.
[Mac] MacOS tools and applications #devtools

My setup and customization on MacOS, to make me more productive

Below are applications I install first thing on a new Mac. They have become a part of all my Macs and they are the first things I install on a new Mac
  1. Chrome - Personal browsing
  2. Arc - Corporate browsing
  3. Google Drive - My personal documents sync
  4. pCloud - Misc sync
  5. Copy ssh keys into .ssh folder and test using https://docs.github.com/en/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection
  6. (If using dotfiles) Backup .zshrc other files and migrate dotfiles - https://www.atlassian.com/git/tutorials/dotfiles
  7. Homebrew - package manager
    • /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  8. iterm2 - terminal (For Linux use Terminator)
    • brew cask install iterm2
    1. Press ⌘, under the “General” tab uncheck “Native full screen windows.
    2. In the “Profiles” tab select “Window” and then change the style to “Fullscreen.” This tells iTerm to open new windows in fullscreen mode. I hate the full screen animation, which can be disabled by disabling Native full screen checkbox in Settings->General->Windows
    3. Optionally, set the transparency and blur effects. I find enabling a little transparency helps me remember what’s on the desktop, while blur effect prevents desktop text from obfuscating the terminal’s output.
    4. Finally, in the “Keys” tab enable the system-wide show/hide hotkey. I use ⌘i (the mnemonic being i = iTerm). This conflicts with the italics shortcut in some apps, but that’s a tradeoff I can live with.
    5. Add keyboard shortcuts. Preferences→Profiles→Keys
      1. First click “+” to add a new shortcut.
      2. ⌘← (jump to beginning of line) Set the appropriate action: Send Hex Codes Enter the Hex codes: 0x01
      3. ⌥←Delete (delete previous word) Set the appropriate action: Send Hex Codes Enter Hex codes: 0x1B 0x08
      4. ⌘→ (jump to end of line) Set the appropriate action: Send Hex Codes Enter Hex codes: 0x05
      5. ⌥← (jump to previous word) Set the appropriate action: Send Escape sequence Enter Escape Sequence: b
      6. ⌥→ (jump to next word) Set the appropriate action: Send Escape sequence Enter Escape Sequence: f
      7. ⌘←Delete (delete line) Set the appropriate action: Send Hex codes Enter Hex codes: 0x015
      8. ⌘z (undo) Set the appropriate action: Send Hex codes Enter Hex codes: 0x1f
    6. Set name of profile by adding badge for specific profile based on kubernetes cluster
    7. Set working directory of profile as Reuse previous session's directory
    8. Import profiles using import json profiles
    9. Set unlimited scrollback in terminal tab
    10. Set shortcut key for each profile for easy switching
  9. OhMyZsh - terminal utility
    • $ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  10. Powerlevel10k - theme for Zsh
    • git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
    • echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>! ~/.zshrc
  11. Vim Plug - Vim plugin manager curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
    1. edit ~/.vimrc
      call plug#begin('~/.vim/plugged')
      Plug 'vim-airline/vim-airline'
      Plug 'vim-airline/vim-airline-themes'
      call plug#end()
      
    2. Now reopen Vim and type in :PlugInstall and hit Enter
    3. Install fonts
      $ git clone https://github.com/powerline/fonts.git --depth=1
      $ cd fonts
      $ ./install.sh
      $ cd ..
      $ rm -rf fonts
      
    4. edit ~/.vimrc and add the following line
      let g:airline_powerline_fonts = 1
      
  12. fzf - fuzzy search history of commands and files
    1. brew install fzf
    2. Add below lines in ~/.vimrc between plug#begin('~/.vim/plugged') and plug#end()
      " On-demand loading
      Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
      " Plugin outside ~/.vim/plugged with post-update hook
      Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
      
    3. Edit ~/.zshrc to add plugin in plugins=(git) as plugins=(git fzf)
    4. Edit ~/.zshrc add [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh if not exists
    5. Close reopen terminal and type ^r and it should show previous command fuzzy search
  13. tree - brew install tree for directory listing
  14. sdk - for installing and maintaining java versions - curl -s "https://get.sdkman.io" | bash
  15. pyenv - for installing and maintaining java versions - brew update; brew install pyenv
    1. Install python 3.8.5+
  16. kubectl curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
    1. Edit ~/.zshrc add kubectl to plugins=(git fzf) as plugins=(git fzf kubectl)
  17. fd - brew install fd
    1. Edit ~/.zshrc add below lines
    export FZF_DEFAULT_COMMAND='fd --type f'
    
  18. rg - brew install ripgrep
  19. git-fuzzy
    git clone https://github.com/bigH/git-fuzzy.git
    
    # add the executable to your path
    echo "export PATH=\"$(pwd)/git-fuzzy/bin:\$PATH\"" >> ~/.zshrc
    
  20. git shortcuts
    1. Copy files (functions.sh and key-binding.zsh) from https://gist.github.com/junegunn/8b572b8d4b5eddd8b85e5f4d40f17236 to ~/Scripts
    2. Edit ~/.zshrc add
    source ~/Scripts/functions.sh
    source ~/Scripts/key-binding.zsh 
    
    1. Usage - https://junegunn.kr/2016/07/fzf-git/
  21. Keepassxc
  22. Windows movement hotkeys
  23. Lepton - brew install --cask lepton
  24. Intellij
  25. Pycharm
  26. Docker Desktop
  27. Sublime Text3
  28. Kubectl aliases
  29. AWS cli v2
    1. Install : https://awscli.amazonaws.com/AWSCLIV2.pkg
    2. Add below
    sudo ln -s /folder/installed/aws-cli/aws /usr/local/bin/aws
    sudo ln -s /folder/installed/aws-cli/aws_completer /usr/local/bin/aws_completer
    
    1. Edit ~/.zshrc add aws to plugins=(git fzf kubectl) as plugins=(aws git fzf kubectl)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment