macOS 新手指南 (Draft)
从零开始配置一个高效优雅的 macOS 工作环境

前言

macOS 基础

键盘与快捷键

macOS 的修饰键与 Windows 略有差别, 具体而言, Windows 上的 Ctrl 对应 macOS 上的 Control 和 Command 键, 而 Alt 键对应 Option 键. 在 macOS 的快捷键逻辑中, Control 键主要用于终端中的操作(以及光标操作等), 而 Command 键主要用于 GUI 界面下的操作. 这使得 macOS 的快捷键比 Windows 更加丰富和容易区分.

例如, 在 Windows 上的复制是 Ctrl+C, 这和终端中的 Interrupt 快捷键是相同的, 导致软件要么使用额外的判断逻辑区分两种操作, 要么舍弃一种操作的快捷键. 而本应该对标 Command 键的 Windows 键使用频率较低, 导致 Windows 的快捷键逻辑较为混乱. 而在 macOS 上, 复制是 Command+C, 中断是 Control+C, 两者互不干扰.

macOS 中的菜单和键盘通常使用符号来表示修饰键, 其中有: Command (⌘), Shift (⇧), Option (⌥), Control (⌃), Caps Lock (⇪) 等. 本文也采用这些符号来更方便地表示快捷键.

这里列出一些 macOS 区别于 Windows 的独特的快捷键:

  • ⌘H / ⌥⌘H: 隐藏当前窗口 / 隐藏除了当前窗口的所有其他窗口.
  • ⌘M: 最小化窗口到 Dock.
  • ⌘W: 关闭当前窗口.
  • ⌥⌘Esc: 打开"强制退出"面板.
  • ⌘Space: 打开 Spotlight (后面会使用 Raycast 替换之).
  • ⌃⌘Space: 打开表情符号面板 (后面会使用 Raycast 替换之).
  • ⌃⌘F: 进入全屏模式.
  • ⌘Tab / ⌘`: 切换 App / 切换同一个 App 的不同窗口 (后面会使用 AltTab 替换之).
  • ⇧⌘3 / ⇧⌘4 / ⇧⌘5: 全屏截图 / 区域截图 / 打开截图 App.
  • ⌘,: 打开当前 App 的设置.
  • ⌃⌘Q: 锁定屏幕.

光标操作:

  • ⌃H: 向后删除 (等效于 Backspace 键).
  • ⌃D: 向前删除 (等效于 Delete 键).
  • ⌃K: 删除到行尾.
  • ⌃A / ⌃E: 移动到行首/尾.
  • ⌃F / ⌃B: 向前/后移动一个字符.
  • ⌃P / ⌃N: 向上/下移动一行.
  • ⌃O: 插入新行.
  • ⌘↑ / ⌘↓: 将光标移动到文档开头/末尾.
  • ⌘← / ⌘→: 将光标移动到行首/尾.
  • ⌥← / ⌥→: 将光标向左/右移动一个词.
  • ⇧ 配合方向键使用: 选中文本 (可配合 ⌘⌥ 使用).

[!TIP] 记忆快捷键的最佳方式是找出你工作流中最常使用的功能然后多用, 而不是死记硬背所有的快捷键.

另外, 注意到一些快捷键设计的逻辑有助于记忆, 如: ⌘M, Minimize, 最小化; ⌃⌘Q, Quit, 锁定屏幕; 等等.

还有一种情况是你不知道并不知道某些功能有快捷键 (比如⌥←), 这时候你可能需要快速阅读一下软件的快捷键指南从中找出对你的工作流有用的快捷键, 或者阅读介绍这些快捷键的文章.

桌面管理

space window tab app

Mission Control, App exposè

window 调整, 切换

程序启动

dock launchpad “⌘Space”

菜单栏

文件管理

finder preview

系统设置

这部分首先介绍一些我认为可以极大提高使用体验的系统设置, 然后是一些外观方面的个人偏好设置.

Dock 配置

Dock 不仅用处有限, 而且占用了屏幕空间, 所以我更喜欢将其放在屏幕右侧并设置自动隐藏. 我一般使用 ⌘Space 来启动应用.

  • 设置 Dock 在屏幕右侧: Desktop & Dock > Dock > Position on screen: Right.
  • 打开 Dock 自动隐藏: Desktop & Dock > Dock > Automatically hide and show the Dock: On.

Mission Control 配置

macOS 上默认会根据使用频率自动调整 Spaces 的顺序, 但这会打乱我自己设置的顺序, 所以关闭这个功能. 另外, 我在打开应用时通常是希望在当前 Space 打开, 但 macOS 的默认行为是跳转到应用窗口所在的 Space, 所以我也希望关闭这个功能.

  • 关闭 Spaces 自动调整顺序: Desktop & Dock > Mission Control > Automatically rearrange Spaces based on most recent use: Off.
  • 关闭打开应用时跳转到应用窗口所在的 Space: Desktop & Dock > Mission Control > When switching to an application, switch to a Space with open windows for the application: Off.

Keyboard 配置

默认设置下, macOS 的键盘输入非常的"卡顿", 例如在删除一段文字时, 按住删除键删除的速度非常慢. 为了获得和 Windows 上差不多的输入体验, 我们需要提高键盘重复速度和开始重复前的延迟.

  • 提高键盘重复速度: Keyboard > Key Repeat: 调到第 8/8 格 (最快).
  • 减少开始重复前的延迟: Keyboard > Delay Until Repeat: 调到第 5/6 格 (第二短).

另外, 我喜欢将 Caps Lock 键与 Control 键互换, 因为 Caps Lock 键使用频率几乎为 0, 而 Control 键在终端中使用频率非常高. 将 Control 键向上调整后, 使用小拇指按 Control 会更舒适. 一个另外的好处是, 在 MacBook 的键盘上, Fn 键和 Control 键的位置是相反的 (在某些 Magic keyboard 上却又正常), 这种不一致性会导致我不能盲按 Control 键, 而通过互换 Caps Lock 和 Control 键, 我在所有键盘上都可以得到一个固定的 Control 键.

  • 互换 Caps Lock 和 Control 键: Keyboard > Keyboard Shortcuts… > Modifier Keys > Caps Lock Key: Control, Control Key: Caps Lock.

不过要注意的是, 在系统设置中的这个互换设置仅对一个键盘生效, 如果新接入一个键盘, 这个设置不会自动应用到新键盘上, 需要手动设置.

Trackpad 配置

macOS 上有一个用了就回不去的功能, 就是三指拖拽. 可惜的是, Apple 为了推广 Force Touch, 将这个功能藏的很深, 一般人都不知道这个功能的存在.

  • 开启三指拖拽: Accessibility > Pointer Control > Trackpad Options… > Dragging style: Three finger drag.

开启三指拖拽后, 你可以在任何地方使用三指拖拽来移动窗口, 选中文本, 拖拽文件等等, 比起使用按住拖拽的方式, 三指拖拽时手指和触摸板之间的摩擦力更小, 操作也就更加流畅, 而且, 三指拖拽时可以短暂松开触摸板, 拖拽的状态会短时间保留, 方便长距离的拖拽操作.

Finder 配置

账号登录

其他个人偏好设置

  • 开启所有 iCloud 同步选项: Apple Account > iCloud > Saved to iCloud, See All > 打开所有选项, 并在 iCloud Drive 中打开 Desktop & Documents Folders.
  • 调整星期一为一周的第一天: General > Language & Region > First Day of Week: Monday.
  • 按日出日落自动调整浅色和深色外观: Appearance > Appearance: Auto.
  • 关闭墙纸在窗口中的颜色渲染: Appearance > Allow wallpaper tinting in windows: Off.
  • 调整菜单上的图标显示: Control Center > Control Center Modules / Other Modules / Menu Bar Only > 除了 Focus 和 Screen Mirroring 设为 Show When Active 以外, 其他全部关闭.
  • 取消窗口调整时的留白: Desktop & Dock > Windows > Tiled windows have margins: Off.
  • 调整屏保和息屏时间: Lock Screen > Start Screen Saver when inactive: For 10 minutes; Turn display off on battery when inactive: 3 minutes; Turn display off on power adapter when inactive: 30 minutes.
  • 禁用首字母自动大写: Text Input > Input Sources, Edit… > Capitalize words automatically: Off.
  • 调整触摸板点击反馈: Trackpad > Point & Click > Click: Firm.

必备软件

上述的系统设置是通过系统自带的设置界面进行设置的, 而有些功能和调整 Apple 并没有提供选项, 这时我们就需要借助一些第三方软件来实现.

安装准备

一般情况下, macOS 仅允许执行来自 App Store 或者被 Apple Developer Program 账号签名的应用, 但限制于 App Store 严格的权限管理和 Apple Developer Program 的高昂费用, 很多小工具并不符合这个条件. 为了解决这个问题, 我们需要允许执行任何来源的应用.

在命令行中执行以下命令以允许执行任何来源的应用:

sudo spctl --master-disable

如果你觉得以上做法比较危险, 也可以使用以下命令单独允许某个应用:

xattr -d com.apple.quarantine /Applications/[APP NAME].app

鼠标配置

macOS 是针对触控板深度优化的系统, 对于鼠标的支持可以说是非常差劲. 例如 macOS 的系统设置中的 Natural Scrolling 对触控板来说是符合直觉的 (手指滑动方向与页面滚动方向相反), 但对鼠标而言比较反直觉, 而 macOS 居然没有为鼠标和触控板分别设置这个选项, 只能同时改变两者的设置. 另外, 使用触控板时, macOS 的滚动是非常优雅的符合物理规律的滚动以及回弹, 但使用鼠标时只有机械僵硬缓慢的滚动.

为了解决这个问题, 我们可以安装 Mos, 它可以单独为鼠标设置滚动方向以及模拟触控板的平滑滚动效果.

  • Mos: 免费, 开源, 使用 GitHub Release 安装.

此外, 如果你希望禁用鼠标指针加速度, 你可以使用 LinearMouse, BetterMouse 等软件. 不过由于我使用轨迹球鼠标, 所以我并不需要禁用鼠标指针加速度, 你可以自行搜索并安装.

显示器配置

使用 macOS 的最佳实践是配置一款被 Apple 称为 “Retina” 的显示器, 对于桌面显示器, Retina 的要求约为 218PPI. 以下是一些常见的显示器的 PPI:

Model Screen Size Aspect Ratio Resolution PPI
MacBook Air 13" 13.6" 16:10 2560x1664 224
MacBook Pro 14" 14.2" 16:10 3024x1964 254
iMac 21.5" 21.5" 16:9 4096x2304 219
iMac 24" 23.5" 16:9 4480x2520 219
Studio Display 27" 16:9 5120x2880 218
Pro Display XDR 32" 16:9 6016x3384 218
Redmi 23.8" A24 23.8" 16:9 1920x1080 93
SANC 23.8" OF24Q 23.8" 16:9 2560x1440 123
Redmi 27" A27Q 27" 16:9 2560x1440 109
Redmi 27" A27U 27" 16:9 3840x2160 163

按苹果的标准, 24 寸显示器应该使用 “4.5K” 的分辨率, 27 寸显示器应该使用 “5K” 的分辨率, 32 寸显示器应该使用 “6K” 的分辨率.

但可惜的是, 如上表最后 4 行所示, 目前主流的显示器 (24 寸 1440p 和 27 寸 4K) 都不符合这个要求, 所以要么去加钱买更小众更贵的显示器, 要么只能妥协使用 PPI 没那么高的显示器. (你可以使用 这个网站 来计算显示器的 PPI)

macOS 的显示设置与 Windows 的逻辑不同: Windows 的分辨率指的是物理分辨率, 并通过缩放来调整显示大小, 所以你只需要选择最高的分辨率然后选一个合适的缩放大小即可, Windows 会在这个缩放大小下进行渲染, 这样做的缺点是需要软件适配 DPI 缩放; 在 macOS 中, 分辨率指的是逻辑分辨率, 并通过 HiDPI 来利用 Retina 显示器的高分辨率, 所以你需要选择一个逻辑分辨率, 然后系统会在 2 倍于这个分辨率的视频缓冲区进行渲染, 然后如果渲染结果的分辨率不匹配, 则 downscale 到物理分辨率显示给用户.

我目前使用的是 Redmi 27" A27U Type-C 版, 这个显示器的 PPI 是主流显示器中较高的了. 在理论上, 我应该使用 1920x1080 的逻辑分辨率, 这样可以避免 downscale 带来的性能损耗和 image artifact; 但 1920x1080 的逻辑分辨率在 27 寸显示器上看起来太大了, 于是我只能妥协 (又一次) 使用 2304x1296 的逻辑分辨率 (等价于 167% 缩放) 并开启 HiDPI.

在一些老版本系统或者非主流的显示器尺寸上, HiDPI 可能不被原生支持, 你可能需要使用 BetterDisplay 来开启 HiDPI. 虽然我的显示器原生支持 HiDPI, 但为了使用亮度调节, 音量调节, 以及看在这个软件的颜值上, 我也安装了 BetterDisplay.

  • BetterDisplay: 核心功能免费, 闭源, 使用 GitHub Release 安装.

Summary: 如果你有钱, 请直接购买 Studio Display / Pro Display XDR, 就没有这些妥协了.

菜单栏配置

macOS 的菜单栏不能隐藏图标, 过多的图标不仅显得杂乱, 而且会导致很难找到你需要的图标. 刘海屏的 MacBook 出来之后更是让这个问题变得更加突出. 为了解决这个问题, 你可以使用 Ice 来隐藏菜单栏图标.

  • Ice: 免费, 开源, 使用 GitHub Release 安装.

在设置界面中, 开启开机启动, 取消显示 icon, 打开 always-hidden section, 打开 Ice Bar (如果你是刘海屏). 然后在 Menu Bar Layout 中设置你偏好的菜单栏布局即可.

窗口管理

最新的 macOS Sequoia 终于支持了类似于 Windows 上的拖拽窗口到屏幕边缘自动调整大小的功能. 如果你没有更新到 Sequoia, 或者你希望使用快捷键来调整窗口大小的话, 你可以使用 Rectangle 来调节窗口大小.

  • Rectangle: 免费, 开源, 使用 GitHub Release 安装.

窗口切换

又是一个 macOS 的痛点. macOS 默认的 ⌘Tab 只能在不同应用之间切换, 对多窗口应用十分不友好, 而且会将后台应用, 其他 Spaces 的应用全部显示出来, 十分的不直观. 为了解决这个问题, 我使用 AltTab 来替代 macOS 的 ⌘Tab.

  • AltTab: 免费, 开源, 使用 GitHub Release 安装.

在 Appearance 中勾上 Hide apps with no open windows, Fade out animation, Hide Space number labels.

然后在 Controls 中设置两个快捷键:

  • ⌘Tab: Show windows from: All apps, Visible Spaces, Screen showing AltTab.
  • ⌘`: Show windows from: Active app, All Spaces, All Screens.

