macbook-pro

Introduction

I got a macbook pro M1 Max 14 inch on January 1, 2023 as part of my new faculty position at the Ohio State University. I was upgrading from a 2018 macbook pro from my previous position. That one had the infamous butterfly keyboard which was unusable by the time I stopped using it. This is a writeup of how I’ve setup the new macbook and what I like / dislike about it.

Specs

Model Name:	MacBook Pro
Model Identifier:	MacBookPro18,4
Chip:	Apple M1 Max
Total Number of Cores:	10 (8 performance and 2 efficiency)
Memory:	64 GB
  Type:	LPDDR5
System Firmware Version:	7459.141.1
OS Loader Version:	7459.141.1

Free:	1.74 TB (1,743,555,956,736 bytes)
Capacity:	2 TB (1,995,218,165,760 bytes)

Physical Drive:
  Device Name:	APPLE SSD AP2048R
  Media Name:	AppleAPFSMedia
  Medium Type:	SSD
  Protocol:	Apple Fabric
  Internal:	Yes
  Partition Map Type:	Unknown
  S.M.A.R.T. Status:	Verified

Chipset Model:	Apple M1 Max
  Type:	GPU
  Bus:	Built-In
  Total Number of Cores:	24
  Vendor:	Apple (0x106b)
  Metal Family:	Supported, Metal GPUFamily Apple 7
  Displays:
Color LCD:
  Display Type:	Built-in Liquid Retina XDR Display
  Resolution:	3024 x 1964 Retina

Form Factor

I was comming from the larger 15 inch macbook pro size. I am much happier with the smaller size despite the fact that I dont have any external monitors yet. The screen still feels pretty roomy and the look

Keyboard & Trackpad

The keyboard is so much better

  • Key travel and feel is much better than the old butterfly mechanism
  • Having a physical escape key!
  • No touch bar is better. Even though I paid at one point for BettterTouchTools I never liked or used the touchbar. On my previous laptop it often froze and would become unresponsive until after a reboot.
  • Fingerprint reader is great and makes password entry a breeze.
  • Trackad is as good as always.

Setup

Applications

After about 1 month of using the laptop daily this is what I have installed:

  • Docker
  • Dropbox
  • OneDrive
  • LaTeXiT
  • Affinity Designer (personal choice)
  • Adobe Photoshop & Illustrator (free through OSU)
  • Adobe Acrobat Pro (free through OSU) - but it doesnt work and online formums seem to show no support from Adobe.
  • Alfred - TODO buy powerpack
  • Dato - a better menubar calendar
  • Maccy - clipboard manager
  • VS Code
  • Sublime Text 4 - I purchased a while ago. It is still so much faster, especially for large files
  • KeeWeb - Password manager
  • Bitwarden - Password manager
  • Good Notes - Along with my iPad
  • Things - I bought this in an attempt to improve my organization
  • Zotero
  • Obsidian - for notes
  • Microsoft products (email & teams used by department)
  • Rectangle - window management
  • iTerm2
  • DiffusionBee
  • Espanso
  • Blender
  • Sim Daltonism - check colorblind on plots etc.

Terminal

Shell

I use the zsh with oh-my-zsh and the powerlevel10k theme

  • bat
  • exa
  • fzf
  • espanso (homebrew cask)
  • mactex (homebrew cask)
  • root (research)
  • python via conda

My .zshrc is not too complicated. A few additons:

# make file autocompletions!
zstyle ':completion:*:*:make:*' tag-order 'targets'
autoload -U compinit && compinit

alias fz="fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}'"

vim setup

I am using Vundle for plugin management

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

To install plugins listed in .vimrc

vim +PluginInstall +qall

OR to cleanup unused

vim +PluginClean +qall
set nocompatible              " be iMproved, required"
filetype off                  " required"

" set the runtime path to include Vundle and initialize"
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" Let Vundle manage Vundle"
Plugin 'VundleVim/Vundle.vim'
Plugin 'sheerun/vim-polyglot'
Plugin 'kristijanhusak/vim-hybrid-material'
Plugin 'preservim/nerdtree'
Plugin 'derekwyatt/vim-fswitch' " Switch between header and source "
Plugin 'tpope/vim-fugitive'
call vundle#end()            " required "
filetype plugin indent on    " required "

 " ROOT C macros "
autocmd BufNewFile,BufRead *.C set syntax=cpp

filetype plugin on
syntax on
" Color scheme "
set background=dark
let g:enable_bold_font = 1
let g:enable_italic_font = 0
" let g:hybrid_transparent_background = 1 "
colorscheme hybrid_material

set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4   " number of spaces in tab when editing "
set number              " show line numbers"

set cursorline          " highlight current line"

set wildmenu            " visual autocomplete for command menu"
set showmatch           " highlight matching [{()}]"

set incsearch           " search as characters are entered"
set hlsearch            " highlight matches"

set splitbelow         " Always split below"
set mouse=a            " Enable mouse drag on window splits"


if (has("nvim"))
  "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 >"
  let $NVIM_TUI_ENABLE_TRUE_COLOR=1
endif

"For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 >"
"Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd >"
" < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 >"
if (has("termguicolors"))
  set termguicolors
endif

" NERDTree options"
let NERDTreeShowBookmarks = 1   " Show the bookmarks table"
let NERDTreeShowHidden = 1      " Show hidden files"
let NERDTreeShowLineNumbers = 0 " Hide line numbers"
let NERDTreeMinimalMenu = 1     " Use the minimal menu (m)"
let NERDTreeWinPos = "left"     " Panel opens on the left side"
let NERDTreeWinSize = 31        " Set panel width to 31 columns"

nmap <F2> :NERDTreeToggle<CR>

" fswitch"
au! BufEnter *.cpp let b:fswitchdst = 'hpp,h'
au! BufEnter *.h let b:fswitchdst = 'cpp,c,cxx'

nmap <C-Z> :vsplit <bar> :wincmd l <bar> :FSRight<CR>

" gitgutter"
set updatetime=100

" folding"

set foldmethod=indent
set foldnestmax=10
set nofoldenable
set foldlevel=2