Mac 配置指南
一个前端开发者的 Mac 环境配置及常用软件推荐。
最近从 M1 MacBook Pro 换到了 M3 MacBook Air,顺便重新配置了一下开发环境,整理了一些常用的软件和配置,方便以后重装系统时参考。
基本设置
键盘设置
增加双拼输入法: 系统偏好设置 -> 键盘 -> 输入法 -> 编辑 -> 点击左下角的加号,添加双拼输入法
禁止双击空格出现句号: 系统偏好设置 -> 键盘 -> 输入法 -> 编辑 -> 关闭“双击空格键加句号”
触控板设置
- 启用轻点来点按
系统偏好设置 -> 触控板 -> 光标与点按 -> 启用轻点来点按
- 启用双击拖动
系统偏好设置 -> 辅助功能 -> 鼠标与触控板 -> 触控板选项 -> 启用拖移 【不使用拖移锁定】
日常软件
前置准备
允许安装任意来源的应用
打开终端,输入以下命令并执行:
bash
1sudo spctl --master-disable
系统偏好设置 -> 安全性与隐私 -> 允许从以下位置下载的应用:任何来源
软件列表
- Quantumult X - 网络工具
正确地上网姿势,配置参考Quantumult X 配置及同步
- Arc - 浏览器
颜值高,支持 Chrome 插件,支持账号隔离,支持多设备同步,支持自动清理标签页。
Arc 更新了几个新的 icon,但我最喜欢的 Colorful 需要推荐 50 个人才能使用 🥲 这里分享一个绕开推荐限制修改图标的方法:终端里执行 "defaults write company.thebrowser.Browser currentAppIconName -string flutedGlass",参数 -string 后面的是 icon 名的小驼峰格式。
- Barbee - 隐藏菜单栏图标
Bartendar 的平替,支持隐藏菜单栏图标,支持自定义排序。
以前我也买过 Bartendar,但是 Bartendar 每一个 MacOS 版本更新都要收费,而 Barbee 是一次购买终身使用。
- Battery - 电池健康管理
开源免费。支持控制电池充电百分比。一般设置为 80%,可以延长电池寿命。
- Battery Buddy - 可爱的电池图标
没什么用,就是可爱🐶。
系统偏好设置 -> 控制中心 -> 电池 -> 关闭【在菜单栏显示】开启【在控制中心显示】
- Keka - 解压缩工具
官网下载免费,支持多种格式解压缩。
- Monitor Control - 外接显示器亮度调节
开源免费。像调节 Mac 亮度一样调节外接显示器亮度。
- Itsycal - 菜单栏日历
系统偏好设置 -> 控制中心 -> 时间 -> 显示日期(永不)
- Mac Mouse Fix - 鼠标优化
解决外接鼠标滚动不平滑的问题。
- Loop - 窗口管理
开源免费。动画效果很棒,符合直觉。
- Keyboard Clean Tool - 键盘清洁工具
启用后会禁用键盘输入,方便清洁键盘。
- Tuji - 截图工具
支持标注,加背景图,水印。相比于 CleanShot X,Tuji 缺少 Pin 功能,一些细节也比不上前者,但是价格便宜很多。而且这款软件发布的时间比较短,后续值得期待。
- Focusee - 录屏工具
拥有类似 ScreenStudio 自动跟随鼠标,适合录制产品演示视频或者教程。
- Keystroke Pro - 键盘按键显示
颜值比较高的键盘按键显示工具。需要付费,但是可以在网上找一下试用版。
- Bitwarden - 密码管理工具
支持自部署,官方价格也很便宜。
- Shortery - 自动化执行捷径工具
可以根据时间,Wi-Fi, 唤醒休眠等条件自动化执行指定的捷径。可以实现如早上 10 点切换到浅色模式,下午 3 点切换到深色模式等。
- Yoink - 文件中转站
文件拖拽中转站,拖拽文件时,可以先拖到 Yoink 中,然后再拖到目标文件夹。
- Raycast - 快捷启动工具
支持快速启动应用,执行脚本,查看剪贴板历史等。
有丰富的插件可以满足各种需求。
- Logseq - 笔记工具
开源免费的大纲双链笔记工具。
- PicGo - 图床工具
开源免费的图床工具,支持多种图床。
软件图标美化
有些软件的图标不太好看,比如欧陆词典,可以先到 macOS App icons 下载对应的图标,然后在应用程序中右键 -> 显示简介 -> 拖动新图标到原图标上完成替换。
解决应用无法打开
有些应用可能会提示:
xxx.app 已损坏,无法打开,你应该将它移到废纸篓。
这时可以尝试在终端中输入以下命令:
bash
1xattr -d com.apple.quarantine /Applications/xxx.app
开发配置
Homebrew
Homebrew 是 MacOS 上的包管理工具,可以用来安装各种软件,甚至字体。
字体安装
代码编辑器中使用的字体。
安装:
bash
1brew tap homebrew/cask-fonts 2brew install font-monaspace
终端使用的字体。包含图标字体,可以在终端中显示 Git 等图标。
https://github.com/ryanoasis/nerd-fonts?tab=readme-ov-file#option-2-homebrew-fonts
安装:
bash
1brew tap homebrew/cask-fonts 2brew install font-hack-nerd-font
Warp - 命令行工具
开箱即用的命令行工具,无需配置,像 ide 一样自带命令补全,语法高亮,AI 提示等功能。
VSCode - 代码编辑器
微软出品的代码编辑器,支持丰富的插件,可以满足各种需求。
命令行美化
日常使用的 Warp 开箱即用,不需要额外配置。但是在 VSCode 中使用终端时,还需要再配置一下。
Mac 自带的终端是 zsh,由于我日常用 Warp,只在小部分情况下使用 VSCode 的终端,所以并没有安装 oh-my-zsh。以下插件可以直接用 homebrew 安装。
- zsh-autosuggestions - 命令自动补全
- zsh-syntax-highligh - 命令语法高亮
- starship - 命令行输入框美化
- neofetch - 终端显示系统信息
- onefetch - 终端显示 git 仓库信息
CodeWhisperer for command line
Fig 被收购后,AWS 推出了 CodeWhisperer,可以在终端中使用代码补全,自带了 AI 问答功能。
同样的这些功能在 Warp 中也有,之所以安装时因为偶尔需要在 VSCdoe 终端中使用。
czg - git commit 工具
- 安装
bash
1brew install czg
- 全局配置
增加 ~/cz.config.js
文件,内容如下:
js
1// https://cz-git.qbb.sh/config/ 2/** @type {import('cz-git').CommitizenGitOptions} */ 3module.exports = { 4 alias: { fd: 'docs: fix typos' }, 5 messages: { 6 type: 'Select the type of change that you\'re committing:', 7 scope: 'Denote the SCOPE of this change (optional):', 8 customScope: 'Denote the SCOPE of this change:', 9 subject: 'Write a SHORT, IMPERATIVE tense description of the change:\n', 10 body: 'Provide a LONGER description of the change (optional). Use "|" to break new line:\n', 11 breaking: 'List any BREAKING CHANGES (optional). Use "|" to break new line:\n', 12 footerPrefixesSelect: 'Select the ISSUES type of changeList by this change (optional):', 13 customFooterPrefix: 'Input ISSUES prefix:', 14 footer: 'List any ISSUES by this change. E.g.: #31, #34:\n', 15 generatingByAI: 'Generating your AI commit subject...', 16 generatedSelectByAI: 'Select suitable subject by AI generated:', 17 confirmCommit: 'Are you sure you want to proceed with the commit above?' 18 }, 19 types: [ 20 { value: 'feat', name: 'feat: A new feature', emoji: ':sparkles:' }, 21 { value: 'fix', name: 'fix: A bug fix', emoji: ':bug:' }, 22 { value: 'docs', name: 'docs: Documentation only changes', emoji: ':memo:' }, 23 { value: 'style', name: 'style: Format some code(white space, formatting, missing semicolon)', emoji: ':art:' }, 24 { value: 'refactor', name: 'refactor: Refactor some code', emoji: ':recycle:' }, 25 { value: 'build', name: 'build: Changes that affect the build system or external dependencies', emoji: ':package:' }, 26 { value: 'ci', name: 'ci: Changes to our CI configuration files and scripts', emoji: ':construction_worker:' }, 27 { value: 'test', name: 'test: Adding missing tests or correcting existing tests', emoji: ':white_check_mark:' }, 28 { value: 'perf', name: 'perf: A code change that improves performance', emoji: ':zap:' }, 29 { value: 'revert', name: 'revert: Reverts a previous commit', emoji: ':rewind:' }, 30 { value: 'chore', name: 'chore: Other changes that don\'t modify src or test files(gitignore changes)', emoji: ':wrench:' }, 31 ], 32 useEmoji: true, 33 emojiAlign: 'center', 34 useAI: false, 35 aiNumber: 1, 36 themeColorCode: '', 37 scopes: [], 38 allowCustomScopes: true, 39 allowEmptyScopes: true, 40 customScopesAlign: 'bottom', 41 customScopesAlias: 'custom', 42 emptyScopesAlias: 'empty', 43 upperCaseSubject: false, 44 markBreakingChangeMode: false, 45 allowBreakingChanges: ['feat', 'fix'], 46 breaklineNumber: 100, 47 breaklineChar: '|', 48 skipQuestions: [], 49 issuePrefixes: [{ value: 'closed', name: 'closed: ISSUES has been processed' }], 50 customIssuePrefixAlign: 'top', 51 emptyIssuePrefixAlias: 'skip', 52 customIssuePrefixAlias: 'custom', 53 allowCustomIssuePrefix: true, 54 allowEmptyIssuePrefix: true, 55 confirmColorize: true, 56 maxHeaderLength: Infinity, 57 maxSubjectLength: Infinity, 58 minSubjectLength: 0, 59 scopeOverrides: undefined, 60 defaultBody: '', 61 defaultIssues: '', 62 defaultScope: '', 63 defaultSubject: '' 64}
- 增加 alias
bash
1# ~/.zshrc 2alias gcz="git czg"
配置常用命令别名
bash
1# ~/.zshrc 2# Alias 3alias Code="cd ~/Code" 4 5alias gcz="git czg" 6alias gaa="git add -A" 7alias gst="git status" 8alias gp="git push" 9alias gck="git checkout" 10alias glg="git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 11alias gwork='git config user.name "Hayden Chen" && git config user.email "[email protected]"'
OrbStack
轻量快速的 Docker Desktop 替代品。
Hoppscotch
开源免费的 API 请求工具。Postman 的替代品。
BeeKeeper Studio - 数据库管理工具
开源免费的数据库管理工具,支持多种数据库:MySQL, Postgres, SQLite, SQL Server。