07.12.2025 | 00:22
www.hammerspoon.org
Ne vidim da je itko spominjao Hammerspoon ovdje ranije pa bih se pohvalio da sam si riješio stalnu potragu za mišem na jednom od tri ekrana kako imam namješteno doma na svom Macu.
Kako mi ekrani nisu jednakih dimenzija - a jedan stoji vertikalno - miš mi stalno zapinje negdje na nekom od rubova i ne želi prijeći na susjedni ekran jer su tako zaključili pametni ljudi u Appleu da to nije dobro.
A to znači da konstantno imam potragu za mišem, gdje li je sad?
E pa, prvo sam krenuo raditi svoj app ali je to zapelo jer je stvar radila samo dok je program aktivan, bilo u Terminalu bilo u Xcodu. Kad sam ga dodao preko pliste u LaunchAgents zapeo je u nekom od sigurnosnih pravila i nikako nije funkcionirao. Opisao sam problem ChatGPTu pa mi je predložio Hammerspoon kao savršeno riješenje.
Ok, upogoniti ga nije baš lako jer upute nemaju veze s realnošću, kad se pokrene kao da se nije pokrenuo. Ne postoji u Docku, ne može se do njega sa Command-Tab već se eventualo pojavi Console prozor u kojem se može par stvari.
Malo sam proučavao upute ali je svega bilo previše pa sam se vratio u ChatGPT.
Za početak sam ubacio skriptu koju mi je ovaj napisao a onda sam nabasao i na jednu dodatnu stvar na njihovim stranicama i dodao i taj dio. Uglavnom sad imam ovo:
Command + Alt + Ctrl + MouseClick pozicionira miša nasred glavnog ekrana.
Command + Alt + Ctrl + Left Key pomakne aktivni prozor na lijevi ekran
Command + Alt + Ctrl + Right Key pomakne aktivni prozor na desni ekran
Možda postoje i druge aplikacije za ovo ali ako nekom treba...
Skine se Hammerspoon i ubaci u /Applications
Stvori se skripta "init.lua" i spremi kao ~/.hammerspoon/init.lua
Skine se i raspakira
github.com/Hammerspoon/Spoons/raw/master...ftAndRight.spoon.zip pa metne u ~/.hammerspoon/Spoons folder
A sadržaj init.lua je ovaj:
-- Move mouse to the center of the main screen when CMD+CTRL+ALT + Left Click
mouseCenter = hs.eventtap.new({hs.eventtap.event.types.leftMouseDown}, function(event)
local mods = event:getFlags()
if mods.cmd and mods.ctrl and mods.alt then
local screen = hs.screen.mainScreen()
local frame = screen:fullFrame()
local center = hs.geometry.point(
frame.x + frame.w / 2,
frame.y + frame.h / 2
)
hs.mouse.setAbsolutePosition(center)
return true -- swallow click if you want, or return false to let the click through
end
return false
end)
mouseCenter:start()
hs.loadSpoon("WindowScreenLeftAndRight")
spoon.WindowScreenLeftAndRight:bindHotkeys(spoon.WindowScreenLeftAndRight.defaultHotkeys)
spoon.WindowScreenLeftAndRight.defaultHotkeys({
left = { {"ctrl", "alt", "cmd"}, "Left" },
right = { {"ctrl", "alt", "cmd"}, "Right" }
})