1

我试图在焦点窗口的标题栏中画一条红线。为此,我创建了类似于以下的代码(它是一个最小的示例):

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()

如果控制台位于显示屏的右半部分,它会在窗口外而不是在标题栏上画一条线。请参阅随附的屏幕截图。事实上,红线的位置和长度会随着控制台窗口的位置而变化,如果控制台位于显示屏的左半部分,则可以在标题栏上绘制所需的红线。我完全糊涂了。代码有什么问题?任何人都可以帮忙吗?

在此处输入图像描述

编辑

添加了更多照片。注意setStrokeWith(30)使用。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

2

照原样,代码会将栏窗口宽度放置在远离屏幕左侧的位置。看似固定的位置是因为窗口宽度相同。利用:

hs.geometry.point(f.x + f.w, f.y)

将第二个点放置在与第一个点的偏移上。

于 2017-09-13T00:15:09.667 回答