Skip to content

Commit

Permalink
feature: add simple menuItem for control track to menu of tray
Browse files Browse the repository at this point in the history
control track:
  - play/pause
  - next track
  - previous track
  • Loading branch information
lagagain committed Jun 25, 2020
1 parent 08b635f commit 69ccfcd
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 18 deletions.
48 changes: 33 additions & 15 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { app, BrowserWindow, globalShortcut, ipcMain, systemPreferences, Tray } = require('electron')
const { app, BrowserWindow, globalShortcut, ipcMain, systemPreferences, Tray, Menu } = require('electron')
const notifier = require('node-notifier')
const path = require('path')
const windowStateKeeper = require('electron-window-state')
Expand Down Expand Up @@ -47,27 +47,45 @@ function createWindow () {

function globalShortcuts () {
// Play,Pause
globalShortcut.register('MediaPlayPause', () => {
console.log('play/pause')
mainWindow.webContents.executeJavaScript(`document.querySelector('.play-pause-button').click()`)
})
globalShortcut.register('MediaPlayPause', mediaPlayPause)
// Next
globalShortcut.register('MediaNextTrack', () => {
mainWindow.webContents.executeJavaScript(`document.querySelector('.next-button').click()`)
})
globalShortcut.register('MediaNextTrack', mediaNextTrack)
// Previous
globalShortcut.register('MediaPreviousTrack', () => {
mainWindow.webContents.executeJavaScript(`document.querySelector('.previous-button').click()`)
})
globalShortcut.register('MediaPreviousTrack', mediaPreviousTrack)
}

function mediaPlayPause () {
console.info('play/pause')
mainWindow.webContents.executeJavaScript(`document.querySelector('.play-pause-button').click()`)
}

function mediaNextTrack () {
console.info('play next track')
mainWindow.webContents.executeJavaScript(`document.querySelector('.next-button').click()`)
}

function mediaPreviousTrack () {
console.info('play previous track')
mainWindow.webContents.executeJavaScript(`document.querySelector('.previous-button').click()`)
}

function trayIcon () {
tray = new Tray(path.join(__dirname, `assets/icons/menu-standard-${trayTheme}.png`))
tray.setToolTip('MusicTube Player')
tray.on('click', () => {
if (mainWindow.isMinimized()) mainWindow.restore()
mainWindow.show()
})

const contextMenu = Menu.buildFromTemplate([
{ label: 'Open App',
type: 'normal',
click: () => {
if (mainWindow.isMinimized()) mainWindow.restore()
mainWindow.show()
}
},
{ label: 'Play/Pause', type: 'normal', click: mediaPlayPause },
{ label: 'Next', type: 'normal', click: mediaNextTrack },
{ label: 'Previous', type: 'normal', click: mediaPreviousTrack }
])
tray.setContextMenu(contextMenu)
}

function playStatus () {
Expand Down
9 changes: 6 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 69ccfcd

Please sign in to comment.