macOS 配置指南

记录自己最常用的 macOS 配置,包括系统设置以及部分常用软件的设置。我常用的软件见:software-list

前言

作为一个开发者,第一个需要面对的问题是开发机器的选择。虽然目前看来,越来越多的开发者已经开始向 Linux 甚至向 PC 迁移,但是,我依旧认为 Mac 是最适合普通开发人员的开发设备,原因是它拥有最佳的用户体验和完备的软件和开发者生态。

系统

所有的 Mac 电脑所使用的操作系统都称为 macOS(过去叫 OS X,更早的时候叫 Mac OS X),macOS 最早是基于一个类 Unix 系统 NeXTSTEP 开发而来的,所以相比基于 Windows 操作系统的 PC,macOS 其实更接近 Linux,而相比基于 Linux 内核的操作系统,它的 UI/UX 又得到了非常大的提升。总体而言,macOS 兼顾了效率和使用体验,这也是目前它依旧受主流市场欢迎的原因。

正是因为 macOS 是基于类 Unix 系统开发而来,所以它对命令行操作的支持也更加友好,这是它的另外一大优势。无论你是哪个平台的开发者,一般都会建议你学习使用 Linux,而 macOS 对于学习 Linux 而言也非常友好,因为大多数 Linux 上的命令都可以直接在 macOS 中使用。

使用命令行进入系统根目录可以看到,macOS 的系统目录结构和 Linux 系统非常相似:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/ ls -al
total 9
drwxr-xr-x 20 root wheel 640 Dec 8 07:39 .
drwxr-xr-x 20 root wheel 640 Dec 8 07:39 ..
drwxrwxr-x 60 root admin 1920 Jan 25 18:06 Applications
drwxr-xr-x 68 root wheel 2176 Dec 14 12:35 Library
drwxr-xr-x@ 9 root wheel 288 Dec 8 07:39 System
drwxr-xr-x 6 root admin 192 Dec 8 07:39 Users
drwxr-xr-x 3 root wheel 96 Jan 25 21:02 Volumes
drwxr-xr-x@ 38 root wheel 1216 Dec 8 07:39 bin
drwxr-xr-x 2 root wheel 64 Jun 6 2020 cores
dr-xr-xr-x 3 root wheel 4574 Dec 26 22:58 dev
lrwxr-xr-x@ 1 root wheel 11 Dec 8 07:39 etc -> private/etc
lrwxr-xr-x 1 root wheel 25 Dec 26 22:59 home -> /System/Volumes/Data/home
drwxr-xr-x 2 root wheel 64 Jun 6 2020 opt
drwxr-xr-x 6 root wheel 192 Dec 8 07:39 private
drwxr-xr-x@ 65 root wheel 2080 Dec 8 07:39 sbin
lrwxr-xr-x@ 1 root wheel 11 Dec 8 07:39 tmp -> private/tmp
drwxr-xr-x@ 11 root wheel 352 Dec 8 07:39 usr
lrwxr-xr-x@ 1 root wheel 11 Dec 8 07:39 var -> private/var

bin 是保存系统基础命令的目录,dev 设备目录,etc 系统配置,usr 用户安装软件及配置,var 其它目录(如日志和缓存)。唯一的不同之处是多了一些大写开头的文件夹,这些是 macOS 独有的,比如:Applications 应用文件夹,系统和第三方应用都会被安装到这里;Library 第三方库文件夹;System 保存系统文件;Users 用户文件夹;Volumes 磁盘。

基础设置

最佳屏幕显示

为了让 Retina 屏幕发挥出最大的作用,让文字显示达到最佳效果,我们需要关闭 font smoothing。

设置方法:Big Sur 之后的系统,需要通过在命令行中输入 defaults -currentHost write -g AppleFontSmoothing -int 0 并重启。

参考文章:Time to upgrade your monitor by @Nikita

三指拖动

之前拖动窗口都是使用点住并拖动的方式,后来才发现使用三指拖动的方式比点按拖动优雅不少。

设置方法:打开系统设置中的 Accessibility > Pointer Control,选择 Trackpad Options > Dragging Style > Three Finger Drag。参考:开启适用于 Force Touch 触控板的“三指拖移”

这样设置之后,切换桌面以及 Mission Control 都会自动变成四指。

我们还可以在拖动窗口时切换桌面从而快速将一个应用切换到另一个桌面,做法是首先在 Keyboard > Shortcuts > Mission Control 中开启使用 control + 1 Switch to Desktop 1 和 control + 2 Switch to Desktop 2,之后只要轻微拖动窗口的同时使用快捷键切换桌面,就可以将该窗口带到相应的桌面了。

键盘映射

