create-tray-icon.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Create a simple tray icon for macOS
  2. // Run: node create-tray-icon.js
  3. const fs = require('fs');
  4. const { createCanvas } = require('canvas');
  5. function createTrayIcon() {
  6. // For macOS, we'll use a Template image (black and white)
  7. // Size should be 22x22 for Retina displays (@2x would be 44x44)
  8. const canvas = createCanvas(22, 22);
  9. const ctx = canvas.getContext('2d');
  10. // Clear canvas
  11. ctx.clearRect(0, 0, 22, 22);
  12. // Draw a simple "API" icon
  13. ctx.fillStyle = '#000000';
  14. ctx.font = 'bold 10px system-ui';
  15. ctx.textAlign = 'center';
  16. ctx.textBaseline = 'middle';
  17. ctx.fillText('API', 11, 11);
  18. // Save as PNG
  19. const buffer = canvas.toBuffer('image/png');
  20. fs.writeFileSync('tray-icon.png', buffer);
  21. // For Template images on macOS (will adapt to menu bar theme)
  22. fs.writeFileSync('tray-iconTemplate.png', buffer);
  23. fs.writeFileSync('[email protected]', buffer);
  24. console.log('Tray icon created successfully!');
  25. }
  26. // Check if canvas is installed
  27. try {
  28. createTrayIcon();
  29. } catch (err) {
  30. console.log('Canvas module not installed.');
  31. console.log('For now, creating a placeholder. Install canvas with: npm install canvas');
  32. // Create a minimal 1x1 transparent PNG as placeholder
  33. const minimalPNG = Buffer.from([
  34. 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A,
  35. 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52,
  36. 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
  37. 0x01, 0x03, 0x00, 0x00, 0x00, 0x25, 0xDB, 0x56,
  38. 0xCA, 0x00, 0x00, 0x00, 0x03, 0x50, 0x4C, 0x54,
  39. 0x45, 0x00, 0x00, 0x00, 0xA7, 0x7A, 0x3D, 0xDA,
  40. 0x00, 0x00, 0x00, 0x01, 0x74, 0x52, 0x4E, 0x53,
  41. 0x00, 0x40, 0xE6, 0xD8, 0x66, 0x00, 0x00, 0x00,
  42. 0x0A, 0x49, 0x44, 0x41, 0x54, 0x08, 0x1D, 0x62,
  43. 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
  44. 0x00, 0x01, 0x0A, 0x2D, 0xCB, 0x59, 0x00, 0x00,
  45. 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42,
  46. 0x60, 0x82
  47. ]);
  48. fs.writeFileSync('tray-icon.png', minimalPNG);
  49. console.log('Created placeholder tray icon.');
  50. }