全部工具

为上下排列的多屏桌面而做

DockPin

在上方屏幕工作,Dock 也该在那里。

外接屏在上,MacBook 在下?DockPin 帮助原生 macOS Dock 留在你选好的上方屏幕,其他屏幕也能就近切应用。重新接屏或唤醒后,自动恢复保存的目标,不必再选一遍。

可下载 · v0.2.1 · Apple Silicon · macOS 13+

未经过 Apple 公证,首次打开可能需在「隐私与安全性」允许。

真实应用截图。

位置示意取自项目演示,非应用截图。

你选好的目标屏幕
原生 macOS Dock 留在这里。
其他屏幕
需要时,悬停唤出运行应用栏。

从这样的桌面开始

工作在上面,Dock 却跑到了下面。

把 Dock 放在左侧或右侧,macOS 本来就支持。真正别扭的是上下排列时,想在上方屏幕底部找到 Dock,鼠标却直接穿到了下面的屏幕。DockPin 重点照顾的就是这个场景:帮助原生 Dock 留在你实际工作的那块屏幕。

让原生 Dock 有个固定去处。

将上方外接屏设为目标显示器,Dock 边缘选择底部。DockPin 利用这条边缘上仍然外露的部分唤出原生 Dock,并保护其他屏幕的外边缘,减少 Dock 被它们抢走的情况。

在另一块屏幕,也能就近切应用。

开启「在其他显示器显示运行应用栏」。鼠标在非目标屏幕底部内侧短暂停留,应用栏就会出现;点击图标激活应用,移开后自动隐藏。

上下屏之间,照常穿行。

上下两块屏幕相接的共享边界保持可穿透,边缘控制只作用于外露部分。你可以调整边缘范围和穿透延迟,也可以按住 Option 临时绕过目标边缘的限制。

重新接上屏幕,不必再选一遍。

带着 MacBook 去开会,回到桌前接上外屏,不该菜单还勾着上方屏幕,Dock 却留在笔记本上。0.2.1 会记住断开前的目标,暂时使用可用屏幕;重接外屏或唤醒后,再自动恢复保存的目标位置。

使用前,你可能还想知道

重新接屏后,还要再选一次目标吗?

0.2.1 会保留断开前选好的目标,临时使用可用屏幕。重接外屏或唤醒后,会等待屏幕就绪并重新应用保存的目标;所选边缘仍需有外露部分。

每块屏幕只显示在这块屏幕运行的应用吗?

v0.2.1 还不是这样。各屏应用栏使用同一份整台 Mac 的运行应用列表;点击图标会激活应用,不会把窗口搬到点击所在的屏幕。

上方屏幕底部完全被挡住,也能固定 Dock 吗?

目标边缘完全被覆盖仍受 macOS 能力限制。DockPin 利用的是实际外露的边缘;如果所选边缘被另一块屏幕完全覆盖,就可能无法可靠唤出原生 Dock。

另一块屏幕上,是第二套系统 Dock 吗?

另一块屏幕上是 DockPin 的轻量运行应用切换栏。原生 Dock 留在目标屏幕,额外应用栏悬停时出现、移开后隐藏,不占用桌面可用区域。

为什么需要辅助功能权限?

DockPin 通过 Quartz 事件监听处理显示器边缘的鼠标行为,不修改系统文件,也不注入 Dock。可选应用栏读取本机运行应用列表,不存储或传输这份列表。

一个有意的选择

原生 Dock 留一处,其他屏幕少一点来回。

熟悉的系统 Dock 留在你选好的屏幕,其他屏幕只补上轻量的应用切换入口。DockPin 常驻菜单栏,通过辅助功能权限处理鼠标边缘,不修改系统文件、不注入 Dock,也不使用私有 API。可选应用栏读取的运行应用列表留在本机;退出后,边缘控制停止,Dock 交回系统处理。

适合你吗?

尤其适合外接屏在上、MacBook 在下,且上方屏幕底部仍有部分外露的布局。也适合希望原生 Dock 有固定去处、其他屏幕能就近切换应用的多屏用户。需要 macOS 13 或更新版本与辅助功能权限。

当前功能

  • 帮助原生 Dock 留在指定显示器,重点照顾外接屏在上、MacBook 在下的布局。
  • 目标屏幕断开时保留原选择,临时使用可用屏幕;重接、调整排列或唤醒后自动恢复 Dock 的目标位置。
  • 利用目标边缘的外露部分唤出 Dock,保护其他屏幕的外边缘,减少系统 Dock 被抢走。
  • 非目标屏幕可开启悬停唤出的运行应用栏,点击图标激活应用,不挤占桌面空间。
  • 上下屏共享边界保持可穿透;边缘范围与延迟可调,Option 可绕过目标边缘限制。
  • 菜单栏控制、首次权限引导、登录自启动,以及英文和简体中文界面。

系统要求

  • v0.2.1 下载包面向 Apple Silicon,最低目标 macOS 13;需要辅助功能权限处理鼠标边缘。
  • 要在上方屏幕底部使用原生 Dock,所选边缘需有外露部分,请先检查显示器排列。
  • 源码构建需 Xcode Command Line Tools 与 Swift 5.9 或更新版本。

开始使用

  1. 下载 Apple Silicon 版 DockPin.zip,解压后将 DockPin.app 放入「应用程序」。升级时先退出旧版,替换应用后重新打开。
  2. 打开 DockPin,授予辅助功能权限。首次如被拦截,按 README 从「隐私与安全性」正常允许;辅助功能权限未生效时重新打开应用。
  3. 外接屏在上、MacBook 在下时,将外接屏设为「目标显示器」,Dock 边缘选择「底部」。
  4. 从 40%「边缘范围」和 0.20 秒「穿透延迟」开始,再按自己的布局微调。
  5. 按需开启「在其他显示器显示运行应用栏」。在其他屏幕底部内侧短暂停留,点击运行应用图标即可切换。
  6. 重新接上显示器或唤醒 Mac 后,稍等屏幕就绪,DockPin 会重新应用保存的目标,无需手动重选。
阅读完整文档

当前限制

  • macOS 没有公开 API 可直接将 Dock 指定给某个屏幕。DockPin 在运行时协助管理它的位置,效果取决于屏幕排列。
  • 如果目标边缘完全被另一块屏幕覆盖,可能无法可靠唤出原生 Dock;共享边界仍保持可穿透。
  • 自动恢复仍需辅助功能权限和可用的目标边缘,重试次数有限,不能强制适配所有屏幕排列。
  • 可选应用栏显示整台 Mac 的运行应用,不按窗口所在屏幕筛选,也不会复制出多套独立的系统 Dock。
  • 运行应用栏是轻量切换器,不提供固定启动项、文件夹、废纸篓等完整原生 Dock 功能。
  • v0.2.1 安装包采用临时签名,没有 Developer ID 签名或 Apple 公证;此下载不含 Intel 构建。

项目演示