惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
Blog — PlanetScale
Blog — PlanetScale
Microsoft Security Blog
Microsoft Security Blog
A
About on SuperTechFans
Vercel News
Vercel News
L
LangChain Blog
B
Blog RSS Feed
Y
Y Combinator Blog
IT之家
IT之家
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
V
V2EX
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
有赞技术团队
有赞技术团队
D
Docker
V
Visual Studio Blog
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
月光博客
月光博客

LanYunのBlog

解决macOS全屏模式下某些情况显示原始鼠标指针的问题 Yarn从Classic迁移到Modern nginx自编译 用santa对二进制进行监控和授权 ESXI 8.0安装黑群晖DSM 7.x openwrt编译过程记录 编译monero For macOS ARM 自建busuanzi不蒜子平台统计平台 浅记博客更新日志 (机翻)Kubo配置文件 修改brew services中服务的启动参数 技术杂记📝 解决Surge模块不能同步问题 为Arch Linux配置邮件服务 自编译NutClient-ESXI,更改邮件逻辑 解决ESXI和群晖使用SSH密钥登录问题 为J4125软路由ESXI中群晖提供UPS服务 在arch linux上搭建rustdesk server 解决虚拟机扩容中GPT PMBR大小不符问题 搭建Tuic V5 优雅地为macOS提供python多版本的支持 修复root路径下文件权限问题 解决macOS 14上利用Whisky运行steam时有关问题 在macOS中用PhpStorm配置Xdebug调试 利用CloudFlare Workers快速自建一个IP获取器 如何自动续期证书? 从0开始速配VPS用于网站等 搭建一个基于ChatGPT的QQ机器人(Yunzai-Bot) For Mac 010 Editor For Mac 13.0.1 Crack 破解 关于部署Cloudflare Zero Trust遇到的问题浅记录📝
优化macOS Dock栏的显示与隐藏
LanYun · 2025-07-27 · via LanYunのBlog

备注: 此文章可能并不能很好地解决问题,推荐看更新的文章(修复某些游戏在macOS上的全屏相关缺陷)

前言

我在全新macOS Tahoe 26系统并在外接显示器体验过程中,dock栏(中文名:程序坞,后续不再解释)中的应用保留比较少,同时dock栏大小调整的比较大,虽然看着很舒服了,但是所占的空间可不小,我希望dock栏能智能显示或隐藏,比如在使用非全屏大窗口应用(比如:系统设置,访达等)时(即窗口未与dock栏区域接触{只要窗口底边>=dock栏最上边的纵坐标就算接触})dock栏能自动显示,否则自动隐藏。在互联网中发现有个应用(intellidock)能基本满足我的需求,但它在我这个系统中不能正常工作(能自动隐藏,但不能自动显示),故本人写一个swift二进制程序来实现需求。

已知bug/macOS特性:

  1. (这其实并非我编写程序的bug,而是macOS特性,我有一些方法可以解决/完善,但都不够优雅(主要是有点复杂+懒),没想好怎么修算比较好)
    在 Dock 显示状态下,当点击一个最小化的全覆盖屏幕窗口(minimized to Dock),macOS 会尝试让窗口不遮挡 Dock,所以系统会自动调整窗口位置,把它“挤”在 Dock 上方,下边界会被强制上移。

目前不足:

  1. (✅已优化,采用池管理)当前程序性能开销总体来说非常低了,但依然还有改进的空间,比如:避免频繁注册/卸载事件。
  2. (✅已优化,采用私有API)采用AppleScript来控制 Dock 自动隐藏控制开销还是有点高
  3. (目前没能力做.)无GUI可视化
  4. (懒的搞.)目前只对单屏幕有优化模式
  5. 单屏幕时,程序会缓存dock栏高度,这会导致当dock栏高度变化时不能及时处理
  6. 程序被kill时应该发出通知并启动一个新进程fork

本程序优点:

  1. 速度非常快,性能开销非常低
  2. 命令行运行,支持不同的参数
  3. 兼容性极好,支持不同macOS

部署

建议懒人(比如我😂)使用此方式(自定义用户可作为参考).

将下面命令在 终端 中运行.

1
2
3
4
5
6
7
8
9
user=$(whoami);
eval savepath="/Users/${user}/Documents/SmartDock";mkdir -p $savepath;
download_path='https://lanyun.pages.dev/download_file/SmartDock';
urls=("${download_path}/SmartDock" "${download_path}/SmartDock运行状态切换.command");
for url in "${urls[@]}"; do
wget -P "${savepath}" "${url}" || curl -L -o "${savepath}/$(basename "${url}")" "${url}"
done
sed -i '' "s/user=\$(whoami)/user='${user}'/g" "${savepath}/SmartDock运行状态切换.command";chmod -R 777 "${savepath}";
open "${savepath}"

启动或停止双击 SmartDock运行状态切换.command 文件即可.

备注:

你需要在 系统设置 中 隐私与安全性 中 辅助功能 中添加 终端 应用(需要给权限)

默认使用参数 --fast-pid :同一进程的不同窗口跳过聚焦切换处理,如果不需要请自行修改 SmartDock运行状态切换.command 脚本

如果下载失败,你可以选择通过代理下载或者将 lanyun.pages.dev 替换为 lanyundev.com 并在浏览器的无痕模式中进行下载。

手动在无痕模式文件下载链接:SmartDock SmartDock运行状态切换.command

可以手动验证一下一些文件的完整性,避免因网络缓存等原因导致与预期不符。

1
2
3
sha512sum *
32b444b5e8c055c7904961cc04a84e4858bf11b3b0be78f61a51cb82372b0a751fbe79fe7658ecf86cd0980f2258fef2bd47babb1c57460128f64a15cac75548 SmartDock
cb79465313d4bfd41e28c8515d8368360caa8621f0b5b2e102f6fa81fb7ae6779fb6b6b1403dadb199d781f73ed76c497220989bafdc60b8410f962de49dea3c SmartDock运行状态切换.command

更新说明

优化不足1和2.

  • WeChat

    WeChat

  • AliPay

    AliPay