Currently, all reports are cleared when macro exits, which means that you will have to use active waiting.
Something like:
ifHold final holdKey LS
if $running setVar running 0
else {
pressKey LS
setVar running 1
while ($running) delayUntil 10
}
But admittedly this is a recurring usecase and the above is an absurdly hackish way to do it → will implement a better variant → Global macro report states · Issue #1264 · UltimateHackingKeyboard/firmware · GitHub .