mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-14 20:01:47 +00:00
Refactor tray to use provider + play/pause on click
This commit is contained in:
@ -12,6 +12,7 @@ const defaultConfig = {
|
|||||||
startAtLogin: false,
|
startAtLogin: false,
|
||||||
disableHardwareAcceleration: false,
|
disableHardwareAcceleration: false,
|
||||||
restartOnConfigChanges: false,
|
restartOnConfigChanges: false,
|
||||||
|
trayClickPlayPause: false,
|
||||||
},
|
},
|
||||||
plugins: {
|
plugins: {
|
||||||
// Enabled plugins
|
// Enabled plugins
|
||||||
|
|||||||
9
menu.js
9
menu.js
@ -116,6 +116,15 @@ const mainMenuTemplate = (win) => [
|
|||||||
config.set("options.appVisible", false);
|
config.set("options.appVisible", false);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{ type: "separator" },
|
||||||
|
{
|
||||||
|
label: "Play/Pause on click",
|
||||||
|
type: "checkbox",
|
||||||
|
checked: config.get("options.trayClickPlayPause"),
|
||||||
|
click: (item) => {
|
||||||
|
config.set("options.trayClickPlayPause", item.checked);
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{ type: "separator" },
|
{ type: "separator" },
|
||||||
|
|||||||
24
tray.js
24
tray.js
@ -4,7 +4,7 @@ const { Menu, nativeImage, Tray } = require("electron");
|
|||||||
|
|
||||||
const config = require("./config");
|
const config = require("./config");
|
||||||
const { mainMenuTemplate } = require("./menu");
|
const { mainMenuTemplate } = require("./menu");
|
||||||
const { clickInYoutubeMusic } = require("./utils/youtube-music");
|
const getSongControls = require("./providers/song-controls");
|
||||||
|
|
||||||
// Prevent tray being garbage collected
|
// Prevent tray being garbage collected
|
||||||
let tray;
|
let tray;
|
||||||
@ -15,6 +15,7 @@ module.exports.setUpTray = (app, win) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const { playPause, next, previous } = getSongControls(win);
|
||||||
const iconPath = path.join(__dirname, "assets", "youtube-music-tray.png");
|
const iconPath = path.join(__dirname, "assets", "youtube-music-tray.png");
|
||||||
let trayIcon = nativeImage.createFromPath(iconPath).resize({
|
let trayIcon = nativeImage.createFromPath(iconPath).resize({
|
||||||
width: 16,
|
width: 16,
|
||||||
@ -24,35 +25,30 @@ module.exports.setUpTray = (app, win) => {
|
|||||||
tray.setToolTip("Youtube Music");
|
tray.setToolTip("Youtube Music");
|
||||||
tray.setIgnoreDoubleClickEvents(true);
|
tray.setIgnoreDoubleClickEvents(true);
|
||||||
tray.on("click", () => {
|
tray.on("click", () => {
|
||||||
win.isVisible() ? win.hide() : win.show();
|
if (config.get("options.trayClickPlayPause")) {
|
||||||
|
playPause();
|
||||||
|
} else {
|
||||||
|
win.isVisible() ? win.hide() : win.show();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const trayMenu = Menu.buildFromTemplate([
|
const trayMenu = Menu.buildFromTemplate([
|
||||||
{
|
{
|
||||||
label: "Play/Pause",
|
label: "Play/Pause",
|
||||||
click: () => {
|
click: () => {
|
||||||
clickInYoutubeMusic(
|
playPause();
|
||||||
win,
|
|
||||||
"#left-controls > div > paper-icon-button.play-pause-button.style-scope.ytmusic-player-bar"
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "Next",
|
label: "Next",
|
||||||
click: () => {
|
click: () => {
|
||||||
clickInYoutubeMusic(
|
next();
|
||||||
win,
|
|
||||||
"#left-controls > div > paper-icon-button.next-button.style-scope.ytmusic-player-bar"
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "Previous",
|
label: "Previous",
|
||||||
click: () => {
|
click: () => {
|
||||||
clickInYoutubeMusic(
|
previous();
|
||||||
win,
|
|
||||||
"#left-controls > div > paper-icon-button.previous-button.style-scope.ytmusic-player-bar"
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,8 +0,0 @@
|
|||||||
const clickInYoutubeMusic = (win, selector) => {
|
|
||||||
win.webContents.executeJavaScript(
|
|
||||||
`document.querySelector("${selector}").click();`,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = { clickInYoutubeMusic };
|
|
||||||
Reference in New Issue
Block a user