启动器

使用 Dock 或者 Launchpad 启动应用需要多次鼠标点击, 效率低下还需要找到 app 所在的位置. 所以我总是使用启动器 (⌘Space) 来启动应用或者是查找文件. macOS 自带的 Spotlight 功能虽然强大, 但是有一些不足之处, 例如运行缓慢, 定制化程度低等. macOS 的生态系统中已经有很多这种效率工具, 例如 Alfred, Raycast, uTools 等等 (反观 Windows). 作为一个颜控, 我选择使用 Raycast 来替代 Spotlight.

  • Raycast: 核心功能免费, 闭源, 官网下载安装.

接着调整一些细节:

  • 设置开机启动, 按说明替换 ⌘Space 为 Raycast, 调节字体为大号, Window Mode 设为 Compact.
  • 在 Advanced 中设置 Escape Key Behavior: Close window and pop to root; Navigation Bindings: Vim Style.

最后是 Raycast 的核心, Extensions, 这部分是 Raycast 最强最灵活的地方, 这里只列出最常用的几个设置, 剩下的可以由你结合自己的工作流来创作:

  • Clipboard History: 设置 Hotkey 为 ⌃⌘V.
  • Search Emoji & Symbols: 设置 Hotkey 为 ⌃⌘Space 替换掉又卡又难用的默认表情面板.
  • VSCode (需安装插件) - Search Recent Projects: 设置 Alias 为 code.
  • VSCode: 设置 Hotkey 为 ⌃⌘C. 你可以将你常用的 app 都设置一个 Hotkey, 这样就可以一键启动了.

