Book Image

Electron Projects

By : Denys Vuika
Book Image

Electron Projects

By: Denys Vuika

Overview of this book

The Electron framework allows you to use modern web technologies to build applications that share the same code across all operating systems and platforms. This also helps designers to easily transition from the web to the desktop. Electron Projects guides you through building cross-platform Electron apps with modern web technologies and JavaScript frameworks such as Angular, React.js, and Vue.js. You’ll explore the process of configuring modern JavaScript frameworks and UI libraries, real-time analytics and automatic updates, and interactions with the operating system. You’ll get hands-on with building a basic Electron app, before moving on to implement a Markdown Editor. In addition to this, you’ll be able to experiment with major JavaScript frameworks such as Angular and Vue.js, discovering ways to integrate them with Electron apps for building cross-platform desktop apps. Later, you’ll learn to build a screenshot snipping tool, a mini-game, and a music player, while also gaining insights into analytics, bug tracking, and licensing. You’ll then get to grips with building a chat app, an eBook generator and finally a simple digital wallet app. By the end of this book, you’ll have experience in building a variety of projects and project templates that will help you to apply your knowledge when creating your own cross-platform applications.
Table of Contents (12 chapters)

Registering global keyboard shortcuts

Now that the minimal system tray menu is up and running, let's provide keyboard support. You can use any key combination of your choice; for example, try Cmd + Alt + Shift + S for macOS or Ctrl + Alt + Shift + S for Linux and Windows. Let's get started:

  1. First, import globalShortcut from the Electron framework, as shown in the following code:
      const { app, BrowserWindow, Menu, Tray, 
globalShortcut } = require('electron');
  1. As you already know, you can provide and render keyboard combinations by utilizing the accelerator property of the menu item:
      function createTray() {
const iconPath = path.join(__dirname, 'assets/icon.png');
tray = new Tray(iconPath);

const contextMenu = Menu.buildFromTemplate([
{
label: 'Show',
type...