UNPKG

node-mac-recorder

Version:

Native macOS screen recording package for Node.js applications

86 lines (71 loc) • 3.33 kB
#!/usr/bin/env node const WindowSelector = require('./window-selector'); async function testDefaultAutoBringToFront() { console.log('šŸ” Default Auto Bring-To-Front Test'); console.log('====================================\n'); const selector = new WindowSelector(); try { console.log('šŸš€ Starting window selector with DEFAULT auto bring-to-front...'); console.log('(Auto bring-to-front is now enabled by default)\n'); console.log('šŸ“‹ Instructions:'); console.log(' • Move cursor over different windows'); console.log(' • Each window should automatically come to front'); console.log(' • Only the specific window should focus (not whole app)'); console.log(' • Press D to disable auto mode'); console.log(' • Press E to re-enable auto mode'); console.log(' • Press Ctrl+C to exit\n'); let windowCount = 0; let lastWindowId = null; selector.on('windowEntered', (window) => { if (window.id !== lastWindowId) { windowCount++; console.log(`[${windowCount}] šŸŽÆ WINDOW: ${window.appName} - "${window.title}"`); console.log(` šŸ“ Position: (${window.x}, ${window.y})`); console.log(` šŸ“ Size: ${window.width} Ɨ ${window.height}`); console.log(` šŸ” Should auto-focus THIS specific window only!`); lastWindowId = window.id; } }); selector.on('windowLeft', (window) => { console.log(`🚪 Left: ${window.appName} - "${window.title}"\n`); }); // Keyboard controls const readline = require('readline'); readline.emitKeypressEvents(process.stdin); if (process.stdin.isTTY) { process.stdin.setRawMode(true); } process.stdin.on('keypress', async (str, key) => { if (key.name === 'd') { console.log('\nšŸ”„ Disabling auto bring-to-front...'); selector.setBringToFrontEnabled(false); console.log(' āœ… Auto mode OFF - Windows will not auto-focus'); } else if (key.name === 'e') { console.log('\nšŸ”„ Enabling auto bring-to-front...'); selector.setBringToFrontEnabled(true); console.log(' āœ… Auto mode ON - Windows will auto-focus again'); } else if (key.ctrl && key.name === 'c') { console.log('\n\nšŸ›‘ Stopping...'); console.log(`šŸ“Š Total windows encountered: ${windowCount}`); await selector.cleanup(); process.exit(0); } }); await selector.startSelection(); // Status update every 10 seconds setInterval(() => { console.log(`\nā±ļø Status: ${windowCount} windows encountered so far`); console.log(' (Continue moving cursor over windows to test auto-focus)'); }, 10000); // Keep running setInterval(() => {}, 1000); } catch (error) { console.error('āŒ Error:', error.message); console.error(error.stack); } finally { await selector.cleanup(); } } if (require.main === module) { testDefaultAutoBringToFront(); }