压缩软件

macOS 默认只支持 zip 格式的压缩和解压, 为了支持其他格式的压缩文件, 我们可以安装 Keka.

  • Keka: 免费, 闭源, 官网下载安装.

在 macOS 中使用默认压缩时, 压缩包里总会出现额外的, 不需要的 .DS_Store, __MACOSX 等文件, 而 Keka 默认开启了 Exclude Mac resource forks, 可以避免这些文件的出现. 所以, 尽量避免使用 Finder 或是终端命令来压缩文件, 而是使用 Keka 来避免无关文件被包含在压缩包中.

推荐软件

这部分不是必装的软件, 但它们或者颜值高, 或者有趣, 或者符合我的需求, 所以在这里列出.

视频播放器

这部分内容主要参考 VCB-Studio 的教程. 使用 mpv 作为视频播放器, 使用 IINA 作为视频播放器的前端.

  • IINA: 免费, 开源, 官网下载安装.

在 IINA 设置界面首先将所有文件格式关联到 IINA 上, 然后使用 mpv 的 config 文件进行配置.

  • 文件格式关联: Utilities > Default Application > Set IINA as the Default Application…
  • 使用 mpv 的 config 文件: Advanced > Enable advanced settings: On; Use config directory: ~/.config/mpv/.

然后创建 ~/.config/mpv/mpv.conf 文件, 添加以下内容:

