diff --git a/repo/integrated-titlebar/client.mjs b/repo/integrated-titlebar/client.mjs
index de0eff3..75eef97 100644
--- a/repo/integrated-titlebar/client.mjs
+++ b/repo/integrated-titlebar/client.mjs
@@ -44,6 +44,7 @@ export default async function (api, db) {
await web.whenReady([topbarSelector, topbarActionsSelector]);
const $topbar = document.querySelector(topbarSelector),
$dragarea = web.html`
`;
+ $topbar.style.height = `${45 + dragareaHeight}px`;
$topbar.prepend($dragarea);
const $topbarActions = document.querySelector(topbarActionsSelector),
diff --git a/repo/tray/createWindow.cjs b/repo/tray/createWindow.cjs
index 0186e0f..b339cd3 100644
--- a/repo/tray/createWindow.cjs
+++ b/repo/tray/createWindow.cjs
@@ -6,9 +6,10 @@
'use strict';
-module.exports = async function (api, db, __exports, __eval) {
+module.exports = async function ({ env }, db, __exports, __eval) {
const electron = require('electron'),
{ isMenuOpen } = require('notion-enhancer/worker.cjs'),
+ urlHelpers = env.notionRequire('helpers/urlHelpers'),
runInBackground = await db.get(['run_in_background']);
if (!runInBackground) return;
@@ -34,10 +35,23 @@ module.exports = async function (api, db, __exports, __eval) {
throw new Error(': prevent window close');
}
});
+
+ // no other windows yet + opened at startup = hide
+ const wasOpenedAtStartup =
+ process.argv.includes('--startup') ||
+ app.getLoginItemSettings({ args: ['--startup'] }).wasOpenedAtLogin;
+ if (!windows.length && wasOpenedAtStartup) {
+ window.once('ready-to-show', () => window.hide());
+ }
+
return window;
} else {
// prevents duplicate windows on dock/taskbar click
windows[0].focus();
+ if (relativeUrl) {
+ // handle requests passed via the notion:// protocol
+ windows[0].loadURL(urlHelpers.getIndexUrl(relativeUrl));
+ }
return windows[0];
}
};
diff --git a/repo/tray/main.cjs b/repo/tray/main.cjs
index 33a2391..813ff8b 100644
--- a/repo/tray/main.cjs
+++ b/repo/tray/main.cjs
@@ -13,6 +13,7 @@ module.exports = async function ({ env, registry }, db, __exports, __eval) {
path = require('path'),
enhancerIcon = path.resolve(`${__dirname}/../../media/colour-x16.png`),
hotkey = await db.get(['hotkey']),
+ openAtStartup = await db.get(['startup']),
runInBackground = await db.get(['run_in_background']),
menuHotkey = await (
await registry.db('a6621988-551d-495a-97d8-3c568bca2e9e')
@@ -34,6 +35,8 @@ module.exports = async function ({ env, registry }, db, __exports, __eval) {
};
await electron.app.whenReady();
+ electron.app.setLoginItemSettings({ openAtLogin: openAtStartup, args: ['--startup'] });
+
tray = new electron.Tray(enhancerIcon);
tray.setToolTip('notion-enhancer');
tray.on('click', () => toggleWindows(false));
diff --git a/repo/tray/mod.json b/repo/tray/mod.json
index 1d06f6c..b88c81e 100644
--- a/repo/tray/mod.json
+++ b/repo/tray/mod.json
@@ -22,6 +22,13 @@
]
},
"options": [
+ {
+ "type": "toggle",
+ "key": "startup",
+ "label": "open notion on startup",
+ "tooltip": "**if the 'run notion in the background' option is also enabled, the app will open in background on startup** (this option may require relaunching the app BEFORE restarting your system to properly take effect)",
+ "value": false
+ },
{
"type": "toggle",
"key": "run_in_background",