Notemark 0.3.0 for Linux

Type into the page. Keep plain Markdown.

A Notion-style Markdown editor for Linux. The rendered page is the editor, Markdown shortcuts convert as you type, and your notes stay as plain .md files.

No Electron, no accounts, no sync. A single Python file driving GTK 3 and WebKitGTK; the installed package is under 250 KB.

MIT licence · Debian, Ubuntu, AppImage and portable tarball

Notemark in page mode, light theme: a formatted note with headings and lists. Notemark in page mode, dark theme: a formatted note with headings and lists.

Features

Everything in the page, nothing in the way.

Write in formatted text and let Notemark keep the Markdown underneath.

  • Page mode

    A WYSIWYG editor over Markdown. Headings stay headings while you write, and nothing re-renders or shifts under the cursor.

  • Markdown shortcuts

    # for a heading, - for a bullet, 1. for a numbered item, [] for a task, > for a quote, ``` for code and --- for a rule. Enter on an empty line leaves a list, quote or code block.

  • Source and split modes

    Edit raw Markdown, or both views side by side with two-way synchronisation. The editor can sit left, right, above or below the page.

  • Tabs

    Every file opens in its own tab and keeps its own view, cursor, scroll position and undo history. Drag to reorder, middle-click to close, right-click for more.

  • CSV and TSV tables

    Open as an editable table: add, delete and move rows and columns, sort and filter, paste a block of cells, and switch to the raw text.

  • Settings

    Press Ctrl+, for the theme, source editor size, default view, split layout, the status bar, and reopening your files on the next launch.

  • Light and dark themes

    Follows the desktop colour scheme on first launch, and remembers your choice after that.

  • Zoom

    From 50 to 300 percent, with the toolbar, keyboard, or Ctrl and the scroll wheel.

  • Plain files

    Clickable task checkboxes rewrite the Markdown. Export to a self-contained HTML file. Word and character count, an unsaved-changes guard, and registration as a handler for .md files.

Screenshots

One editor, three views.

Switch between page, split and CSV table, in light or dark.

Notemark in page mode, light theme: a formatted note with headings and lists. Notemark in page mode, dark theme: a formatted note with headings and lists.

Page mode: edit the formatted text directly.

Install

Pick your way in.

Notemark needs Python 3.8 or newer, PyGObject, GTK 3 and WebKitGTK 4.1. Every mainstream desktop Linux ships these, and the Debian package pulls them in automatically.

APT repository (Debian, Ubuntu, Mint, Pop!_OS)

Add the signing key and the repository, then install. Updates then arrive with your normal system updates.

Terminal
curl -fsSL https://notemark.forhad.me/apt/notemark.gpg | sudo tee /usr/share/keyrings/notemark.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/notemark.gpg] https://notemark.forhad.me/apt stable main" | sudo tee /etc/apt/sources.list.d/notemark.list
sudo apt update && sudo apt install notemark

Update later:

Terminal
sudo apt update && sudo apt upgrade

Remove it, then delete the two files you added:

Terminal
sudo apt remove notemark
sudo rm /etc/apt/sources.list.d/notemark.list /usr/share/keyrings/notemark.gpg

Usage

Open files, start typing.

Open files from the toolbar (pick several at once), or pass them on the command line:

Terminal
notemark notes.md data.csv

Tabs

Every file opens in its own tab with its own view, cursor, scroll position and undo history. Reorder by dragging, close with the button, middle-click or Ctrl+W, and switch with Ctrl+Tab or Alt+1 to Alt+9. A tab with unsaved changes asks before it closes. Open a file or move a tab into a new window (Ctrl+Shift+N) to see two side by side.

CSV and TSV

CSV and TSV files open as an editable table with sorting, filtering, row and column editing, pasting a block of cells and a raw-text view. Use “New CSV Table” in the menu to start one.

Settings

Press Ctrl+,. Settings are stored in ~/.config/notemark/settings.json, and the files open when you quit in ~/.config/notemark/session.json. Only saved files are reopened; an untitled tab is not.

Keyboard shortcuts

ShortcutAction
Ctrl+N or Ctrl+TNew tab
Ctrl+Shift+NNew window
Ctrl+O, Ctrl+SOpen, save
Ctrl+Shift+SSave as
Ctrl+WClose tab
Ctrl+Tab, Ctrl+Shift+TabNext, previous tab
Alt+1 to Alt+9Go to a tab (9 is the last)
Ctrl+Shift+CCopy the file path
Ctrl+,Settings
Ctrl+Z, Ctrl+Shift+Z, Ctrl+YUndo, redo
Ctrl+1, Ctrl+2, Ctrl+3Page, source, split mode
Ctrl+EToggle page and source
Ctrl+Shift+LToggle dark mode
Ctrl++, Ctrl+-, Ctrl+0Zoom in, out, reset
Ctrl and scrollZoom
Ctrl+B, Ctrl+I, Ctrl+`Bold, italic, inline code
Ctrl+K, Ctrl+Shift+XLink, strikethrough
Tab, Shift+TabIndent, outdent a list item
Shift+EnterLine break within a block
Ctrl and clickOpen a link
Ctrl+QQuit

Build

Build from source and test.

Clone the repository and run it from the source tree:

Terminal
git clone https://github.com/forhadkhan/notemark.git
cd notemark
make run FILE=sample.md

Runtime dependencies, by distribution:

DistributionCommand
Debian, Ubuntusudo apt install python3-gi gir1.2-gtk-3.0 gir1.2-webkit2-4.1
Fedorasudo dnf install python3-gobject gtk3 webkit2gtk4.1
Archsudo pacman -S python-gobject gtk3 webkit2gtk-4.1
openSUSEsudo zypper install python3-gobject gtk3 libwebkit2gtk-4_1-0

Packages

Terminal
make deb        # dist/notemark_<version>_all.deb
make appimage   # dist/Notemark-<version>-x86_64.AppImage
make tarball    # dist/notemark-<version>-linux.tar.gz
make dist       # all three

Building the Debian package needs dpkg-deb. Building the AppImage downloads appimagetool into build/tools on first use.

Tests

Terminal
make test

The suite loads the editor into an offscreen WebKit view and drives it the way a person would, then asserts on the Markdown that comes back out. An X display is required.

Changelog

What changed.

Version 0.2.0 added tabs, new windows, CSV and TSV tables, a Settings dialog, split layouts and session restore. Read the full history in the changelog or on the releases page.

About

Author and licence.

Licence

MIT. See LICENSE. Bundled libraries, all MIT licensed: marked, Turndown and turndown-plugin-gfm.