Option to start at login

This commit is contained in:
TC
2020-07-12 21:05:34 +02:00
parent eec6993b95
commit 408aa9bb59
3 changed files with 29 additions and 5 deletions

View File

@ -12,6 +12,7 @@ const {
isAppVisible,
isTrayEnabled,
store,
startAtLogin,
} = require("./store");
const { fileExists, injectCSS } = require("./plugins/utils");
const { isTesting } = require("./utils/testing");
@ -170,6 +171,11 @@ app.on("ready", () => {
mainWindow = createMainWindow();
setUpTray(app, mainWindow);
// Autostart at login
app.setLoginItemSettings({
openAtLogin: startAtLogin(),
});
if (!is.dev() && autoUpdate()) {
autoUpdater.checkForUpdatesAndNotify();
autoUpdater.on("update-available", () => {

16
menu.js
View File

@ -1,4 +1,5 @@
const { app, Menu } = require("electron");
const is = require("electron-is");
const { getAllPlugins } = require("./plugins/utils");
const {
@ -9,6 +10,7 @@ const {
isAppVisible,
isTrayEnabled,
setOptions,
startAtLogin,
} = require("./store");
const mainMenuTemplate = [
@ -40,6 +42,20 @@ const mainMenuTemplate = [
setOptions({ autoUpdates: item.checked });
},
},
...(is.windows() || is.macOS()
? // Only works on Win/Mac
// https://www.electronjs.org/docs/api/app#appsetloginitemsettingssettings-macos-windows
[
{
label: "Start at login",
type: "checkbox",
checked: startAtLogin(),
click: (item) => {
setOptions({ startAtLogin: item.checked });
},
},
]
: []),
{
label: "Tray",
submenu: [

View File

@ -5,16 +5,17 @@ const store = new Store({
defaults: {
"window-size": {
width: 1100,
height: 550
height: 550,
},
url: "https://music.youtube.com",
plugins: ["navigation", "shortcuts", "adblocker"],
options: {
tray: false,
appVisible: true,
autoUpdates: true
}
}
autoUpdates: true,
startAtLogin: false,
},
},
});
module.exports = {
@ -29,5 +30,6 @@ module.exports = {
store.set("options", { ...store.get("options"), ...options }),
isTrayEnabled: () => store.get("options.tray"),
isAppVisible: () => store.get("options.appVisible"),
autoUpdate: () => store.get("options.autoUpdates")
autoUpdate: () => store.get("options.autoUpdates"),
startAtLogin: () => store.get("options.startAtLogin"),
};