Mac 配置指南
11 分钟阅读

Mac 配置指南

一个前端开发者的 Mac 环境配置及常用软件推荐。

最近从 M1 MacBook Pro 换到了 M3 MacBook Air,顺便重新配置了一下开发环境,整理了一些常用的软件和配置,方便以后重装系统时参考。

基本设置

键盘设置

增加双拼输入法: 系统偏好设置 -> 键盘 -> 输入法 -> 编辑 -> 点击左下角的加号,添加双拼输入法

禁止双击空格出现句号: 系统偏好设置 -> 键盘 -> 输入法 -> 编辑 -> 关闭“双击空格键加句号”

触控板设置

  1. 启用轻点来点按

系统偏好设置 -> 触控板 -> 光标与点按 -> 启用轻点来点按

  1. 启用双击拖动

系统偏好设置 -> 辅助功能 -> 鼠标与触控板 -> 触控板选项 -> 启用拖移 【不使用拖移锁定】

日常软件

前置准备

允许安装任意来源的应用

打开终端,输入以下命令并执行:

bash
1sudo spctl --master-disable

系统偏好设置 -> 安全性与隐私 -> 允许从以下位置下载的应用:任何来源

软件列表

  1. Quantumult X - 网络工具

正确地上网姿势,配置参考Quantumult X 配置及同步

  1. Arc - 浏览器

颜值高,支持 Chrome 插件,支持账号隔离,支持多设备同步,支持自动清理标签页。

Arc 更新了几个新的 icon,但我最喜欢的 Colorful 需要推荐 50 个人才能使用 🥲 这里分享一个绕开推荐限制修改图标的方法:终端里执行 "defaults write company.thebrowser.Browser currentAppIconName -string flutedGlass",参数 -string 后面的是 icon 名的小驼峰格式。

239
Reply

  1. Barbee - 隐藏菜单栏图标

Bartendar 的平替,支持隐藏菜单栏图标,支持自定义排序。

以前我也买过 Bartendar,但是 Bartendar 每一个 MacOS 版本更新都要收费,而 Barbee 是一次购买终身使用。

  1. Battery - 电池健康管理

开源免费。支持控制电池充电百分比。一般设置为 80%,可以延长电池寿命。

  1. Battery Buddy - 可爱的电池图标

没什么用,就是可爱🐶。

隐藏系统自带的电池图标

系统偏好设置 -> 控制中心 -> 电池 -> 关闭【在菜单栏显示】开启【在控制中心显示】

  1. Keka - 解压缩工具

官网下载免费,支持多种格式解压缩。

  1. Monitor Control - 外接显示器亮度调节

开源免费。像调节 Mac 亮度一样调节外接显示器亮度。

  1. Itsycal - 菜单栏日历

隐藏系统自带的日期

系统偏好设置 -> 控制中心 -> 时间 -> 显示日期(永不)

  1. Mac Mouse Fix - 鼠标优化

解决外接鼠标滚动不平滑的问题。

  1. Loop - 窗口管理

开源免费。动画效果很棒,符合直觉。

  1. Keyboard Clean Tool - 键盘清洁工具

启用后会禁用键盘输入,方便清洁键盘。

  1. Tuji - 截图工具

支持标注,加背景图,水印。相比于 CleanShot X,Tuji 缺少 Pin 功能,一些细节也比不上前者,但是价格便宜很多。而且这款软件发布的时间比较短,后续值得期待。

  1. Focusee - 录屏工具

拥有类似 ScreenStudio 自动跟随鼠标,适合录制产品演示视频或者教程。

  1. Keystroke Pro - 键盘按键显示

颜值比较高的键盘按键显示工具。需要付费,但是可以在网上找一下试用版。

  1. Bitwarden - 密码管理工具

支持自部署,官方价格也很便宜。

  1. Shortery - 自动化执行捷径工具

可以根据时间,Wi-Fi, 唤醒休眠等条件自动化执行指定的捷径。可以实现如早上 10 点切换到浅色模式,下午 3 点切换到深色模式等。

  1. Yoink - 文件中转站

文件拖拽中转站,拖拽文件时,可以先拖到 Yoink 中,然后再拖到目标文件夹。

  1. Raycast - 快捷启动工具

支持快速启动应用,执行脚本,查看剪贴板历史等。

有丰富的插件可以满足各种需求。

  1. Logseq - 笔记工具

开源免费的大纲双链笔记工具。

  1. PicGo - 图床工具

开源免费的图床工具,支持多种图床。

软件图标美化

有些软件的图标不太好看,比如欧陆词典,可以先到 macOS App icons 下载对应的图标,然后在应用程序中右键 -> 显示简介 -> 拖动新图标到原图标上完成替换。

解决应用无法打开

有些应用可能会提示:

xxx.app 已损坏,无法打开,你应该将它移到废纸篓。

这时可以尝试在终端中输入以下命令:

bash
1xattr -d com.apple.quarantine /Applications/xxx.app

开发配置

Homebrew

Homebrew 是 MacOS 上的包管理工具,可以用来安装各种软件,甚至字体。

字体安装

  1. Githubnext Monaspace Font

代码编辑器中使用的字体。

安装:

bash
1brew tap homebrew/cask-fonts 2brew install font-monaspace
  1. Nerd Fonts

终端使用的字体。包含图标字体,可以在终端中显示 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 安装。

  1. zsh-autosuggestions - 命令自动补全
  2. zsh-syntax-highligh - 命令语法高亮
  3. starship - 命令行输入框美化
  4. neofetch - 终端显示系统信息
  5. onefetch - 终端显示 git 仓库信息

CodeWhisperer for command line

Fig 被收购后,AWS 推出了 CodeWhisperer,可以在终端中使用代码补全,自带了 AI 问答功能。

同样的这些功能在 Warp 中也有,之所以安装时因为偶尔需要在 VSCdoe 终端中使用。

czg - git commit 工具

  1. 安装
bash
1brew install czg
  1. 全局配置

增加 ~/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}
  1. 增加 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。

参考文档