diff --git a/src/electron/main.js b/src/electron/main.js index 334112cdf..9bb7d7ecf 100644 --- a/src/electron/main.js +++ b/src/electron/main.js @@ -11,6 +11,8 @@ const { autoUpdater } = require('electron-updater'); const { onFirstRunMaybe } = require('./first-run'); const path = require('node:path'); const log = require('electron-log'); +const fs = require('node:fs'); +const os = require('node:os'); log.initialize(); autoUpdater.logger = log; @@ -51,6 +53,11 @@ const contextMenu = Menu.buildFromTemplate([ accelerator: process.platform === 'darwin' ? 'Alt+Cmd+I' : 'Ctrl+Shift+I', }, + { + label: 'Take Screenshot', + accelerator: 'CommandOrControl+S', + click: () => takeScreenshot(), + }, { label: 'Reset App', click: () => { @@ -176,6 +183,18 @@ app.whenReady().then(async () => { }); }); +function takeScreenshot() { + const date = new Date(); + const dateStr = date.toISOString().replace(/:/g, '-'); + + const capturedPicFilePath = `${os.homedir()}/${dateStr}-gitify-screenshot.png`; + mb.window.capturePage().then((img) => { + fs.writeFile(capturedPicFilePath, img.toPNG(), () => + log.info(`Screenshot saved ${capturedPicFilePath}`), + ); + }); +} + function resetApp() { const cancelButtonId = 0;