/notion-enhancer

an enhancer/customiser for the all-in-one productivity workspace notion.so

Primary LanguageJavaScriptMIT LicenseMIT

notion-enhancer

notion.so is a pretty awesome tool already, but there's always room for improvements. it might just be a preference, it might be something crucial to your setup, it might be something users have been asking for for a long time, or it might even be something you haven't realised you need yet - there's something that would make your user experience a lot better.

this package is a mod-loader for the desktop app, with custom colour theming and extra feature enhancements.

want to contribute? check out the contribution guidelines and the documentation.

for support, join the discord server.

supported desktop clients

outdated notion versions (< 2.0.10) probably won't work.

mobile clients are not supported and due to system limitations/restrictions cannot be.

a chrome extension may be coming soon for web client support.

installation

if you are updating from v0.7.0 or earlier, things have changed, more information is available in this update guide. please read that before following these instructions.

  • ensure that no notion windows/processes are running by ending all Notion processes in your task manager.
    • CMD + ALT + ESC on mac and CTRL + SHIFT + ESC on windows/linux to open task manager.
  • install node.js
    • you may need to restart your computer.
    • notion-enhancer will use node.js, you do not need to interact with it aside from downloading to install notion-enhancer.
  • open your computer's terminal, not the node.js command prompt.
    • windows 10: search in your start menu (click windows key or icon in bottom left of screen) for 'cmd' or 'command prompt'.
    • mac: search in spotlight (magnifying glass in top right of screen) for 'terminal'.
  • type and enter the following line(s) based on your operating system, if there are multiple lines, make sure to enter them one by one .
    • windows 10:
      npm i -g notion-enhancer
      
    • mac: this may ask you to enter your password, instead of hiding your password with *** symbols, mac terminal hides it by making it invisible. simply type your password and click enter.
      sudo chmod -R a+wr /usr/local/lib/node_modules
      sudo chmod -R a+wr /usr/local/bin
      sudo chmod -R a+wr /Applications/Notion.app/Contents/Resources
      npm i -g notion-enhancer
      
    • debian/ubuntu, chromeOS, wsl (to modify the win10 app):
      bash curl -sL https://deb.nodesource.com setup_current.x | sudo -E bash -
      sudo apt-get install -y nodejs
      npm i -g notion-enhancer
      
    • arch linux, manjaro:
      • install the aur package with your aur helper (e.g. yay -S notion-enhancer).

command-line interface

the enhancements should be automatically applied on installation and automatically removed on uninstallation.

on some platforms this may throw errors if done without elevated/admin permissions, though, so if it hasn't automatically installed you will still need to use these commands.

Usage:
  $ notion-enhancer <command> [options]

Commands:
  apply   : add enhancements to the notion app
  remove  : return notion to its pre-enhanced/pre-modded state
  check   : check the current state of the notion app

For more info, run any command with the `--help` flag:
  $ notion-enhancer apply --help
  $ notion-enhancer remove --help
  $ notion-enhancer check --help

Options:
  -y, --yes      : skip prompts (may overwrite data)
  -n, --no       : skip prompts (may cause failures)
  -d, --dev      : show detailed error messages (for debug purposes)
  -h, --help     : display usage information
  -v, --version  : display version number

faq

when will the update be out? i code this in my free time, in-between my other commitments. there are no ETAs.

the themes aren't working? if you pick a dark theme it will only be applied if notion is in dark mode, and if you pick a light theme it will only work if notion is in light mode. do CMD/CTRL+SHIFT+L to toggle between them.

is this against notion's terms of service? can i get in trouble for using it? definitely not! i contacted their support team to check, and the 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."

how do i uninstall the enhancer? run npm remove -g notion-enhancer.

features

most of the enhancer's functionality is split into configurable enhancement modules, but some basic improvements necessary for things to work are built in by values:

  • the notion:// url scheme/protocol is patched to work on linux.
  • a tray/menubar icon: links relevant to the enhancer + buttons to manage notion windows.

once applied, modules can be configured via the graphical menu, which is opened from the tray/menubar icon or with OPTION/ALT+E.

currently all modules come pre-installed for technical reasons, security assurance, and ease-of-use. these include:

notion-enhancer core

tags: #core

description: the cli, modloader, menu, & tray.

author: dragonwocky

option extended description type values/defaults platform-specific details
auto-resolve theme conflicts when a theme is enabled any other themes of the same mode (light/dark) will be disabled. toggle no
hide app on open app can be made visible by clicking the tray icon or using the hotkey. toggle no
auto-maximise windows whenever a window is un-hidden or is created it will be maximised. toggle no
close window to the tray pressing the × close button will hide the app instead of quitting it. it can be re-shown by clicking the tray icon or using the hotkey. toggle yes
integrated titlebar replace the native titlebar with buttons inset into the app. toggle yes macOS: forced on
tiling window manager mode completely remove the close/minimise/maximise buttons - this is for a special type of window manager. if you don't understand it, don't use it. toggle no macOS: forced off
window display hotkey used to toggle hiding/showing all app windows. accelerator input CommandOrControl+Shift+A
open enhancements menu hotkey used to toggle opening/closing this menu while notion is focused. accelerator input Alt+E
values/defaults page id/url every new tab/window that isn't opening a url via the notion:// protocol will load this page. to get a page link from within the app, go to the triple-dot menu and click "copy link". leave blank to just load the last page you opened. text input Alt+E