通过将键盘映射可以让常用的按键使用更加方便快捷,比如将 Esc 映射为 Caps Lock,Keyboard > Keyboard Shortcuts > Modifier Keys,选择 Caps Lock key 的执行动作为 Escape

对于更复杂的键盘映射可以使用 Karabiner-Elements 等软件来实现。

拖动窗口切换桌面

我们可以通过拖动应用窗口到屏幕边缘然后等待 1 秒来切换桌面,可以使用以下命令设置等待时间:

1
defaults write com.apple.dock workspaces-edge-delay -float 0.15;killall Dock

使用下面命令取消设置:

1
defaults delete com.apple.dock workspaces-edge-delay;killall Dock

Hot Corners

System Preferences Mission Control > Hot Corners,下面是我的设置:

  • 左上角:Start Screen Saver
  • 左下角:Desktop
  • 右上角:Notification Center
  • 右下角:Launchpad

除此之外,还有一些默认配置:

  • 滑动到左下角后,两指上下滑动调整屏幕亮度,轻触三指锁屏。
  • 滑动到右下角后,轻触三指最小化应用。

Quick Look Plugins

为 Quick Look 添加更丰富功能的插件,可以通过 Homebrew 安装:

1
brew install qlcolorcode qlmarkdown quicklook-json qlstephen --verbose

详细介绍见:quick-look-plugins。大多数插件在安装之后需要在 Security & Privacy 中点击允许运行才可以正常使用。另外有个小 tip,Mission Control 下也是可以按 space 来使用 Quick Look 的。

关闭 Spotlight

对我来说,大多数时候,使用 Raycast 和 uTools 就足够了,所以 Spotlight 反而多余。

首先,在菜单栏不显示 Spotlight: Control Center > Menu Bar Only > Spotlight (Don’t show in Menu Bar)

其次,关闭快捷键: Keyboard > Keyboard Shortcuts > Spotlight > Uncheck “Show Spotlight search”

应用设置

Finder

显示文件路径

底部显示/隐藏路径,快捷键 command + option + P

显示隐藏文件和文件夹

快捷键 command + shift + .,或者在命令行下输入:

1
2
3
4
# 显示
defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder;
# 隐藏
defaults write com.apple.finder AppleShowAllFiles FALSE; killall Finder;

另外,隐藏和显示某个单独的文件或文件夹,在命令行下输入:

1
2
chflags hidden file-path
chflags nohidden file-path

其它小 tips

  • 修改默认打开文件夹,Finder Preferences > General > New Finder window show
  • 打开右键菜单后,按住 option 键显示更多操作,比如复制路径
  • 在文件属性分割线或者宽度调整按钮上双击,就可以自动调整宽度为当前列文件名字最长的宽度
  • 调整窗口宽高时按住 shift + option 键,整个窗口大小会随之变大或变小
  • 下载 OpenInTerminal-Lite,然后按住 command 并拖动应用 icon 到 Finder 菜单栏,选择打开方式为 iTerm2,然后就可以快速在 iTerm 中打开当前文件夹路径了

iTerm 2

1、安装 oh-my-zsh

2、配置 Dracula 主题以及修改 icon

3、配置按键

如果你键盘中的 iTerm 按键被其它软件覆盖了,可以通过下面的方式手动设置按字符跳转 功能:Preferences > Profiles > Keys,先将 Left Option Key 设置为 Esc+,然后添加 Key Mapping:

  • Keyboard Shortcut 设置为 option + ,Action 选择 Send Escape Sequence,Esc+ 输入 b
  • Keyboard Shortcut 设置为 option + ,Action 选择 Send Escape Sequence,Esc+ 输入 f
  • Keyboard Shortcut 设置为 option + ,Action 选择 Send Text,内容输入 cd ..

BetterAndBetter

这是一个通过为触摸板和键盘提供丰富的快捷操作、提升 Mac 使用效率的应用。

触摸板

  • 三指点击调整系统音量(3Finger_TipTap_Left/Right/Middle -> Volumn Down/Up/Mute)
  • 四指点击调整屏幕亮度(4Finger_TipTap_Left/Right -> Brightness Down/Up)
  • 四指双击输入 Mac 密码(4Finger_DoubleTap)

键盘

BAB 内置了一些调整窗口位置的键盘快捷键,我参考了 Rectangle 的快捷键,设置如下:

  • control + option + ,当前窗口占据屏幕左半边
  • control + option + ,当前窗口占据屏幕右半边
  • control + option + ,当前窗口占据屏幕上半边
  • control + option + ,当前窗口占据屏幕下半边
  • control + option + C,当前窗口占据屏幕中心
  • control + option + M,当前窗口最小化
  • control + option + ↩︎,进入全屏
  • control + option + ,退出全屏
  • control + option + R,恢复到之前的位置

