我总算是弄清楚了,似乎是 mac 窗口逻辑是这样的,你调整窗口,然后就会记住窗口大小,这是苹果的逻辑这很好。
但是,如果你是用 spotlight 打开一个你从未访问过的文件夹打开的窗口,这个窗口是没有记忆大小的,则这种的就会变成默认的很小很小的,700 多 x400 多?的大小???反正特别小,尤其 4k 屏幕这么点大小每次都要调整,简直了。。。尤其某些情况下那些 DS_Store 文件发生意外,也弄弄得窗口大小很乱
然后这个值似乎是写在 finder 的主程序而不是配置 plist ,甚至 plist 也没有给默认修改窗口大小的值。。。我还以为有只是我没找到,好像是真没有,反正我没找到。
既然没有,那就 hs 来解决吧,hs 算是泛用性最合适的了,各种情况都能用上。我是没找到好方法,你有么???
local RESIZE_MIN_WIDTH = 1400
local RESIZE_MIN_HEIGHT = 800
local RESIZE_TARGET_APP = "访达"
local function resizeTargetWindow(window)
if not window or not window:isVisible() then return end
local app = window:application()
if not (app and app:name() == RESIZE_TARGET_APP) then
return
end
local frame = window:frame()
local needsResize = false
if frame.w < RESIZE_MIN_WIDTH then
frame.w = RESIZE_MIN_WIDTH
needsResize = true
end
if frame.h < RESIZE_MIN_HEIGHT then
frame.h = RESIZE_MIN_HEIGHT
needsResize = true
end
if needsResize then
hs.alert.show("正在调整 '" .. RESIZE_TARGET_APP .. "' 窗口...")
window:setFrame(frame)
end
end
local finderResizeFilter = hs.window.filter.new(RESIZE_TARGET_APP)
finderResizeFilter:subscribe({hs.window.filter.windowCreated, hs.window.filter.windowFocused}, resizeTargetWindow)
1
jorneyr 5 天前
这个做法挺好
|