Skip to content

Instantly share code, notes, and snippets.

@kochie
Created May 29, 2023 06:52
Show Gist options
  • Select an option

  • Save kochie/4b5f34680a08a6ff569196e70e5d48a0 to your computer and use it in GitHub Desktop.

Select an option

Save kochie/4b5f34680a08a6ff569196e70e5d48a0 to your computer and use it in GitHub Desktop.

Revisions

  1. kochie revised this gist May 29, 2023. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions main.js
    Original file line number Diff line number Diff line change
    @@ -7,6 +7,8 @@ function createWindow () {
    const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    backgroundMaterial: "acrylic",
    transparent: true,
    webPreferences: {
    preload: path.join(__dirname, 'preload.js')
    }
  2. kochie created this gist May 29, 2023.
    19 changes: 19 additions & 0 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'">
    <link href="./styles.css" rel="stylesheet">
    <title>Hello World!</title>
    </head>
    <body>
    <h1>Hello World!</h1>
    We are using Node.js <span id="node-version"></span>,
    Chromium <span id="chrome-version"></span>,
    and Electron <span id="electron-version"></span>.

    <!-- You can also require other files to run in this process -->
    <script src="./renderer.js"></script>
    </body>
    </html>
    43 changes: 43 additions & 0 deletions main.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,43 @@
    // Modules to control application life and create native browser window
    const { app, BrowserWindow } = require('electron')
    const path = require('path')

    function createWindow () {
    // Create the browser window.
    const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
    preload: path.join(__dirname, 'preload.js')
    }
    })

    // and load the index.html of the app.
    mainWindow.loadFile('index.html')

    // Open the DevTools.
    // mainWindow.webContents.openDevTools()
    }

    // This method will be called when Electron has finished
    // initialization and is ready to create browser windows.
    // Some APIs can only be used after this event occurs.
    app.whenReady().then(() => {
    createWindow()

    app.on('activate', function () {
    // On macOS it's common to re-create a window in the app when the
    // dock icon is clicked and there are no other windows open.
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
    })
    })

    // Quit when all windows are closed, except on macOS. There, it's common
    // for applications and their menu bar to stay active until the user quits
    // explicitly with Cmd + Q.
    app.on('window-all-closed', function () {
    if (process.platform !== 'darwin') app.quit()
    })

    // In this file you can include the rest of your app's specific main process
    // code. You can also put them in separate files and require them here.
    16 changes: 16 additions & 0 deletions package.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    {
    "name": "debonair-talk-shelter-fmony",
    "productName": "debonair-talk-shelter-fmony",
    "description": "My Electron application description",
    "keywords": [],
    "main": "./main.js",
    "version": "1.0.0",
    "author": "rober",
    "scripts": {
    "start": "electron ."
    },
    "dependencies": {},
    "devDependencies": {
    "electron": "24.4.0"
    }
    }
    17 changes: 17 additions & 0 deletions preload.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,17 @@
    /**
    * The preload script runs before. It has access to web APIs
    * as well as Electron's renderer process modules and some
    * polyfilled Node.js functions.
    *
    * https://www.electronjs.org/docs/latest/tutorial/sandbox
    */
    window.addEventListener('DOMContentLoaded', () => {
    const replaceText = (selector, text) => {
    const element = document.getElementById(selector)
    if (element) element.innerText = text
    }

    for (const type of ['chrome', 'node', 'electron']) {
    replaceText(`${type}-version`, process.versions[type])
    }
    })
    7 changes: 7 additions & 0 deletions renderer.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    /**
    * This file is loaded via the <script> tag in the index.html file and will
    * be executed in the renderer process for that window. No Node.js APIs are
    * available in this process because `nodeIntegration` is turned off and
    * `contextIsolation` is turned on. Use the contextBridge API in `preload.js`
    * to expose Node.js functionality from the main process.
    */
    3 changes: 3 additions & 0 deletions styles.css
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,3 @@
    /* styles.css */

    /* Add styles here to customize the appearance of your app */