我的 2023 年新 Mac 設定
原文由 Shawn Wang 于 發布,訂閱此部落格
今天我設定好了新的 MacBook Air(13 吋、2023 年 M2、16 GB 記憶體、1TB 硬碟)。以下是我在 Mac 上使用的所有工具。
這篇文章的舊版:2018-2020 年版 以及 2021 年版 和 2022 年版。如果未來我更新這篇文章,這些內容會被封存,但這個網址會維持不變。
曾在 Tomo 的日文 Podcast! 中介紹過
一路捲動到最底,就能看到朋友們整理的清單與其他 Mac 設定工具!
馬上要做的第一步
- 瀏覽器:下載 Arc Browser(透過 我的推薦連結 下載,我就能免費獲得 Arc 積分,對你沒有任何成本)(我也會用 Chrome、手機版 Safari,偶爾才用 Edge),並設為預設瀏覽器。
- 建立一個 Google Meet、分享螢幕、錄製螢幕(讓所有權限一次到位,之後就不用重啟瀏覽器了)。也可以透過 Discord 或 Zoom 的網頁版來做——只要發起通話、分享螢幕,把權限都跑過一遍就行
- 登入以下帳號:(這有助於後面其他服務的登入)
- Github(下方有更詳細的設定說明)
- Gmail
- 安裝 Warp(我現在慣用的終端機,適合用 AI 產生指令)
需要花點時間安裝的東西
先把這些跑起來,讓它們在背景執行
安裝 ZSH -
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"如果是 M1 Mac:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license來安裝 Rosetta2安裝 Homebrew -
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"然後
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/swyx/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"我在 brew list 裡還有一堆東西,但不確定哪些是真的常用。你可以批次安裝——把清單丟進 packages.txt 再執行 brew install $(cat packages.txt) 就好
autoconf fnm glib libtiff libyaml openssl@3 ripgrep
bat fontconfig go libuv little-cms2 pcre2 ruby
brotli freetype graphite2 libx11 lz4 pixman sqlite
ca-certificates fzf harfbuzz libxau lzo pkg-config xorgproto
cairo gdbm icu4c libxcb m4 pnpm xz
deno gettext jpeg-turbo libxdmcp mpdecimal pyenv yarn
diff-so-fancy gh libev libxext openjdk z pipx
docker giflib libpng libxrender [email protected] readline zstd- 如果在 M1 上安裝 brew 套件遇到問題,這篇 Stack Overflow 回答幫了我:
arch -x86_64 brew install YOUR_PACKAGE。到了 2023 年,我在 M2/macOS Ventura 上已經沒遇到這類問題了 - 其他可以試試的工具:
- 比 Homebrew 更快速/可重現的替代方案 - Nix -
sh <(curl -L https://nixos.org/nix/install) --daemon- 2023 年想嘗試的:Nix Flake - Johannes 推薦
上述任一種都會提示你安裝 Apple Command Line Tools——這東西下載要花 15 到 25 分鐘,所以先做這一步。不要同時執行兩個。
作業系統/瀏覽器設定
- 系統設定:
- 把 Spotlight 裡所有雜七雜八的搜尋項目都關掉,只留 App 和系統偏好設定
- 包含那個很煩的 Developer 選項
- (記得把 Xcode.app 放到 /Applications,而不是 /user/swyx/Applications)
- 包含那個很煩的 Developer 選項
- 關閉詢問 Siri
- 在鍵盤設定中關閉自動校正
- 設為大游標,簡報時比較好辨識(無障礙用途)
- 修正觸控板方向:觸控板 -> 捲動與縮放 - 關閉自然捲動
- 關閉辭典查詢:觸控板 -> 游標與點按 -> 關閉查詢與資料偵測器
- (如果用 Windows 鍵盤)重新對調 Alt 和 Cmd 鍵以符合人體工學
- 把 Spotlight 裡所有雜七雜八的搜尋項目都關掉,只留 App 和系統偏好設定
- Finder 設定:
- 設定 → 進階 -> 顯示所有檔案名稱的副檔名
- 執行搜尋時 -> 搜尋目前的資料夾
- 開啟顯示隱藏檔(只要在 Finder 視窗中按住 Cmd + Shift + .(點))
- 在底部顯示路徑列以方便導覽(顯示方式 -> 顯示路徑列)
- 精簡側邊欄過多的書籤
- 建立「Work」資料夾並釘選起來
- 設定 -> 一般 - 新增 Finder 視窗顯示 -> Work
- 設定 → 進階 -> 顯示所有檔案名稱的副檔名
- 鍵盤:
- 把 Command+Q 重新對應到其他任何按鍵——避免不小心全部關掉
- 快速鍵:將所選範圍的畫面拷貝為圖片到剪貼簿 -> Cmd+E
- 語音鍵盤——目前使用 Wispr AI,不過 SuperWhisper 評價也很好。
- macOS Dock:
- 把 Dock 上除了 Finder、系統偏好設定和垃圾桶以外的東西全部移除
- 開啟 Dock 自動隱藏
- macOS 選單列也一起開啟
- Chrome 擴充功能:(綁定 Chrome 帳號)
我使用的完整擴充功能清單如下:
aapocclcgogkmnckokdopfmhonfmgoek : Slides : version 0_10
ahfgeienlihckogmohjhadlkjgocpleb : Web Store : version 0_2
amoldiondpmjdnllknhklocndiibkcoe : Twemex: Sidebar for Twitter : version 0_4_4
aohghmighlieiainnegkcijnfilokake : Docs : version 0_10
apdfllckaahabafndbhieahigkjlhalf : Google Drive : version 14_5
bekmjjakgojplnhahcilegeiklenjbgb : Glow : version 1_0
blpcfgokakmgnkcojhhkbfbldkacnbeo : YouTube : version 4_2_8
bmnlcjabgnpnenekpadlanbbkooimhnj : Honey: Automatic Coupons & Cash Back : version 14_11_0
cfldfgibklhmjhnkfighkbafbkbfcmij : Builder : version 1_0_0
cjpalhdlnbpafiamejdnhcphjbkeiagm : uBlock Origin : version 1_42_4
ckolcbmkjpjmangdbmnkpjigpkddpogn : Svelte Devtools : version 1_3_0
dkhfpnphbcckigklfkaemnjdmghhcaoh : netlify-browser-extension : version 1_3_0
fcgckldmmjdbpdejkclmfnnnehhocbfp : Google Finance : version 1_3
felcaaldnbdncclmgdcncolpebgiejap : Sheets : version 1_2
fmkadmapgofadopljbjfkapdkoienihi : React Developer Tools : version 4_24_6
fpnmgdkabkmnadcjpehmlllkndpkmiak : Wayback Machine : version 3_1
geancnifhbkbjijfkcjjdnfemppmcjmk : Hacker News : version 3_21_0
gfdkimpbcpahaombhbimeihdjnejgicl : Feedback : version 1_0
ghbmnnjooekpmoecnnnilnnbdlolhkhi : Google Docs Offline : version 1_42_0
gieabiemggnpnminflinemaickipbebg : CSS Scan : version 3_8_1
hbdpomandigafcibbmofojjchbcdagbl : TweetDeck by Twitter : version 3_10
hdokiejnpimakedhajhdlcegeplioahd : LastPass: Free Password Manager : version 4_95_0_3
hjgngigpjehgifcepdhlnnikibmgeflc : Upnext - Save it for later! : version 4_2_0
hlepfoohegkhhmjieoechaddaejaokhf : Refined GitHub : version 22_5_22
kljjoeapehcmaphfcjkmbhkinoaopdnd : HyperWrite : version 2_0_29
kmendfapggjehodndflmmgagdbamhnfd : CryptoTokenExtension : version 0_9_74
liecbddmkiiihnedobmlmillhodjkdmb : Loom – Free Screen Recorder & Screen Capture : version 5_3_2
mhjfbmdgcfjbbpaeojofohoefgiehjai : Chrome PDF Viewer : version 1
mjdepdfccjgcndkmemponafgioodelna : DF Tube (Distraction Free for YouTube™) : version 1_13_504
neajdppkdcdipfabeoofebfddakdcjhd : Google Network Speech : version 1_0
nffaoalbilbmmfgbnbgppjihopabppdk : Video Speed Controller : version 0_7_1
nkeimhogjdpnpccoofpliimaahmaaome : Google Hangouts : version 1_3_18
nmmhkkegccagdldgiimedpiccmgmieda : Chrome Web Store Payments : version 1_0_0_6
oiaejidbmkiecgbjeifoejpgmdaleoha : Stylebot : version 3_1
pachckjkecffpdphbpmfolblodfkgbhl : vidIQ Vision for YouTube : version 3_73_2
pbgbbbfhjccnnkplhfcmhdcpmcfmpfoi : toast.log : version 2_3
pjkljhegncpnkpknbcohdijeoejaedia : Gmail : version 8_3
poahndpaaanbpbeafbkploiobpiiieko : Display #Anchors : version 1_4設定終端機
- 下載、安裝並設定字型 - Inconsolata for Powerline 和 Meslo LG M for Powerline
- autosuggestions:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions - syntax highlighting
- 如果遇到警告,你可能需要 chmod 一些東西,否則每次開啟 session 都會顯示警告
$ sudo chmod -R 755 /usr/local/share/zsh $ sudo chown -R root:staff /usr/local/share/zsh
- autosuggestions:
- 複製我的 dotfiles(vimrc、zshrc、.gitignore_global):https://gist.github.com/swyxio/7fa1009e460ecb818d5e6d9ca4616a05 - 執行
source ~/.zshrc來載入 zshrc- 註:這裡有不錯的 dotfiles 指南 https://dotfiles.github.io/tutorials/,我還沒讀過
- 註:gitconfig 指南在這裡 https://news.ycombinator.com/item?id=43170015
- 正在嘗試 https://github.com/romkatv/powerlevel10k
- 你上面已經安裝了 ZSH,現在來設定其他部分
git config --global init.defaultBranch maingit config --global user.name "swyxio"agit config --global user.email YOUR@EMAIL>HERE- 一旦你安裝了
diff-so-fancy- 設定
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"- 這會讓 git diff 好看很多 - 你也可以用這個 bash 函式來 diff
dif() { git diff --color --no-index "$1" "$2" | diff-so-fancy; }或用 VS Codecode --diff file1.js file2.js。 - 你也可以試試 https://github.com/dandavison/delta
- 設定
- 從 dotfiles 自訂
/.oh-my-zsh/themes/agnoster主題 - 設定 Warp 的字型:https://warp.dev/
- 我真正需要改的設定只有把字型設為「Inconsolata for Powerline」——就是上面下載的那個。
關於 Hyper 終端機的推薦,請參考去年的版本。
設定應用程式/開發環境
你應該已經照上面的步驟用 Homebrew 安裝了一堆東西。下面我會列出其他你可能會想用的工具:
- Github CLI:
brew install github/gh/gh- 你需要登入 git——如果有開啟 2FA,就不能用一般的 GitHub 密碼。試著 push 到任何一個隨便的 repo,然後用 Personal Access Token 當作密碼輸入。
- 接著執行
gh auth login - 新增 GitHub SSH 金鑰(必填)
- 你應該已經透過 brew 安裝好
pyenv了。現在執行pyenv install 3來取得最新的 Python 3。接著git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv並執行pyenv global 3來啟用剛安裝的版本。- 新推薦:Astral 推出的
uv正夯。它可以取代 pip、virtualenv、pyenv、poetry 等工具。還很新,我個人經驗不多,打算下次試試。pip install uv,之後把原本的pip install改成用uv pip install,或用uv venv取代virtualenv或python -m venv。速度快很多,也能和其他工具互換……但對於舊專案,可能還是會有輕微的相依解析問題。 - pyenv virtualenv 需要一些 zshrc 設定,否則會出現
Failed to activate virtualenv. Perhaps pyenv-virtualenv has not been loaded into your shell properly.錯誤,我是用這個方法修好的。 - 安裝 PyTorch:
pip3 install torch torchvision
- 新推薦:Astral 推出的
- 使用 Node.js/NPM 來設定——你應該已經透過上面的 Homebrew 安裝好了 fnm(比 nvm 更快的替代方案),所以不需要另外下載。
fnm install 18來安裝 Nodenpm login- 據說執行
arch -x86_64 zsh可以避免奇怪的 dotenv 錯誤,但對我沒用(只是在 swyxkit 上執行 npm i) - 接著
fnm install 16 npm loginnpm config set loglevel="warn"sudo npm install netlify-cli -g然後netlify loginnpm i -g sign-bunny fortune-node parrotsay一些有趣的小型 CLI 工具npm i -g undollar用來移除 $npm install -g npm-check-updates用來更新相依套件sudo npm install -g trash-cli來新增trash指令,這樣就不會永久刪除檔案
brew install yarn --ignore-dependencies- yarn 備註- 你可能需要針對 Mac OS Sierra 的處理方式
brew install z- 並不是開箱即用——請看我在 rupa/z repo 上的 issue——Homebrew 改變了 z.sh 腳本的預設安裝路徑,所以要確認你的 zshrc 指向正確的新路徑 -. /opt/homebrew/etc/profile.d/z.sh在你的 zshrc 中- 可參考 HN 上對 rupa/z 的評論,以及一些替代方案。
- 雜項——以前會裝、現在可能不需要的東西
pip3 install --user powerline-status- 到一個乾淨的資料夾執行
git clone <https://github.com/powerline/fonts> && cd fonts && ./install.sh - Anaconda Python 發行版——小心,它常常會在未經詢問的情況下修改你的 bash 提示字元
關於其他已經用 brew 安裝的東西的備註
- `brew install java` - you could download [Java Development Kit](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html) from Oracle but fuck them for putting it behind signup wall
- `brew install go` you may need to `export PATH=$PATH:/usr/local/go/bin`安裝應用程式
安裝
smol menubar——我為聊天 App 做的工具!:https://github.com/smol-ai/menubar我討厭 Docker Desktop,所以我不用它來跑「docker」
- 透過 brew 安裝了 https://github.com/abiosoft/colima/ 以及
sudo curl -L https://github.com/docker/compose/releases/download/v2.5.1/docker-compose-darwin-aarch64 -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
brew install --cask notunes——這樣就不會自動啟動 iTunes/Apple Music- VLC:https://www.videolan.org/vlc/download-macosx.html
- 你還需要把音樂檔的預設播放器重新指派給 QuickTime 或 VLC——一般的「永遠以此方式開啟」通常沒用,你得這樣做:
Select any MP3 file, Press "Command+i", Change "Open with:" to VLC, Click the "Change All…" button. Tada.
下載 Audacity——並為 Audacity 安裝 ffmpeg——官方說明寫得故意很模糊——只要去 https://lame.buanzo.org/#lameosx64bitdl 下載並執行 pkg 檔——Audacity 就會自動偵測到
表情符號:我以前用 https://matthewpalmer.net/rocket/,但現在就直接用 Mac 內建的表情符號選擇器(按 Fn 鍵)
隱私小工具:Pure Paste 來自 Sindre Sorhus
密碼管理器:公司用 1Password,私人用 LastPass
視窗管理工具:https://rectangleapp.com/(跟 Spectacle/Magnet 有點淵源,但基本上是一樣的東西。2024 年:可以試試 https://github.com/MrKai77/Loop 開源版本)
截圖工具:https://shottr.cc/(Shottr 有 OCR 功能,不過你可能也會喜歡專門的 OCR 工具)
剪貼簿管理器:我現在就直接用 Alfred 內建的,因為之前買了終身升級版。搜尋和圖片支援都不錯,還能加入片段。
- 延伸探索:Clipbook
App Quitter:https://swiftquit.com/(當視窗關閉時自動關閉 Mac 應用程式)
- 建立會議、分享螢幕、錄製螢幕
Caffeine(讓 Mac 在演講時保持喚醒):https://intelliscapesolutions.com/apps/caffeine
- 維護中的版本:Amphetamine(感謝 Matt Mischuk!)
QuickShade(用 Mac App 控制螢幕亮度)
NoTunes - 停用 iTunes/Apple Music
以下是我現在比較少用、但有需要時會再拿出來的東西 - 影片擷取:https://getkap.co/ -(試用中……但還沒真的常用)Cron 行事曆 App https://cron.com/download/macos - 螢幕錄製產品導覽:https://www.screen.studio/ - 影像編輯:想試試 https://www.pixelmator.com/pro/ - 雙螢幕:https://www.duetdisplay.com/ - GIF:Licecap - OBS:https://obsproject.com/ - 逐字稿:https://www.descript.com/download/mac - SkyFonts:[https://www.fonts.com/web-fonts/google]
- 磁碟空間:Disk Inventory X - 你可以用這個 bash 指令清理 node_modules,或設成 cronjob(https://www.fonts.com/web-fonts/google)
筆記工具:- Obsidian 並照我在 Obsidian 作為第二大腦 這篇文章中提到的方式設定 - Microsoft Todo:https://apps.apple.com/app/apple-store/id1274495053?mt=8 - SimpleNote:https://apps.apple.com/us/app/simplenote/id692867256?ls=1&mt=12 - Notion:https://www.notion.so/desktop - https://chrome.google.com/webstore/detail/notion-web-clipper/knheggckgoiihginacbkhaalnibhilkk?hl=en
Stretchly:https://hovancik.net/stretchly/
Replay:下載
應用程式搜尋/工具:https://www.alfredapp.com/
- 設為 Alfred Dark
- 隔空投送到 iPhone/iPad
- Cupcake Ipsum
編輯器:下載 VS Code(我以前用 Insiders 版,但彈跳視窗超煩)。使用 Settings Sync 在不同機器間同步
- 得設定 Powerline 字型「Meslo LG M for Powerline」(下載)
- auto-close-tag v0.5.6
- auto-rename-tag v0.0.15
- Bookmarks v9.1.0
- code-settings-sync v3.1.2
- debugger-for-chrome v4.10.2
- es7-react-js-snippets v1.8.7
- graphql-for-vscode v1.12.1
- mdx v0.1.0
- prettier-vscode v1.6.1
- python v2018.9.2
- python v0.2.3
- rainbow-brackets v0.0.6 - 這現在已被棄用,請改用原生
"editor.bracketPairColorization.enabled": true - shades-of-purple v3.17.0
- vscode-graphql v0.1.5
- vscode-import-cost v2.9.0
- vscode-styled-components v0.0.23
- vscode-wakatime v1.2.3
- TabNine AI 自動完成
- GitHub Copilot
- 想試試:File Utils - Stolinski 推薦
- 以下是你可以從命令列執行的完整清單
code --install-extension ahmadawais.shades-of-purple code --install-extension austenc.tailwind-docs code --install-extension bradlc.vscode-tailwindcss code --install-extension cpylua.language-postcss code --install-extension dbaeumer.vscode-eslint code --install-extension dsznajder.es7-react-js-snippets code --install-extension esbenp.prettier-vscode code --install-extension formulahendry.auto-close-tag code --install-extension formulahendry.auto-rename-tag code --install-extension GitHub.copilot code --install-extension golang.go code --install-extension hashicorp.terraform code --install-extension heybourn.headwind code --install-extension kgscott.retreon code --install-extension kumar-harsh.graphql-for-vscode code --install-extension ms-python.python code --install-extension ms-toolsai.jupyter code --install-extension ms-toolsai.jupyter-keymap code --install-extension ms-toolsai.jupyter-renderers code --install-extension ms-vscode-remote.remote-containers code --install-extension msjsdiag.debugger-for-chrome code --install-extension NickScialli.svelte-dark code --install-extension octref.vetur code --install-extension oderwat.indent-rainbow code --install-extension redhat.java code --install-extension rust-lang.rust code --install-extension rust-lang.rust-analyzer code --install-extension sdras.night-owl code --install-extension silvenon.mdx code --install-extension svelte.svelte-vscode code --install-extension TabNine.tabnine-vscode code --install-extension ThreadHeap.serverless-ide-vscode code --install-extension tht13.python code --install-extension vadimcn.vscode-lldb code --install-extension VisualStudioExptTeam.vscodeintellicode code --install-extension vscjava.vscode-java-debug code --install-extension vscjava.vscode-java-dependency code --install-extension vscjava.vscode-java-pack code --install-extension vscjava.vscode-java-test code --install-extension vscjava.vscode-maven code --install-extension WakaTime.vscode-wakatime code --install-extension wix.vscode-import-cost code --install-extension zxh404.vscode-proto3Screenflow 9 下載
- 考慮改用 Davinci Resolve
其他不錯的「新筆電設定」清單:
- Christoph Nakazawa 的設定:第一部分、第二部分
- Robin Wieruch 的設定
- Mina Markham 的自動化 Mac 設定
- Tania Rascia 的設定
- Nick Nisi 的 dotfiles
- Mathias Bynens 的 macOS 預設值
- Jamon 的 macOS 維護技巧
- VMware Tanzu 內部腳本:https://github.com/pivotal/workstation-setup
- Vendasta:https://github.com/vendasta/setup-new-computer-script
- 你可以用 Sheldon Hull 的工具自動化 dotfiles/Homebrew 設定
- 來自知名人士的實體設備配置:https://setups.co/
- Evan Hahn 的《十年 dotfiles》
- 也歡迎把你的清單傳給我!
thanks [for Daniel Kehoe's mac setup](https://mac.install.guide/mac-setup/)
隨機一篇部落格
留言
登入後參與討論