From b13fe98d40d5cb3c3f588154d171a981ab44b244 Mon Sep 17 00:00:00 2001 From: dragonwocky Date: Sat, 18 Jul 2020 23:21:55 +1000 Subject: [PATCH] tray failing: every time something starts working everything else falls apart :/ --- CHANGELOG.md | 101 ++++++++++++++++++++++++++++++++++++++++ DOCUMENTATION.md | 9 ++-- README.md | 34 +++++++++----- mods/core/mac+linux.png | Bin 0 -> 7192 bytes mods/core/mod.js | 8 ++++ mods/core/tray.js | 81 ++++++++++++++++++++++++++++++++ mods/core/windows.ico | Bin 0 -> 112696 bytes package.json | 1 + pkg/apply.js | 2 +- pkg/loader.js | 10 ++-- yarn.lock | 19 ++++++++ 11 files changed, 246 insertions(+), 19 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 mods/core/mac+linux.png create mode 100644 mods/core/tray.js create mode 100644 mods/core/windows.ico diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..b947518 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,101 @@ +# changelog + +if something is ~~crossed out~~, then it is no longer a feature included by default, +but can still easily be enabled by following instructions in the [docs](README.md). + +### v0.8.0 (wip) + +complete rewrite with node.js. + +- new: simpler cli installation system (inc. commands: `apply`, `remove`, and `check`). +- new: mod loading system (easier to create new mods, adds to notion rather than overwriting). +- bugfix: non-reproducable errors with python. +- bugfix: better launcher patching on linux. + +//todo + +- improved: greater choice of emoji sets. +- improved: better colour coverage for theming variables. +- new: menu for configuring mods. +- new: syncing dark/light theme with the system. + +### v0.7.0 (2020-07-09) + +- new: tray option to use system default emojis (instead of twitter's emojiset). +- new: mac support (identical functionality to others platforms with the + exception of the native minimise/maximise/close buttons being kept, as they integrate + better with the OS while not being out-of-place in notion). +- new: notion-deb-builder support for linux. +- improved: replaced button symbols with svgs for multi-platform support. +- improved: window close button is now red on hover (thanks to [@torchatlas](https://github.com/torchatlas)). +- bugfix: `cleaner.py` patched for linux. +- bugfix: tray now operates as expected on linux. +- bugfix: odd mix of `\\` and `/` being used for windows filepaths. +- bugfix: app no longer crashes when sidebar is toggled. + +### v0.6.0 (2020-06-30) + +- style: custom fonts. +- style: font resizing. +- style: hide discussions (thanks to [u/Roosmaryn](https://www.reddit.com/user/Roosmaryn/)). +- new: custom colour theming, demonstrated via the dark+ theme. +- new: linux support (thanks to [@Blacksuan19](https://github.com/Blacksuan19)). +- improved: if hotkey is pressed while notion is unfocused, it will bring it to the front rather than hiding it. +- improved: stop window buttons breaking at smaller widths. +- improved: more obviously visible drag area. +- bugfix: specify UTF-8 encoding to prevent multibyte/gbk codec errors (thanks to [@etnperlong](https://github.com/etnperlong)). + +> 📥 [notion-enhancer.v0.6.0.zip](https://github.com/dragonwocky/notion-enhancer/archive/v0.6.0.zip) + +### v0.5.0 (2020-05-23) + +- new: running from the wsl. +- new: reload window with f5. +- improved: code has been refactored and cleaned up, + inc. file renaming and a `customiser.py` that doesn't require + a run of `cleaner.py` to build modifications. + improved: scrollbar colours that fit better with notion's theming. +- bugfix: un-break having multiple notion windows open. + +> 📥 [notion-enhancer.v0.5.0.zip](https://github.com/dragonwocky/notion-enhancer/archive/v0.5.0.zip) + +_(forked by [@dragonwocky](https://github.com/dragonwocky).)_ + +### v0.4.1 (2020-02-13) + +- bugfix: wider table & the "+" button not working in database pages. + +> 📥 [notion-enhancer.v4.1.zip](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d239a3cf-d553-4ef3-ab04-8b47892d9f9a/Notion_Customization_v4.1.zip) + +### v0.4.0 + +- new: tray icon. +- new: app startup options (+ saving). +- new: `Reset.py` +- improved: better output from `Customization Patcher.py`. +- bugfix: wider tables in "short page" mode. +- bugfix: unclickable buttons/draggable area (of titlebar). + +### v0.3.0 + +- new: show/hide window hotkey. +- new: app startup options. +- ~~style: smaller table icons.~~ + +> 📥 [notion-enhancer.v3.zip](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b01aa446-5727-476a-a25e-395472bfb1be/NotionScriptsV3.zip) + +### v0.2.0 + +- new: light/dark theme support for window control buttons + scrollbars. +- new: custom styles directly linked to the enhancer resources + compatible with web version. +- ~~improved: making table column width go below 100px.~~ + +### v0.1.0 + +- new: custom window control buttons. +- removed: default titlebar/menubar. +- ~~removed: huge padding of board view.~~ +- ~~removed: huge padding of table view.~~ +- ~~optional: making table column width go below 100px.~~ +- ~~style: thinner cover image + higher content block.~~ +- style: scrollbars. diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md index 2feb91c..2ef1d8d 100644 --- a/DOCUMENTATION.md +++ b/DOCUMENTATION.md @@ -4,15 +4,18 @@ ended up here? this is a wip version of the enhancer, and this file is yet to be if you're interested in using the project, switch back to the [master branch](https://github.com/dragonwocky/notion-enhancer). for support, contact me on discord `dragonwocky#8449` or open an issue here in the repo. -want to contribute? check the the [contribution guidelines](CONTRIBUTING.md). +want to contribute? check the [contribution guidelines](CONTRIBUTING.md). ## module creation _to understand best how notion's app works, check out [the electron docs](https://www.electronjs.org/docs/)_ _and explore the contents of your local extracted `app.asar`._ -_explore [the existing modules](https://github.com/dragonwocky/notion-enhancer/tree/js/mods/)_ -_for examples of implementing what's described below._ +_look through [the existing modules](https://github.com/dragonwocky/notion-enhancer/tree/js/mods/)_ +_for examples of implementing the stuff described below._ + +_testing modules requires running a dev version of the enhancer_ +_(again, see the [contribution guidelines](CONTRIBUTING.md)). a better system is in the works._ each directory in the `mods` folder is considered a module, with the entry points `mod.js` and `styles.css`. diff --git a/README.md b/README.md index fdbc534..ca5921a 100644 --- a/README.md +++ b/README.md @@ -4,22 +4,19 @@ ended up here? this is a wip version of the enhancer, and this file is yet to be if you're interested in using the project, switch back to the [master branch](https://github.com/dragonwocky/notion-enhancer). for support, contact me on discord `dragonwocky#8449` or open an issue here in the repo. -want to contribute? check the the [contribution guidelines](CONTRIBUTING.md). +notion.so's ui/ux is pretty awesome, but there's always room for improvement. +this script enhances your experience, making the tool smoother to use and nicer on the eyes, +and adding some handy extra functionality too. - +want to contribute? check the the [contribution guidelines](CONTRIBUTING.md). ## installation 1. install node.js: [windows/macOS](https://nodejs.org/en/download/), [linux/WSL](https://github.com/mklement0/n-install). 2. install notion-enhancer globally via yarn or npm: `npm i -g notion-enhancer` or `yarn global add notion-enhancer` -3. ensure no notion processes are running (you may want to check the task manager to make sure), and try running one of these commands: +3. ensure no notion processes are running (you may want to check the task manager to make sure), + and try running one of these commands: ``` Usage: @@ -59,9 +56,21 @@ mobile clients are not supported and due to system limitations/restrictions cann **is this against notion's terms of service? can i get in trouble for using it?** -absolutely not! i contacted notion to check, and their response was awesome: +definitely not! i contacted notion to check, and their response was awesome: -"Thanks for taking the time to share this with us. Userscripts and userstyles are definitely cool ideas and would be helpful for many users! ... I'll also share this with the rest of the team to take to heart for future improvements." +"Thanks for taking the time to share this with us. Userscripts and userstyles are definitely +cool ideas and would be helpful for many users! ... I'll also share this with the rest of the +team to take to heart for future improvements." + +**can i enhance the web version of notion too?** + +yes, and no. styling can be copy/pasted into a web extension like +[stylus](https://chrome.google.com/webstore/detail/stylus/clngdbkpkpeebahjckkjfobafhncgmne), +and some scripts could be used with greasemonkey (untested). however, most hacks +aren't in a form that can simply be ported for use in a browser. + +after i've gotten to enhancer to a reasonably high level of robustness/functionalality/stableness, +i may create a notion-enhancer chrome extension. ## contributors @@ -69,6 +78,7 @@ this project was started by [@TarasokUA](https://github.com/TarasokUA/) in early a couple months after, they decided they didn't have any motivation to continue work on it and the enhancer was picked up by [@dragonwocky](https://github.com/dragonwocky/). -since then, various community members have helped out heaps here on github or in more extended discussions on discord (with code, feedback and testing): +since then, various community members have helped out heaps here on github or in more extended +discussions on discord (with code, feedback and testing): [![](https://contributors-img.web.app/image?repo=dragonwocky/notion-enhancer)](https://github.com/dragonwocky/notion-enhancer/graphs/contributors) diff --git a/mods/core/mac+linux.png b/mods/core/mac+linux.png new file mode 100644 index 0000000000000000000000000000000000000000..83412d4389f76c295c72992f782dfb3d9f987542 GIT binary patch literal 7192 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 + * (c) 2020 TarasokUA + * (https://dragonwocky.me/) under the MIT license + */ + +let tray; +const electron = require('electron'), + path = require('path'), + is_mac = process.platform === 'darwin', + is_win = process.platform === 'win32', + settings = {}; + +electron.app.on('ready', () => { + tray = new electron.Tray( + is_win + ? path.resolve(__dirname, 'windows.ico') + : new electron.nativeImage.createFromPath( + path.resolve(__dirname, 'mac+linux.png') + ).resize({ + width: 16, + height: 16, + }) + ); + + const contextMenu = electron.Menu.buildFromTemplate([ + { + type: 'normal', + label: 'Bug Report', + }, + { + type: 'normal', + label: 'Feature Request', + }, + { + type: 'separator', + }, + { + type: 'normal', + label: 'Docs', + }, + { + type: 'normal', + label: 'Enhancements', + }, + { + type: 'separator', + }, + { + label: 'Quit', + role: 'quit', + }, + ]); + tray.setContextMenu(contextMenu); + tray.setToolTip('Notion'); + + function showWindows() { + const windows = electron.BrowserWindow.getAllWindows(); + if (is_mac) electron.app.show(); + if (settings.maximized) windows.forEach((win) => [win.maximize()]); + else windows.forEach((win) => win.show()); + electron.app.focus({ steal: true }); + } + function hideWindows() { + const windows = electron.BrowserWindow.getAllWindows(); + windows.forEach((win) => [win.isFocused() && win.blur(), win.hide()]); + if (is_mac) electron.app.hide(); + } + tray.on('click', () => { + const windows = electron.BrowserWindow.getAllWindows(); + if (windows.some((win) => win.isVisible())) hideWindows(); + else showWindows(); + }); + electron.globalShortcut.register(settings.hotkey, () => { + const windows = electron.BrowserWindow.getAllWindows(); + if (windows.some((win) => win.isFocused() && win.isVisible())) + hideWindows(); + else showWindows(); + }); +}); diff --git a/mods/core/windows.ico b/mods/core/windows.ico new file mode 100644 index 0000000000000000000000000000000000000000..b46f68cf8ad88d1dc489d49700ca4da9b7cc473f GIT binary patch literal 112696 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 store(mod.id, defaults)); + mod.hacks[__file]((...args) => + args.length === 1 ? store(mod.id, args[0]) : store(args[0], args[1]) + ); if ( __file === 'renderer/preload.js' && (await fs.pathExists( diff --git a/yarn.lock b/yarn.lock index c2f36d9..7c0b3a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -69,6 +69,25 @@ cac@^6.5.12: resolved "https://registry.yarnpkg.com/cac/-/cac-6.6.1.tgz#3dde3f6943f45d42a56729ea3573c08b3e7b6a6d" integrity sha512-uhki4T3Ax68hw7Dufi0bATVAF8ayBSwOKUEJHjObPrUN4tlQ8Lf7oljpTje/mArLxYN0D743c2zJt4C1bVTCqg== +caller-callsite@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-4.1.0.tgz#3e33cb1d910e7b09332d59a3503b9af7462f7295" + integrity sha512-99nnnGlJexTc41xwQTr+mWl15OI5PPczUJzM4YRE7QjkefMKCXGa5gfQjCOuVrD+1TjI/fevIDHg2nz3iYN5Ig== + dependencies: + callsites "^3.1.0" + +caller-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-3.0.0.tgz#a13cbec75eea1b355e3f92dc0df4288b7eebdc5f" + integrity sha512-8nvMBmBgTmEfAXywJf27jbPZlURi5xUWLwkTXa3hZFcEZa5iRnMP4sF0p00CstWNHKBENVyYWDRSByNRdshdgQ== + dependencies: + caller-callsite "^4.1.0" + +callsites@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + chromium-pickle-js@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205"