tabs

tags: #core #extension

description: have multiple notion pages open in a single window.

author: dragonwocky

option type values/defaults
tab select modifier (key+1, +2, +3, ... +9 and key+left/right arrows) select Alt, Command, Control, Super, Alt+Shift, Command+Shift, Control+Shift, Super+Shift
new tab keybinding accelerator input CommandOrControl+T
close tab keybinding accelerator input CommandOrControl+W

tweaks

tags: #core #extension

description: common style/layout changes.

author: dragonwocky

option extended description type values/defaults platform-specific details
height of frameless dragarea the rectangle added at the top of a window in "integrated titlebar" mode, used to drag/move the window. number input 15 macOS: forced to 0
width to wrap columns at the size in pixels below which in-page columns are resized to appear full width so content isn't squished. number input 600
integrated scrollbars use scrollbars that fit better into notion's ui instead of the default chrome ones. toggle yes
snappy transitions toggle no
thicker bold text toggle yes
more readable line spacing toggle no
hide help button toggle no

always on top

tags: #extension

description: add an arrow/button to show the notion window on top of other windows even if it's not focused.

author: dragonwocky

bracketed links

tags: #extension

description: render links surrounded with [[brackets]] instead of underlined.

author: arecsu

bypass preview

tags: #extension

description: go straight to the normal full view when opening a page.

author: dragonwocky

calendar scroll

tags: #extension

description: add a button to scroll down to the current week in fullpage/infinite-scroll calendars.

author: dragonwocky

cherry cola

tags: #theme #dark

description: a delightfully plummy, cherry cola flavored theme.

author: runargs

custom inserts

tags: #extension

description: link files for small client-side tweaks. (not sure how to do something? check out the tweaks collection.)

author: dragonwocky

option type
css insert file
client-side js insert file

dark+

tags: #theme #dark

description: a vivid-colour near-black theme.

author: dragonwocky

option type values/defaults
primary colour color rgb(177, 24, 24)

dracula

tags: #theme #dark

description: a theme based on the popular dracula color palette originally by zeno rocha and friends.

author: dracula

emoji sets

tags: #extension

description: pick from a variety of emoji styles to use.

author: dragonwocky

option type values/defaults
style select twitter, apple, google, microsoft, samsung, whatsapp, facebook, joypixels, openmoji, emojidex, lg, htc, mozilla

focus mode

tags: #extension

description: hide the titlebar/menubar if the sidebar is closed (will be shown on hover).

author: arecsu

option extended description type values/defaults
add padding to bottom of the page will only take effect when the sidebar is hidden. aims to make the canvas as symmetrical/consistent as possible: if there is empty space on 3 sides, the 4th should follow. toggle on

font chooser

tags: #extension

description: customize fonts. for each option, type in the name of the font you would like to use, or leave it blank to not change anything.

author: torchatlas

option type
sans-serif (inc. ui) text input
serif text input
monospace text input
code text input

gameish

tags: #theme #dark

description: a purple, "gamer-styled" theme with a blocky-font.

author: LVL100ShrekCultist

littlepig dark

tags: #theme #dark

description: a purple monospaced theme using emojis and colourful text.

author: Lizishan

littlepig light

tags: #theme #light

description: a bright monospaced theme using emojis and colourful text.

author: Lizishan

material ocean

tags: #theme #dark

description: an oceanic colour palette.

author: blacksuan19

neutral

tags: #theme #dark

description: smoother colours and fonts, designed to be more pleasing to the eye.

author: arecsu

night shift

tags: #extension #theme

description: sync dark/light theme with the system (overrides normal theme setting).

author: dragonwocky

pastel dark

tags: #theme #dark

description: a true dark theme with a hint of pastel.

author: zenith_illinois

property layout

tags: #extension

description: auto-collapse page properties that usually push down page content.

author: alexander-kazakov

right-to-left

tags: #extension

description: enables auto rtl/ltr text direction detection.

author: obahareth

scroll to top

tags: #extension

description: add an arrow above the help button to scroll back to the top of a page.

author: CloudHill

option type values/defaults
smooth scrolling toggle on
distance scrolled until button is shown number input 50
unit to measure distance with select percent, pixels

weekly view

tags: #extension

description: calendar views named "weekly" will show only the 7 days of this week.

author: adihd

word counter

tags: #extension

description: add page details: word/character/sentence/block count & speaking/reading times.

author: dragonwocky

contributors

@TarasokUA wrote the first versions of this in python, in early 2020. a couple months after I (@dragonwocky) picked the project up, at first extending upon the original base and later moving to the javascript module system.

the enhancer wouldn't be anything near to what it is now though without interested community members testing, coding and ideating features - some are listed as contributors here on github, but many more have been helping out on discord and in emails.

individual modules have their original authors attributed.