I am trying to draw a red line in the title bar of a focused window. For this, I created code similar to the following (it is meant to be a minimal example):
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
If I enter this into the Hammerspoon Console, followed by
foo()
it draws a line outside the window, not on the title bar, if the Console is placed in the right half of the display. Please see the attached screenshot. In fact, the position and length of the red line change, depending on the location of the Console window, and the desired red line can be drawn on the title bar, if the Console is in the left half of the display. I totally got confused. What is wrong with the code? Can anyone help?
EDIT
More photos are added. Note that setStrokeWith(30)
is used.
As is, the code will place the bar windows width away from the left side of the screen. The seemingly fixed position is because the window width is the same. Use:
To place the second point as on offset from the first.