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.
- the official windows/mac releases.
- the arch linux AUR notion-app package.
- the linux notion-app installer.
- the linux notion-deb-builder.
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.
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 andCTRL + 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
).
- install the aur package with your aur helper (e.g.
- windows 10:
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
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
.
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:
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 |
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 |
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 |
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
tags: #extension
description: render links surrounded with [[brackets]] instead of underlined.
author: arecsu
tags: #extension
description: go straight to the normal full view when opening a page.
author: dragonwocky
tags: #extension
description: add a button to scroll down to the current week in fullpage/infinite-scroll calendars.
author: dragonwocky
tags: #theme #dark
description: a delightfully plummy, cherry cola flavored theme.
author: runargs
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 |
tags: #theme #dark
description: a vivid-colour near-black theme.
author: dragonwocky
option | type | values/defaults |
---|---|---|
primary colour | color | rgb(177, 24, 24) |
tags: #theme #dark
description: a theme based on the popular dracula color palette originally by zeno rocha and friends.
author: dracula
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 |
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 |
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 |
tags: #theme #dark
description: a purple, "gamer-styled" theme with a blocky-font.
author: LVL100ShrekCultist
tags: #theme #dark
description: a purple monospaced theme using emojis and colourful text.
author: Lizishan
tags: #theme #light
description: a bright monospaced theme using emojis and colourful text.
author: Lizishan
tags: #theme #dark
description: an oceanic colour palette.
author: blacksuan19
tags: #theme #dark
description: smoother colours and fonts, designed to be more pleasing to the eye.
author: arecsu
tags: #extension #theme
description: sync dark/light theme with the system (overrides normal theme setting).
author: dragonwocky
tags: #theme #dark
description: a true dark theme with a hint of pastel.
author: zenith_illinois
tags: #extension
description: auto-collapse page properties that usually push down page content.
author: alexander-kazakov
tags: #extension
description: enables auto rtl/ltr text direction detection.
author: obahareth
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 |
tags: #extension
description: calendar views named "weekly" will show only the 7 days of this week.
author: adihd
tags: #extension
description: add page details: word/character/sentence/block count & speaking/reading times.
author: dragonwocky
@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.