Lotion is an unofficial Electron-based desktop application that brings Notion.so to Linux. While NotionHQ continues to focus on feature development for other platforms, Linux support remains a lower priority. This project aims to fill that gap by providing a native desktop experience with modern UI and comprehensive features.
"Hey we don't want to release on platforms that we cannot ensure the quality – the team is still small and we don't use Linux ourselves"
— Notion (@NotionHQ)
First time hearing about Notion?
Use this link to sign up and get ready to manage your life like you have never managed before!
- Frameless Window Design - Modern, seamless interface with custom title bar
- Tab Management - Multiple tabs with drag-and-drop reordering, pinning, and favicon support
- Navigation Controls - Integrated back, forward, and refresh buttons
- Built-in Themes - 8 beautiful themes including Dracula, Nord, Gruvbox, and Catppuccin variants
- Dark Mode Support - Automatic theme detection and switching
- Logo Menu - Quick access to themes, project links, and GitHub repository
- Full Notion.so Integration - Complete access to all Notion features on Linux
- Native Linux Desktop Integration - Proper icon support and system integration
- Cross-platform Compatibility - Linux, macOS, and Windows support
- Context Menu - Right-click menu with Cut, Copy, Paste, Select All, and link handling
- External Links - Automatically open links in default browser
- English Language Support - Built-in spell checking for English (US)
- Real-time Suggestions - Right-click on misspelled words for suggestions
- Custom Dictionary - Add words to your personal dictionary
- Modern Electron Stack - Built with Electron 34.3.2 and Electron Forge
- Redux State Management - Centralized state for tabs, windows, and preferences
- WebContentsView API - Efficient multi-tab implementation
- Multiple Package Formats - DEB, RPM, and ZIP packages
- Multi-architecture - x64 and ARM64 builds available
Lotion includes beautiful built-in themes that transform Notion's appearance while keeping content readable. Access themes via the Lotion logo menu in the top-left corner.
Catppuccin Mocha theme with synchronized tab bar
- Default (Notion) - Uses Notion's default theme with system-aware tab bar
- Dracula - Popular dark theme with purple and cyan accents
- Nord - Arctic, north-bluish color palette
- Gruvbox Dark - Retro groove colors with warm earth tones
- Catppuccin Mocha - Warm dark theme with purple accents (shown above)
- Catppuccin Macchiato - Slightly lighter than Mocha
- Catppuccin Frappe - Cool dark theme with blue tones
- Catppuccin Latte - Light theme option for bright environments
- Unified Theming - Both page content and tab bar match the selected theme
- Minimal Design - Themes style UI chrome (sidebar, topbar) while preserving content readability
- Instant Switching - Change themes on the fly without restarting
- Custom CSS Support - Add your own themes to
~/.config/Lotion/themes/ - System Theme Integration - Default theme respects your system's dark/light mode preference
Create a new CSS file in ~/.config/Lotion/themes/your-theme.css:
/* My Custom Theme */
:root {
--custom-bg: #1a1b26;
--custom-accent: #7aa2f7;
}
.notion-frame,
body {
background: var(--custom-bg) !important;
}
.notion-sidebar {
background: var(--custom-bg) !important;
}
h1, h2, h3 {
color: var(--custom-accent) !important;
}Then select "Reload Custom CSS" from the logo menu to load your theme.
For Arch Linux users, install from the AUR:
# Using yay
yay -S lotion
# Using paru
paru -S lotion
# Using makepkg manually
git clone https://aur.archlinux.org/lotion.git
cd lotion
makepkg -siDownload the latest .deb package from Releases:
sudo dpkg -i lotion_1.0.0_amd64.deb
# If you have dependency issues:
sudo apt install -fDownload the latest .rpm package from Releases:
sudo rpm -i lotion-1.0.0.x86_64.rpm
# Or using dnf:
sudo dnf install ./lotion-1.0.0.x86_64.rpm- Clone the repository:
git clone [email protected]:puneetsl/lotion.git
cd lotion- Install dependencies:
npm install- Run in development mode:
npm run devTo build distribution packages:
# Build .deb package (recommended for Debian/Ubuntu)
npx electron-forge make --targets @electron-forge/maker-deb
# Build all Linux packages
npm run make:linux
# Packages will be in the 'out' directory:
# - .deb package (Debian/Ubuntu)
# - .rpm package (Red Hat/Fedora/openSUSE)
# - .zip archive (universal)sudo dpkg -i out/make/deb/x64/lotion_1.0.0_amd64.deb
# If you have dependency issues on non-Debian systems:
sudo dpkg -i --force-depends out/make/deb/x64/lotion_1.0.0_amd64.debFor a portable install (no system installation required):
./portable.shThe application stores configuration in config/config.json:
{
"domainBaseUrl": "https://www.notion.so"
}User data and preferences are automatically saved in:
- Linux:
~/.config/Lotion/
Use the navigation buttons in the tab bar:
- Back button (‹) - Go back
- Forward button (›) - Go forward
- Refresh button (↻) - Reload page
Ctrl+Shift+I/F12- Toggle Developer Tools (dev mode only)
Lotion includes built-in spell checking with support for English (US):
- Type text in any editable field in Notion
- Right-click on any misspelled word (underlined in red)
- Select from the suggested corrections
- Or choose "Add to Dictionary" to remember the word
Spell check works automatically in all text fields and is always enabled.
lotion/
├── src/
│ ├── main/
│ │ ├── controllers/ # WindowController, TabController, AppController
│ │ ├── store/ # Redux store & slices (tabs, windows, settings)
│ │ ├── index.js # Main process entry point
│ │ └── spellCheckMenu.js # Spell check menu functionality
│ └── renderer/
│ ├── tab-bar/ # Custom tab bar UI (vanilla JS)
│ │ ├── index.html # Tab bar HTML & CSS
│ │ ├── renderer.js # Tab bar rendering logic
│ │ └── preload.js # Tab bar IPC bridge
│ └── preload.js # Main preload script
├── assets/ # Application icons and images
├── config/ # Configuration files
├── i18n/ # Internationalization support
└── build.js # Build configuration script
npm run start # Start in development mode
npm run dev # Alias for start
npm run package # Package the application
npm run make # Create distribution packages
npm run make:linux # Create Linux-specific packagesMain Process
- AppController: Application lifecycle and multi-window orchestration
- WindowController: Manages frameless windows with custom tab bars
- TabController: Individual tab lifecycle and WebContentsView management
- Redux Store: Centralized state for tabs, windows, and user preferences
Renderer Process
- Tab Bar: Custom vanilla JavaScript UI for tab management
- Web Content: Loads Notion.so web application in WebContentsView instances
- IPC Bridge: Secure communication between main and renderer processes
Key Technologies
- WebContentsView API for efficient tab rendering
- Electron context isolation for security
- Redux Toolkit for state management
- Native context menus with spell check integration
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and test thoroughly on Linux
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
If you're maintaining the AUR package, see AUR_SUBMISSION.md for detailed instructions on:
- Submitting to AUR for the first time
- Updating the package for new releases
- Testing and troubleshooting
- Thanks to sysdrum/notion-app for inspiration and initial code
- Built with Electron and modern web technologies
This project is for educational and personal use. Please respect Notion's terms of service.
This is an unofficial adaptation of Notion's desktop application. It is not affiliated with, endorsed by, or supported by Notion Labs, Inc.
# Using dpkg
sudo dpkg -r lotion
# Or using apt
sudo apt remove lotion# Using rpm
sudo rpm -e lotion
# Or using dnf/yum
sudo dnf remove lotion
# or
sudo yum remove lotionSimply delete the application directory:
rm -rf /path/to/lotion
# Also remove user data (optional)
rm -rf ~/.config/Lotion ~/.cache/lotionFor issues and questions, please use the GitHub issue tracker:
Advertisement: Memodiction.com
A dictionary that helps you remember words
Made for the Linux community