mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-09 01:31:46 +00:00
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
const prompt = require('custom-electron-prompt');
|
|
|
|
const { setMenuOptions } = require('../../config/plugins');
|
|
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;
|
|
}
|
|
|
|
setMenuOptions('shortcuts', options);
|
|
}
|
|
|
|
// Helper function for keybind prompt
|
|
const kb = (label_, value_, default_) => ({ 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
|
|
}
|