其它 BAB 默认绑定的快捷键:

  • control + option + A,打开应用程序文件夹
  • control + option + command + B,打开 BAB 设置界面

另外,BAB 还可以结合 AppleScript 来使用快捷键,比如:

  • command + shift + control + P,Spotify 播放/暂停

    1
    2
    3
    4
    5
    6
    7
    using terms from application "Spotify"
    if player state of application "Spotify" is paused then
    tell application "Spotify" to play
    else
    tell application "Spotify" to pause
    end if
    end using terms from
  • command + shift + control + L,Spotify 播放下一首

    1
    2
    3
    tell application "Spotify"
    next track
    end tell
  • command + shift + control + H,Spotify 播放上一首

    1
    2
    3
    tell application "Spotify"
    previous track
    end tell

音乐的播放/暂停、上/下一首这些功能用 BAB 内置的脚本也能用,但是前提是必须先让你的目标软件获得音频焦点,所以还是用自己的脚本比较好。

Chrome

F5 刷新

System Preferences > Keyboard > Keyboard Shortcuts > App Shortcuts,点击左下角的 “+” 号,在弹框中的 Application 一栏选择 Google Chrome,Menu Title 填入 “Reload This Page”,然后点击 Keyboard Shortcut 一栏,按 F5,最后选择 “Add” 添加完成,重启 Chrome 后生效。

Automator

Search With Chrome

系统内置了 Search with Google,不过是使用 Safari 打开的,我平时用 Chrome 多一点,所以可以用 Automator 添加一个服务来解决:打开 Automator > 选择 Quick Action > 搜索 “Applescript” > 双击添加 “Run Applescript”,复制以下代码:

1
2
3
4
5
6
on run {input, parameters}
tell application "Google Chrome"
open location "https://www.google.com/search?&q=" & input as string
end tell
return input
end run

保存并命名为 “Search by Google”(默认会保存到 ~/Library/Services 中),接着就可以在选中文字的时候 右键 - Service 选择该服务了。也可以在 System Preferences > Keyboard > Keyboard Shortcuts > Services > Text 中添加快捷键,比如我的是 command+option+g

V2rayU 添加白名单

使用 Pac 模式有个缺陷,那就是每次加网址都很麻烦,不过同样可以用 Automator 解决这个问题。在这里找到了 V2rayU 的 User Rules 文件的保存位置,然后在 Automator 中创建一个 Quick Action (Service),使用默认模式并添加一个 Shell Script:

1
echo "||$1" | tee -a /Applications/V2rayU.app/Contents/Resources/pac/user-rule.txt

记得将脚本右上角的 Pass input 修改成 “as argument”,然后保存成 “Add to user-rule” 就好了,推荐最好添加一个快捷键,比如 command+option+a。注意:使用这种方式添加的网址在 V2rayU 的 Pac 面板中是看不到的,而且需要重启 v2ray-core 或者切换代理模式后才能生效。

另外,记录一下使用 V2rayU 过程中的一些小问题:

  • v2ray 配置正确但是依旧无法正确连接的问题。首先检查时间是否设置正确,如果客户端和服务端时间误差超过 2 分钟,就会出现无法连接的问题;其次,如果你服务端配置了 WS+TLS,客户端需要设置 Allow Insecure,一般也能解决连接失败的问题。
  • v2ray-core 缺失,出现该现象的原因未知,需要手动下载 v2ray-core 并解压好放到 /Applications/V2rayU.app/Contents/Resources/v2ray-core 目录下。(作者已经解决了该问题,相关 issue 见issue#663

Raycast

Raycast 是一个非常优秀的启动器,推荐将快捷键设置为 option + space。使用它除了可以完成一些文件、应用的搜索之外,我最喜欢的是它提供的各种快捷操作,比如给各种软件绑定快捷键,结合 Shortcuts 可以完成自动化很多常用的操作。

Shortcuts

Shortcuts 除了可以操作系统应用之外,也支持导入并运行 AppleScript,不过需要在应用设置中开启 Advanced > Allow Running Scripts,这样的话它的实用性就提升很多了,我们还可以在 Raycast 的 Extensions 设置中,为 Shortcuts 添加快捷键。

百度输入法

目前使用微信输入法,因为支持剪贴板同步。安卓端安装微信输入法后继续使用 Gboard,不影响同步功能。

百度输入法是到目前为止为数不多的我依旧在使用的百度产品。我喜欢它简洁的界面以及丰富的皮肤库(Origami Neko),表情库(shift + option + B),QuickTip,自动切换英文(设置 - 高级 - App 清单)。另外,它对小鹤双拼的支持也不错,加上词库同步的功能,基本可以让我在 Mac 和 PC 之间的输入体验保持一致。