Memo
从零再开始,我的 MacOS 环境搭建
从零再开始,我的 MacOS 环境搭建 靠着我坚持不懈的蹲守,终于蹲到狗东国补,搞到了一台 Apple M4 芯片、32G 内存的 Mac mini。迫于硬盘容量只有 256G,而我之前的机器磁盘占用都超过了 256G,迁移助理无法比较完整地恢复,只好手动重来一轮,也算自己再严选一次软件了。 基础环境 Homebrew 开始的开始,就是安装一个软件包管理工具。我依然选择 Homebrew。...
从零再开始,我的 MacOS 环境搭建
靠着我坚持不懈的蹲守,终于蹲到狗东国补,搞到了一台 Apple M4 芯片、32G 内存的 Mac mini。迫于硬盘容量只有 256G,而我之前的机器磁盘占用都超过了 256G,迁移助理无法比较完整地恢复,只好手动重来一轮,也算自己再严选一次软件了。
基础环境
Homebrew
开始的开始,就是安装一个软件包管理工具。我依然选择 Homebrew。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
我常用的软件
感觉我应该重新挑选一下软件了:
- 截图工具:iShot Pro -> Longshot
两者都是付费买断的。 iShot Pro 在两年前确实好用,但是很长时间没有新功能更新了,原有功能也没有继续迭代。另外比较恶心的就是在菜单列出自家软件的广告,是时候放弃了。
Longshot 只支持新版本的系统,从这点也能猜出来它使用了新的系统 API,使用下来性能感觉会好些(只是感觉,没有太明显的差距)。标注功能和 OCR 比 iShot Pro 好用很多,我体验了十分钟就成为付费用户了,当前价格 ¥ 68。现在的遗憾就是没有贴图历史记录,不知道后续会不会加上。 - 状态栏管理:ice
功能够用,开源的免费软件。可以替代 Bartender 和 iBar。

- 系统状态监控:stats
够用,好看,免费,开源。

- 计算器:Qalculate
强大的计算器,能带单位计算,能换算单位、进制。
有 GUI,下图是在命令行使用。

- 终端模拟器:Warp 我对 Warp 感觉就是拥有最适合图形化界面的终端模拟器,命令行就像代码文本编辑器一样可以使用鼠标调整光标位置,在某些情况下可比用快捷键挪光标要快一些。缓冲区是按命令分块的,往回找之前的命令输出结果轻松很多,尤其是在每个命令输出了很多内容的时候。性能表现也挺不错的,虽然可能比不上原生应用,但是我没感觉到明显差距。至于 AI 功能,体验确实是一流的,不过付费价格有点高,免费用户的额度比较少,我就没开,也不太想依赖这个功能。
- 终端模拟器:Wave Terminal 这款终端模拟器,我用来连接性能不富余的远程服务器。每个服务器一个标签页,标签页内可以自由布局多个 terminal、files 等窗口,作为工作区很合适。最主要的还是他能直接用 GUI 编辑服务器上的文本,图一方便。性能不太行,内存占用也挺大的,但比 VS Code 来说,还算能接受。 是的,条件允许的情况下我会选择用 VS Code 的远程开发方式来连服务器进行操作,就是图方便,是真的方便。不过我遇到过 VS Code 有些扩展出现异常情况卡死服务器,所以也不太敢轻易使用。
brew install biome \ cloc \ cmake \ colima \ croc \ docker \ docker-buildx \ docker-compose \ fontforge \ fx \ git-filter-repo \ git-lfs \ gnu-tar \ gnupg \ go \ graphicsmagick \ htop \ imagemagick \ jq \ libpq \
终端相关
为了省事,我直接把我用的 ~/.zshrc 配置复制一份丢到新机子里。
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
start
export NVM_DIR="/Users/ivan/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
# nvm end
# pnpm
export PNPM_HOME="/Users/ivan/Library/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
# pnpm end
### Added by Zinit's installer
if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then
print -P "%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
command mkdir -p "$HOME/.local/share/zinit" && command chmod g-rwX "$HOME/.local/share/zinit"
command git clone https://github.com/zdharma-continuum/zinit "$HOME/.local/share/zinit/zinit.git" && \
print -P "%F{33} %F{34}Installation successful.%f%b" || \
print -P "%F{160} The clone has failed.%f%b"
fi
source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit
### End of Zinit's installer chunk
zinit load zsh-users/zsh-syntax-highlighting
zinit load zsh-users/zsh-autosuggestions
zinit load ael-code/zsh-colored-man-pages
export NVM_AUTO_USE=true
zinit load lukechilds/zsh-nvm
zinit ice depth=1; zinit light romkatv/powerlevel10k
zinit load sobolevn/wakatime-zsh-plugin
eval "$(zoxide init zsh)"
# History
HISTFILE=~/.zsh_history
HISTSIZE=100000
HISTFILESIZE=300000
SAVEHIST=10000
setopt INC_APPEND_HISTORY_TIME
setopt EXTENDED_HISTORY
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
export PATH="$(brew --prefix)/opt/python@3.11/libexec/bin:$PATH"
# Colima DockerPWM
export TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sock
export DOCKER_HOST="unix://${HOME}/.colima/default/docker.sock"
# Homebrew
HOMEBREW_AUTO_UPDATE_SECS=86400
ssh-add --apple-use-keychain ~/.ssh/id_ed25519 > /dev/null 2>&1
. "$HOME/.cargo/env"
# Java
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
# Android
export ANDROID_HOME=/Users/ivan/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH="/usr/local/opt/libpq/bin:$PATH"
export STM32_PRG_PATH=/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin
# bun completions
[ -s "/Users/ivan/.bun/_bun" ] && source "/Users/ivan/.bun/_bun"
export STM32CubeMX_PATH=/Applications/STMicroelectronics/STM32CubeMX.app/Contents/Resources