# 使用高质量渲染设置
profile=high-quality
cscale=catmull_rom

# 启用去色带
deband=yes

# 启用色彩管理
icc-profile-auto=yes

# 将字幕渲染到视频源分辨率并随视频一起缩放并进行色彩管理
blend-subtitles=video

# 消除由于视频帧率与显示器刷新率不同导致的画面卡顿问题
video-sync=display-resample
interpolation=yes
tscale=oversample

# 识别非标准的字幕语言标记
sub-auto=fuzzy

# 只使用软解码器
hwdec=no

输入法

微信输入法 rime

其他软件

  • Amphetamine: 免费, 闭源, App Store 安装. 用于保持 Mac 唤醒状态.
  • iStat Menus 7: 付费, 闭源, 官网下载安装. 用于各种详细的系统信息显示.
  • NeoServer: 核心功能免费, 闭源, App Store 安装. 用于监视服务器的性能.
  • Pearcleaner: 免费, 开源, 使用 GitHub Release 安装. 用于完全卸载 app.
  • PicList: 免费, 开源, 使用 Github Release 安装. 图床管理工具.
  • Shottr: 付费, 闭源, 官网下载安装. 用于截图并批注.
  • Skim: 免费, 开源, 官网下载安装. 用于 PDF 阅读.
  • Telegram: 免费, 开源, 官网下载安装. 用于即时通讯, 信息获取, 自动化等.
  • Transmission: 免费, 开源, 官网下载安装. 用于 BT/PT 下载.

