My Mac Setup for Programming

in #programming7 years ago

keyboard-70506_640.jpg

Mac Setup for Programming

Everytime you setup a new computer for programming it can be a hassle to remember all the little settings and tweaks you've done to get a system running exactly how you like it.

This guide is a quick cheatsheet of the major modifications/tweaks/settings that I like to use for my own programming needs.

It's main use is to remind myself of tasks I should do on a new computer to minimize setup time, but it may be helpful to you to learn about the settings and tweaks I use for your own use.

MacOS Keyboard Repeat Speed Settings

  • Use Karabiner-Elements for key remapping on MacOS
  • Disable the freaking annoying character accent menu in OSX:
    • terminal --> defaults write -g ApplePressAndHoldEnabled -bool false ---> reboot to take effect
  • Speed up key repeat speed: defaults write NSGlobalDomain KeyRepeat -int 1
  • Speed up key initial repeat speed: defaults write NSGlobalDomain InitialKeyRepeat -int 10
  • Disable slow and sticky keys: in MacOS --> System Settings --> Accessibility --> Keyboard --> Disable Sticky & Slow Keys

Terminal Emulator Stuff

  • Install homebrew and homebrew cask, then use cask from now on for gui apps where possible
  • Install zshell and use it instead of bash. brew install zsh zsh-completions
  • Install oh-my-zsh, use the agnoster theme
  • Use powerline patched fonts: https://github.com/powerline/fonts
  • Set zsh as default shell on OSX: which zsh then chsh -s /bin/zsh, may need to reboot
  • Pro tip: changes made to the zsh runtime config file (~/.zshrc) can be applied by doing:
    • source ~/.zshrc without having to close/reopen the terminal (most of the time)

Hyper Terminal

  • Install hyper js terminal emulator: brew cask install hyper

And that's it! Easy as 1-2-3. This guide is likely to be updated as I change/modify my own workflow and configurations. Hopefully if you read this you are able to pick out 1 or 2 modifications that you could use to improve your own workflow.

If you have any tweaks/settings/configs you like to use that you think I could benefit from, please comment below!