V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  tumk  ›  全部回复第 1 页 / 共 1 页
回复总数  20
补充一个我自己写的开源选择 LayoutKeeper ( GPL-3.0 完全免费): https://github.com/tumingke0/LayoutKeeper

平时外接显示器除了用 DDC 调亮度,最烦的是每次拔插显示器或者休眠唤醒后窗口和桌面( Space )全乱了。所以我把这几件事合在了一个轻量菜单栏工具里:
1. 拔插外接屏自动把窗口放回原来的显示器和所属桌面( Space ),Apple 芯片还支持按机身不同的 C 口自动切换显示器排列位置。
2. 支持键盘亮度键走 DDC 调鼠标所在屏幕的硬件亮度,刚更新的 v0.6.14 还加上了「外接屏亮度跟随内建屏幕自动变化」,房间变暗笔记本内屏调暗时,外接显示器也会按相同幅度自动跟降。
1 天前
回复了 omz 创建的主题 › macOS › macOS 26 外接显示器不显示亮度条
如果在 macOS 26 下主要想解决外接屏 DDC 调光、看清当前亮度百分比,以及让外接屏跟着内置屏幕环境光自动变暗,可以试试我写的开源小工具 LayoutKeeper (利益相关:我是作者,GPL-3.0 免费开源):
https://github.com/tumingke0/LayoutKeeper

它的主业是拔插外接屏后自动恢复窗口位置和所属桌面( Space ),同时内置了适配 macOS 26 的 Apple Silicon 硬件 DDC 亮度调节:
1. 按键盘亮度键会直接调鼠标所在屏幕的硬件亮度,屏幕顶部会弹出带具体百分比的提示条。
2. 刚发的 v0.6.14 加了「外接屏亮度跟随内建屏幕自动变化」开关,开启后 MacBook 内屏随环境光变暗或变亮时,外接屏会按相同幅度自动增减亮度,同时保留两块屏幕原本的亮度差。
@kkocdko 感谢反馈!之前发帖确实图省事让 AI 润色了文案,读着挺别扭,后面都自己老老实实手写了。另外主楼里提到的「按左右 USB-C 口自动切换显示器排列」,刚在 v0.6.12 里做出来了,可以直接在菜单栏检查更新试试。
@ffalex 哈哈,发力得看方向——全包的我没打算做。分屏这块 Rectangle / Moom 已经做到头了,我重做一遍没意义。

LayoutKeeper 就盯着拔插线那一下:位置、大小、连同所在的桌面一起回来。Stay 那类只管位置不管桌面的,我先把这个「半截子」做扎实。
@fds 你这脚本是真功夫——监控窗口和显示屏、位置不对自动挪位,还把 Slack 通知栏钉在左上角、别的窗口挡住就强行推开,hammerspoon 被你玩明白了。

不过咱俩是两条路:你那是「持续值守」,窗口乱了随时纠偏; LayoutKeeper 只管插拔线那一下,恢复完就退场。所以你这套用法它替代不了,也别试,试了反而添乱。
@bearbest 你那个按预设一键拉起多个应用再排好的思路挺实用。LayoutKeeper 不管启动应用,只把已经开着的窗口放回原位和原桌面,算是两个方向。台前调度这几年确实没怎么动过了。
@ffalex 据我所知没有一个能全包的。最接近的是 Moom 和 Rectangle Pro:能分屏,也能存布局、接上显示器时自动套用,但管的只是位置大小,窗口回不到原来的那个桌面。LayoutKeeper 反过来,不做分屏,只管后两件。我自己是 Rectangle 免费版 + LayoutKeeper 一起开,一个管平时摆,一个管插拔那一下,互不打架。
@kestrelBright 那 LayoutKeeper 能管。在外接屏上把远程桌面窗口摆好,保存一次布局(⌃⌥⌘S ),以后插上这块屏,它会把窗口放回原来的位置和桌面(跨桌面恢复要 macOS 26+)。注意,全屏模式的窗口会被跳过,所以远程桌面要用窗口模式。不想装软件的话,可以先在 Mission Control 设置里打开“显示器具有单独的空间”,关掉“根据最近的使用情况自动重新排列空间”,能缓解一部分。试了有问题欢迎开 Issue 。
@sunnywx 谢了,不过得泼盆冷水:Windows 版基本没戏。跨桌面恢复用的是 macOS 的 SkyLight 私有接口,DDC 调亮度走的也是 macOS 显示器接口,搬到 Windows 等于重写一遍。代码 GPL-3.0 开源着,思路随便拿去参考。
@kestrelBright 明白了,那是 Mac 上开着 Microsoft Remote Desktop 窗口、远端是 Windows 吧?如果乱跑的是 Mac 上的远程桌面窗口本身,LayoutKeeper 能按外接屏把它放回原位;如果乱的是 Windows 里面的窗口,那是远端系统在管,LayoutKeeper 管不到。方便的话描述下是哪边乱。
@shuianqingfeng 抱歉,三块屏现在确实不行——只支持一块外接屏,帖子里那条局限就是写给你这种读者的。你三块屏乱起来具体是什么样?有空扔个 Issue 描述下,我正在攒多屏的真实场景。
@shuianqingfeng 谢了,等反馈。
@kestrelBright 远程桌面这条路我还没专门测过,老实说。原理上它是认物理屏 EDID 的——你远程连回去的那台机器,如果接的是真外接屏,跟本地插拔走的是同一套逻辑;如果是无头虚拟屏,没有 EDID 可认,大概率认不出来。你那边是哪种,系统自带屏幕共享 / 向日葵 / ToDesk ?有空把场景扔个 GitHub Issue ,我照着测一下。
@zenoven 好,试完回来报 bug 也算贡献。遇到怪现象的话,GitHub 提 Issue 记得附上「设置 → 诊断 → 一键自检」的报告,我好复现。
17 天前
回复了 dinghow 创建的主题 › Apple › macOS 多显示器窗口位置记忆问题
各位好,我是个人开发者,分享一个自己写的小工具。