开发环境

这部分主要介绍程序员常用的一些软件及其配置.

Terminal & Shell

Apple Terminal 已经是一个不错的终端模拟器了 (比起 Windows 的 cmd), 如果你只是偶尔使用, 那么 Apple Terminal 已经足够了. 但如果你每天都要使用终端, 那么 iTerm2 是一个更好的选择.

  • iTerm2: 免费, 开源, 官网下载安装.

从 macOS Catalina 开始, 系统默认使用 zsh 作为 shell 了, 所以你大概率不需要再安装 zsh 了.

有关 terminal 和 shell 的配置, 可以参考另一篇文章 还没写好.

Package Manager

使用 macOS 的程序员大概率会使用 Homebrew, Homebrew 是一个 macOS 上的包管理器, 用于安装各种工具甚至是桌面应用. 不过使用 Homebrew 来安装桌面应用并不能带来很大的好处, 而且官网下载应用也不麻烦, 所以我并不使用 Homebrew 安装桌面应用.

按照官网的说明安装 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

CLI Tools

  • aria2: 支持多线程, 断点续传的轻量级下载工具.
  • fastfetch: 系统信息显示工具.
  • imagemagick: 图片处理工具, 用来转换格式, 压缩图片, 调节大小等.
  • hyperfine: 命令行工具的性能测试工具.
  • topgrade: 一行命令更新所有软件.

