mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 18:41:47 +00:00
54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
const { setOptions } = require("../../config/plugins");
|
|
const prompt = require("custom-electron-prompt");
|
|
const promptOptions = require("../../providers/prompt-options");
|
|
|
|
module.exports = (win, options) => [
|
|
{
|
|
label: "Set Global Song Controls",
|
|
click: () => promptKeybind(options, win)
|
|
},
|
|
{
|
|
label: "Override MediaKeys",
|
|
type: "checkbox",
|
|
checked: options.overrideMediaKeys,
|
|
click: item => setOption(options, "overrideMediaKeys", item.checked)
|
|
}
|
|
];
|
|
|
|
function setOption(options, key = null, newValue = null) {
|
|
if (key && newValue !== null) {
|
|
options[key] = newValue;
|
|
}
|
|
|
|
setOptions("shortcuts", options);
|
|
}
|
|
|
|
// Helper function for keybind prompt
|
|
const kb = (label_, value_, default_) => { return { value: value_, label: label_, default: default_ }; };
|
|
|
|
async function promptKeybind(options, win) {
|
|
const output = await prompt({
|
|
title: "Global Keybinds",
|
|
label: "Choose Global Keybinds for Songs Control:",
|
|
type: "keybind",
|
|
keybindOptions: [ // If default=undefined then no default is used
|
|
kb("Previous", "previous", options.global?.previous),
|
|
kb("Play / Pause", "playPause", options.global?.playPause),
|
|
kb("Next", "next", options.global?.next)
|
|
],
|
|
height: 270,
|
|
...promptOptions()
|
|
}, win);
|
|
|
|
if (output) {
|
|
if (!options.global) {
|
|
options.global = {};
|
|
}
|
|
for (const { value, accelerator } of output) {
|
|
options.global[value] = accelerator;
|
|
}
|
|
setOption(options);
|
|
}
|
|
// else -> pressed cancel
|
|
}
|