One solution to detect mouse movements with the moon and in terminal mode would be to use wxLua , which is often integrated into some implementations.
Basically, you call:
pt = wx.wxGetMousePosition()
io.write(pt.x) -- é a posição em x do ponteiro
io.write(pt.y) -- é a posição em y do ponteiro
Example
require("wx")
-- Loop que vai atualizar o mostrador da posição do mouse:
while true do
-- wx.wxGetMousePosition() retorna a posição do mouse na tela
pt = wx.wxGetMousePosition()
-- atualiza o mostrador:
io.write("x = " .. pt.x .. "\ny = " .. pt.y .. "\n")
os.execute("cls") -- ou os.execute("clear") em Unix
end