Fonts

对于 editor 和 IDE, 我选择使用 JetBrains Mono, 对于终端, 我使用 CaskaydiaCove Nerd Font.

可以使用 Homebrew 来安装:

brew install font-jetbrains-mono font-caskaydia-cove-nerd-font

SSH

这部分内容主要参考 GitHub Docs.

使用 SSH 可以远程登录服务器, 传输文件等等.

首先生成 SSH 密钥:

ssh-keygen -t ed25519

当提示输入 passphrase 时, 输入一个安全的密码, 提高密钥的安全性.

接着配置 SSH config 以便于快速登录, 编辑 ~/.ssh/config, 添加以下内容:

Host [NAME]
    HostName [SERVER_IP]
    Port [PORT]
    User [USERNAME]

然后将公钥添加到服务器上:

ssh-copy-id [NAME]

或者你可以手动编辑服务器上的 ~/.ssh/authorized_keys 文件, 将公钥添加到这个文件中.

最后, 使用 Apple Keychain 和 ssh-agent 来管理 SSH key 及其 passphrase, 以便于自动解锁 SSH key. 在 ~/.ssh/config 中添加以下内容:

Host *
    AddKeysToAgent yes
    UseKeychain yes

至此, 你可以使用 ssh [NAME] 来登录服务器了. 而且你只会在第一次登录时输入 passphrase, 之后就不需要再输入了.

SSH 服务器

在 Mac Mini 这种长期开机的机器上, 可以设置 SSH 服务器, 便于远程操作:

  • 开启 SSH 服务器: General > Sharing > Advanced > Remote Login: On

为了提高 SSH 服务器的安全性, 我们只允许公钥登录. 在 /etc/ssh/sshd_config 中添加以下内容以禁止密码登录:

PasswordAuthentication no
KbdInteractiveAuthentication no

然后重新开关 SSH 服务器来使设置生效.

最后添加你希望登录的用户公钥到 ~/.ssh/authorized_keys 中. 如果文件不存在, 按以下步骤手动创建:

mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Orbstack

Orbstack 是一个 Docker Desktop 的替代品. 用于运行和可视化的管理 Docker 容器. 也可以用于创建 Linux 虚拟机 (类似于 Windows 上的 WSL2). 而且好看.

  • Orbstack: 核心功能免费, 闭源, 官网下载安装.

VSCode

全能代码编辑器. 具体配置可以参考另一篇文章 还没写好.

科研工具

这部分主要介绍科研工作者常用的一些软件. 具体配置可以参考另一篇文章 还没写好.

LaTeX

使用 MacTeX 发行版配合 VSCode 的 LaTeX Workshop 插件来编写 LaTeX 文档.

文献管理

使用 Zotero 来管理文献.

Read More

按推荐程度排序:


Last modified on 2024-10-17

Comments Disabled.