这篇文章记录下,一个新的 macOS 需要做的配置,和安装的软件。
使用 Colemak 键盘布局,它比传统 QWERTY 更高效、合理。
在 System Settings - Keyboard - Input Sources - Edit… 中添加 Colemak 以替换 ABC,重新登入系统布局生效。
# 修改 accent color
defaults write -g AppleAccentColor -int 6
# 启用系统 UI 按键控制
defaults write -g AppleKeyboardUIMode -int 3
# 系统软件使用 Tab,而非独立 Window
defaults write -g AppleWindowTabbingMode -string always
# 禁止“Are you sure you want to open this application?”提示
defaults write com.apple.LaunchServices LSQuarantine -bool false
# 开启“Close windows when quitting an app”
defaults write -g NSQuitAlwaysKeepsWindows -bool false
# 禁用 crash reporter
defaults write com.apple.CrashReporter DialogType -string none
# 进入睡眠或屏保,立即密码锁定
# defaults write com.apple.screensaver askForPassword -bool true
# defaults write com.apple.screensaver askForPasswordDelay -bool false
# 禁止磁盘映像验证
defaults write com.apple.frameworks.diskimages skip-verify -bool true
defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true
defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true
# 不在 Desktop 显示外部磁盘、可移动介质
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool false
########### Mouse、Keyboard、Touchbar
# 支持按住重复,并调整重复频率
defaults write -g ApplePressAndHoldEnabled -bool false
defaults write -g InitialKeyRepeat -int 10 # normal minimum is 15 (225 ms)
defaults write -g KeyRepeat -int 1 # normal minimum is 2 (30 ms)
# 加大光标大小,加快光标移动速度
defaults write -g com.apple.mouse.scaling -float 3.0
defaults write com.apple.universalaccess mouseDriverCursorSize -float 1.5
# 禁止鼠标自然模式滚动,Magic Mouse 时不用改
defaults write -g com.apple.swipescrolldirection -bool false
# 禁用输入时的自动 quotes、dashes 转换
defaults write -g NSAutomaticQuoteSubstitutionEnabled -bool false
defaults write -g NSAutomaticDashSubstitutionEnabled -bool false
# 禁止在 double space 时添加句点
defaults write -g NSAutomaticPeriodSubstitutionEnabled -bool false
# 禁止输入时自动将 word 首字母大写
defaults write -g NSAutomaticCapitalizationEnabled -bool false
# Touchbar 使用轻触代替按下
defaults write com.apple.AppleMultitouchTrackpad Clicking -bool false
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool false
########### Dock、Menubar
# 自动隐藏 Dock、Menubar,充分利用空间
defaults write com.apple.dock autohide -bool true
defaults write -g _HIHideMenuBar -bool true
# 取消 Dock 默认显示的“最近打开应用”
defaults write com.apple.dock show-recents -bool false
# 调整 Dock 图标大小
defaults write com.apple.dock tilesize -int 58
# 禁止 App 开启时在 Dock 弹跳
defaults write com.apple.dock no-bouncing -bool true
# 隐藏 Dock 图标 indicator lights
defaults write com.apple.dock show-process-indicators -bool false
# 隐藏 App 的图标半透明
defaults write com.apple.dock showhidden -bool true
# Unpin 全部 App
defaults write com.apple.dock persistent-apps -array ""
########### Finder
# 显示所有扩展名,显示隐藏文件
defaults write -g AppleShowAllExtensions -bool true
defaults write com.apple.finder AppleShowAllFiles -bool true
# 禁用修改扩展名时的警告
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
# 显示底部地址栏
defaults write com.apple.finder ShowPathbar -bool true
# 所有目录默认多列布局
defaults write com.apple.finder FXPreferredViewStyle -string clmv
# 按文件名排序时,优先显示目录
defaults write com.apple.finder _FXSortFoldersFirst -bool true
# 默认搜索范围,改为当前目录
defaults write com.apple.finder FXDefaultSearchScope -string SCcf
# 设置 Finder 打开时默认位置为 $HOME
defaults write com.apple.finder NewWindowTarget -string PfHm
defaults write com.apple.finder NewWindowTargetPath -string "file://$HOME/"
# 允许选择 Quick Look 中的文本
defaults write com.apple.finder QLEnableTextSelection -bool true
# 保存窗口默认展开,不再多点一次小三角
defaults write -g NSNavPanelExpandedStateForSaveMode -bool true
defaults write -g NSNavPanelExpandedStateForSaveMode2 -bool true
# network volumes 禁止创建 .DS_Store
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
# 文件详情中,展示 MetaData,不展示 Preview
defaults write com.apple.finder FXInfoPanesExpanded -dict MetaData -bool true Preview -bool false
########### Apps
# 修改 screenshot 默认文件名
defaults write com.apple.screencapture name -string screenshot
defaults write com.apple.screencapture include-date -bool false
# 开启 Safari debug 相关功能
defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
defaults write com.apple.Safari IncludeDevelopMenu -bool true
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true
# Activity Monitor 显示所有进程,并按 CPU usage 排序
defaults write com.apple.ActivityMonitor ShowCategory -bool false
defaults write com.apple.ActivityMonitor SortColumn -string CPUUsage
defaults write com.apple.ActivityMonitor SortDirection -bool false
上面执行完,注销重新登入即可生效,或 killall Dock
、killall Finder
。最后允许打开任何来源的应用:
sudo spctl --master-disable
# 20 分钟进入睡眠
sudo pmset -a sleep 20
# 30 分钟硬盘睡眠
sudo pmset -a disksleep 30
# 10 分钟屏幕睡眠
sudo pmset -a displaysleep 10
# 禁止网络唤醒
sudo pmset -a womp 0
# 禁止接通 AC 时唤醒
sudo pmset -a acwake 0
# 禁止被同网络、同 iCloud 其它设备唤醒
sudo pmset -a proximitywake 0
# 睡眠时不保持网络连接,Find My Mac 等服务会因此失效
sudo pmset -a tcpkeepalive 0
# 禁止 asleep 时执行更新、备份等任务
sudo pmset -a powernap 0
# 进入睡眠时,有“全亮-半亮-关闭”的屏幕过渡
sudo pmset -a halfdim 1
# 将内存数据同步到硬盘,一段时间后停止内存供电
sudo pmset -a hibernatemode 3
# battery 时自动切换 GPU,charger 时使用独立 GPU
sudo pmset -b gpuswitch 2
sudo pmset -c gpuswitch 1
# sleep 一段时间后自动 hibernate
sudo pmset -a standby 1
# 高电量(> highstandbythreshold),2 小时 hibernate
sudo pmset -a standbydelayhigh 7200
# 低电量(< highstandbythreshold),1 小时 hibernate
sudo pmset -a standbydelaylow 3600
# highstandbythreshold 默认为 50%
设置完后,第一件事是安装 Xcode Command Line Tools:
xcode-select --install
安装后,git
就可以使用了。以防万一,这里再记一个 reinstall 方法:
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
系统所有 App 都使用 Homebrew 管理,安装它:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
对于上架 Mac App Store 的 App,通过 mas 优先从 Store 下载。用 brew 安装它:
brew install mas
这样所有 App 的自动检查更新都可以关掉,然后将下面 script 加到 crontab 里即可实现定时自动更新:
brew update
brew upgrade --greedy-auto-updates
brew cleanup --prune=all
mas upgrade
浏览器
brew install --cask google-chrome
brew install --cask firefox
brew install --cask microsoft-edge
brew tap homebrew/cask-versions
brew install --cask google-chrome-canary
安心冲浪
brew install --cask adguard
密码管理
brew install --cask 1password
编程语言
brew install go
brew install node pnpm
brew install python
brew install lua luarocks
brew install php composer
brew install --cask temurin
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Bun
brew tap oven-sh/bun
brew install bun
终端工具
brew install --cask kitty
brew install coreutils
brew install tmux neovim
brew install exa zoxide fzf ripgrep bat gnu-sed tldr tig dust btop fd tree hyperfine
brew install unar sevenzip rar
brew install wget nali dog httpie nmap telnet
brew install jless jq jc duti
brew install starship
brew install ffmpeg exiftool
#brew install subversion
brew install upx brotli
composer g require psy/psysh # interactive shell for php
UI 工具
brew install --cask alfred
brew install --cask spotify
brew install --cask mpv
brew install --cask iina
brew install --cask maczip
brew install --cask parallels
brew install --cask aerial # screen saver
brew install --cask bettermouse
brew install --cask bartender
mas install 441258766 # Magnet
mas install 1452523807 # Text Scanner
#mas install 1453504509 # Dynamic Wallpaper Engine
开发工具
brew install --cask visual-studio-code
brew install --cask datagrip
brew install --cask fork
brew install --cask sequel-ace
brew install --cask navicat-premium
brew install --cask orbstack
brew install --cask transmit
brew install --cask postman
brew install --cask coderunner
brew install --cask dash
brew install --cask wireshark
#brew install --cask charles
brew install --cask proxyman
brew install --cask beyond-compare
brew install --cask imhex
开发工具(偶尔用一次)
brew install --cask paw
brew install --cask altair-graphql-client
brew install --cask another-redis-desktop-manager
mas install 1296084683 # Cleaner for Xcode
即时通讯
brew install --cask telegram
brew install --cask discord
brew install --cask element
#brew install --cask lark
mas install 451108668 # QQ
mas install 836500024 # WeChat
#mas install 1435447041 # DingTalk
下载工具
brew install aria2
brew install --cask downie
阅读写作
brew install hugo
brew install --cask notion
brew install --cask raindropio
brew install --cask calibre
brew install --cask koodo-reader
mas install 1529448980 # Reeder 5
图片视频
brew install graphviz
brew install --cask snipaste
brew install --cask kap
brew install --cask omnigraffle
brew install --cask screenflow
brew install --cask obs
brew install --cask sip
brew install --cask sf-symbols
文件同步
mas install 823766827 # OneDrive
常用字体
brew tap homebrew/cask-fonts # You only need to do this once!
brew install --cask font-sf-mono
brew install --cask font-fira-code
brew install --cask font-roboto-mono
brew install --cask font-dejavu-sans-mono
brew install --cask font-symbols-only-nerd-font
不见得用
mas install 1295203466 # Microsoft Remote Desktop
mas install 824183456 # Affinity Photo
mas install 966085870 # TickTick
brew install --cask qt-creator
brew install --cask baidunetdisk
brew install --cask wechatwebdevtools
SSH Key 全部由 1Password 管理。修改 ~/.ssh/config
文件:
Host *
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
然后配置 Git 鉴权、签名,修改 ~/.gitconfig
文件:
[core]
editor = nvim
[user]
name = 33
email = 33@gmail.com
signingkey = ssh-ed25519 AAAAC3N...
[gpg]
format = ssh
[gpg "ssh"]
program = /Applications/1Password.app/Contents/MacOS/op-ssh-sign
[commit]
gpgsign = true
[push]
default = current
autoSetupRemote = true
duti -s com.microsoft.VSCode .txt all
duti -s com.microsoft.VSCode .ass all
duti -s io.mpv .mkv all
duti -s com.colliderli.iina .mp4 all
多年使用 iTerm2,短暂斡旋 Alacritty 后,亦然转向了 Kitty – 它同时具备 Alacritty 的性能、iTerm2 的功能,希望这是我的最后一款终端模拟器。安装它:
将 配置文件 克隆到 ~/.config/kitty
即可完成配置,其中包含:
使用 Catppuccin(😸 猫布奇) 配色
使用 SF Mono, Regular, 16pt
字体,Symbols Nerd Font
符号字体
使用 Colemak 的 ueni
四组按键作为上下左右:
Alt-u
、Alt-e
快速上下滚动Cmd-{ueni}
窗口间跳转,Cmd-Ctrl-{ueni}
上下左右分屏Cmd-Alt-{ueni}
调换单个窗口位置,Cmd-Shift-{ueni}
调整单个窗口大小Cmd-/
、Cmd-Shift-/
快速滚动到上、下一条命令的位置,Cmd-Alt-/
只显示最后一条命令输出
Cmd-Enter
创建新 Tab,Cmd-[
、Cmd-]
前后切换 Tab,Cmd-Alt-[
、Cmd-Alt-]
前后移动 Tab
Cmd-w
关闭单个窗口,Cmd-Shift-w
关闭所有窗口(单个 Tab)
Cmd-r
清屏,Cmd-f
搜索,Cmd-Shift-f
最大化终端(非全屏)
Cmd-o
打开链接、Cmd-q
、Cmd-l
、Cmd-p
快速选择单字、行、路径
Neovim 集成:上面窗口管理相关操作同样适用 Neovim,无缝衔接
……
多年使用 Fish shell 后,换到了 Zsh without Oh My Zsh。Fish 的开箱即用是卖点;可定制性差、Bash incompatible 是槽点。
使用以下命令安装,并设置为默认 Shell:
brew install zsh
echo /opt/homebrew/bin/zsh | sudo tee -a /etc/shells
chsh -s /opt/homebrew/bin/zsh
# For Intel
# echo /usr/local/bin/zsh | sudo tee -a /etc/shells
# chsh -s /usr/local/bin/zsh
之后将 配置文件 克隆到 ~/.config/zsh
即可配置完成。其中包含:
ueni
为各模式上下左右相关导航键,如候选菜单导航,Vi mode 光标移动,Ctrl-{ni}
行首、尾移动输入法使用开源的 Squirrel,安装它:
brew install --cask squirrel
安装后在 System Settings 删除所有 Input Sources,只保留 Colemak 与 Squirrel 两个。然后克隆 rime-config:
rm -rf ~/Library/Rime
git clone git@github.com:sxyazi/rime-config.git ~/Library/Rime
切换到 Squirrel,按 Ctrl-Option-` 重新部署。最后下载 sxyazi/a11y 按键辅助工具,该工具包含以下功能:
Universal Actions 是 Alfred 最强大的功能,也是主要卖点。将 sxyazi/alfred-workflows 导入,其中包括:
ranger 最后一个版本 v1.9.3 还在 2019 年,已经相当旧了。许多 bug 只在 master 被修复,因此需要从 Git 安装它。
由于 ranger 是个 Python 项目,这里使用 pipx
安装并管理它。先安装 pipx
:
brew install pipx
然后安装 ranger:
pipx install git+https://github.com/ranger/ranger.git
pipx inject ranger-fm Pillow
以后可以运行 upgrade
/upgrade-all
更新单个或多个应用:
pipx upgrade-all
鼠标 Bluetooth 会受 2.4Ghz Wi-Fi 影响,使用 Logitech 的 Unifying Receiver 会好很多。
它的配对软件没有 Homebrew formula,最后更新还在 2018,手动下载安装它:https://support.logi.com/hc/en-us/articles/360025297913
用腻了 Magic Mouse,但又想要流畅的鼠标体验,使用 BetterMouse。安装后调整以下参数:
其它 mpv ranger yabai 等配置后面整理到 https://github.com/sxyazi/dotfiles