起因很简单:在家和公司各有一台外接显示器,每次拔掉再接上,或者合盖睡眠再唤醒,窗口就全挤回了笔记本屏幕,只能一个个拖回去,好几个桌面( Space )来回切。这个问题由来已久,不少人反映 macOS 15.4 之后更明显。

我试过一些现有方案:大多是付费闭源;有的要自己写 Hammerspoon 脚本;有的只恢复当前桌面的位置和大小,或者窗口跨桌面时放错。所以自己写了一个 LayoutKeeper 。

功能

按外接屏记住窗口布局。用显示器 EDID 区分屏幕,家里和公司的屏各存一份,不用手动选“场景”
重新接上屏幕时恢复,能把窗口放回原来的第几个 Mission Control 桌面,而不只是位置和大小( macOS 26+)
恢复模式三选一:关闭 / 先询问 / 自动。自动恢复会等屏幕和窗口稳定后再动
同一块屏幕可存多套命名版式(如“写代码”“开会”),菜单栏一键切换
每块屏幕保留最近 5 个历史版本,可重命名永久保留
恢复前可预览,每次恢复可一键撤销。每个窗口移动后回读确认,失败回滚。同名窗口分不清时让你选,不瞎猜
内置自动更新( Sparkle ),提供 Apple 芯片和 Intel 两个版本
不用注册账号,没有任何统计。唯一的联网是到 GitHub 检查更新,可关闭
局限(先说清楚)

需要 macOS 14+。跨桌面恢复需要 macOS 26+,依赖私有 API ,系统更新后可能失效。应用启动时会检测,缺失就自动关掉这项,同桌面内的恢复不受影响
目前只支持一块外接屏
访达窗口无法跨桌面移动。全屏、最小化的窗口会跳过
自签名、未公证,第一次打开请右键 → 打开。需要“辅助功能”权限
Intel 版本没有在真机上测过,有 Intel Mac 的朋友如果能试一下并反馈,非常感谢
GPL-3.0 开源,免费:

GitHub: https://github.com/tumingke0/LayoutKeeper
下载 v0.6.1: https://github.com/tumingke0/LayoutKeeper/releases/tag/v0.6.1
欢迎提意见和 bug ,回帖或开 Issue 都行。提 Issue 时附上 macOS 版本号和“设置 → 诊断 → 一键自检”的报告会很有帮助。自检报告不含窗口标题,只有短哈希。
楼主说的那种情况我太有共鸣了:你试过的 Stay 只能把窗口恢复到当前活跃的工作区、放不回原来的非活跃工作区,再加上拔掉/接上显示器时窗口全乱、还得一个个拖回去。就因为这个我自己写了个开源小工具 LayoutKeeper:按每块外接屏记住窗口布局,插上自动恢复,连窗口原来在第几个桌面( Space )都一起放回去,单屏和接外接屏时也会切到各自的布局。项目: https://github.com/tumingke0/LayoutKeeper ,今天刚发的介绍帖: https://www.v2ex.com/t/1248159 。先说清局限,免得你白试:目前只支持一块外接屏,你这种 3 台显示器的完整场景还覆盖不了;如果是笔记本 + 一块外接屏的用法,希望能帮上忙,也欢迎反馈多屏需求。
多看新闻肯定是有好处的,但是要注意新闻的质量,如果每天都是各种八卦,娱乐圈怎样怎样,看再多也没用,一定要选好新闻源,我之前也是这看看,那看看,很浪费时间,现在找到了一个不错的网站,你可以试试,直接把高质量的实时新闻聚集起来,就看这个网站,就知道各种信息了 https://redsnote.com/
qq: MzI0MDk4MjAwNg==
2018 年 2 月 6 日
回复了 jasonMakarov 创建的主题 › 程序员 › BlockChain 研发团队寻找有兴趣的伙计
wechat : weixintmk123 , 区块链小白,但是公司准备研究这个,提前接触研究下,谢谢
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1954 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 16:42 · PVG 00:42 · LAX 09:42 · JFK 12:42
♥ Do have faith in what you're doing.