async function runOCRWithCursorPosition() {
const listener1 = await keyboard.listenCharacter(async (char) => {
console.debug('Hotkey pressed', 'response', char);
if (char === 's' || char === 'S') {
const position = await cursor.position();
// we have to convert position.x to integer
// ocrCoordinates only takes integers in our backdend.
leftParam = parseInt(position.x.toString(), 10);
topParam = parseInt(position.y.toString(), 10);
console.log('First time cursor position:', topParam, leftParam);
const listener2 = await keyboard.listenCharacter(async (char) => {
console.debug('Hotkey pressed', 'response', char);
if ((char === 'a' || char === 'A') && check === 1) {
const position1 = await cursor.position();
leftParam1 = parseInt(position1.x.toString(), 10);
topParam1 = parseInt(position1.y.toString(), 10);
console.log('Second time cursor Position:', topParam1, leftParam1);
const width = Math.abs(leftParam1 - leftParam);
const height = Math.abs(topParam1 - topParam);
const result = await screen.ocr(ocrCoordinates);
console.log('OCR Results: ');
console.log(JSON.stringify(result));
console.log('result: ', rebuildImage(result));
writeWhisper(`result`, rebuildImage(result));
console.log('got OCR coordinates:');
console.log('performing ocr with coordinates...');