Hammerspoon:在 window 的标题栏中画一条线
Hammerspoon: drawing a line in the title bar of a window
我正在尝试在焦点 window 的标题栏中画一条红线。为此,我创建了类似于以下的代码(这是一个最小的示例):
function foo()
f = hs.window.focusedWindow():frame()
line = hs.drawing.line(hs.geometry.point(f.x, f.y),hs.geometry.point(f.w,f.y))
line:setStrokeWidth(10)
line:setStrokeColor(hs.drawing.color.red)
line:show()
end
如果我将其输入 Hammerspoon 控制台,然后
foo()
它在 window 之外绘制一条线,而不是在标题栏上,如果控制台位于显示器的右半部分。请参阅随附的屏幕截图。事实上,红线的位置和长度是变化的,取决于Console的位置window,如果Console在显示的左半边,就可以在标题栏上画出想要的红线.我完全糊涂了。代码有什么问题?
有人可以帮忙吗?
编辑
添加了更多照片。请注意,使用 setStrokeWith(30)
。
照原样,代码会将栏放置在距屏幕左侧 windows 宽度的位置。看似固定的位置是因为window宽度相同。使用:
hs.geometry.point(f.x + f.w, f.y)
将第二个点放置在第一个点的偏移量上。
我正在尝试在焦点 window 的标题栏中画一条红线。为此,我创建了类似于以下的代码(这是一个最小的示例):
function foo()
f = hs.window.focusedWindow():frame()
line = hs.drawing.line(hs.geometry.point(f.x, f.y),hs.geometry.point(f.w,f.y))
line:setStrokeWidth(10)
line:setStrokeColor(hs.drawing.color.red)
line:show()
end
如果我将其输入 Hammerspoon 控制台,然后
foo()
它在 window 之外绘制一条线,而不是在标题栏上,如果控制台位于显示器的右半部分。请参阅随附的屏幕截图。事实上,红线的位置和长度是变化的,取决于Console的位置window,如果Console在显示的左半边,就可以在标题栏上画出想要的红线.我完全糊涂了。代码有什么问题? 有人可以帮忙吗?
编辑
添加了更多照片。请注意,使用 setStrokeWith(30)
。
照原样,代码会将栏放置在距屏幕左侧 windows 宽度的位置。看似固定的位置是因为window宽度相同。使用:
hs.geometry.point(f.x + f.w, f.y)
将第二个点放置在第一个点的偏移量上。