如何让 dock 栏中只显示当前桌面上的应用

2023-01-14 11:29:56 +08:00
 AndyBlocker

用了一段时间还是很不习惯 Mac 这个 Dock 栏的逻辑,现在用 AltTab 解决了 Tab 切换程序的时候老是跑到另一个桌面去的问题,dock 栏只能隐藏起来眼不见心不烦。但是在另一个桌面也想打开新的浏览器 /其他在另一个桌面打开过的应用的时候就非要快捷键或者右键,有什么办法可以让每个桌面拥有自己的 dock 栏吗

1261 次点击
所在节点    macOS
6 条回复
lanfox
2023-01-14 13:14:25 +08:00
试试 uBar 这个 APP 。
GabrielleBellamy
2023-01-14 17:23:18 +08:00
最近在做相关功能,所以了解了不少。如果要每个桌面显示当前桌面打开的应用,就我所知,非常难实现。

ActiveDock 2 应该可以为每个单独的桌面添加独立的 dock (记不太清了,记得好像是)。但是之前用的时候觉得这个软件太卡顿,体验不好。Contexts 也是同类软件,但这个软件能不能单独显示当前桌面的窗口我也不太记得了。之前用的时候觉得这个软件还是不太好看,以及似乎太老了,更新动力不足。uBar 是我现在在使用的软件,但我刚看了一下,好像只能分显示屏显示,以及可以根据桌面分组,但是不能一个桌面显示一组。(或者我没摸到诀窍)

从代码角度来说,如果一个软件的窗口被最小化了,那么它会在任何桌面上都被认为是当前桌面的窗口。这样的结果是,没法用“获取当前桌面的活动窗口”的方法获取准确的窗口信息,因为其他桌面的最小化 /隐藏窗口也会被识别进来。如果你使用原生的 AppleScript 去命令就是这样的结果。另外从 10.8 开始 mac 就在 AppleScript 上移除了跳转桌面的变量,原生的命令如果不加上其他语言模拟动作,似乎就无法指令窗口在桌面之间移动。可以理解为,苹果不希望你这么做,它更希望你使用 UI 界面上那些拖拽的方式管理窗口。如果你希望移动窗口到某一个桌面,像 Amethyst 、Stay 这样的软件还有这样的功能。

如果是希望对窗口进行最大化或者最小化的操作,这个也比较困难,因为原生的 AppleScript 指令对一些窗口不管用,另外像 Finder 这样的软件在代码上与其他软件的最小化窗口有不一样的写法(其他窗口用“miniturize”,Finder 用的是“collapse”去命令)。但是像 Wins 这样的软件把一键隐藏全部窗口的功能做得很不错。如果你需要也可以试试。
AndyBlocker
2023-01-14 23:36:10 +08:00
@GabrielleBellamy 感谢,好详细的回答😂看来我只能继续习惯这个逻辑了
songquan
2023-01-15 08:26:18 +08:00
@lanfox 这个 app 确实很好,但是感觉开发者不是很积极了,目前有类似 docker 重叠、内存溢出等 bug ,一直没人修复,联系开发者也没有回复,macrumors 的论坛上本来有开发者答疑,近两年不知道为什么没有了……很可惜
ferrum
2023-01-16 18:29:47 +08:00
[SwitchGlass]( https://hypercritical.co/switchglass/) 可以做到这点。

但 macOS 的窗口管理 API 都比较旧,有些东西年久失修,有些私有 API 因为 Mac App Store 的问题而无法使用,所以在多桌面的情况下,这个 App 使用起来也不算特别流畅。

付费下载应用,谨慎下载。
AndyBlocker
2023-01-16 21:24:09 +08:00
@ferrum 看介绍好像确实是实现了只显示当前桌面活跃的应用,不过好像不是为了代替 dock 而是补充 dock 而设计的,感觉购买欲望不是很强😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/908865

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX