A distraction-free writing mode for Obsidian that turns the editor into a paginated, paper-like page. I built it because Obsidian’s default focus mode still reads like a text box — I wanted to see my long-form work with page breaks and margins, while I write.

What it does
- Paper-on-gray layout. Your note renders as a series of pages on a neutral backdrop. Tab headers, status bar all hide. You need to close the sidebars before toggling the mode on (which you do via command p, toggle…)
- Kind-of-Real pagination. Visible gaps between pages at paragraph boundaries, targeting a configurable word count per page (Letter or A4 proportions). No, your final printed document will very likely not look like this. Sometimes this can get messed up. I’m not sure why, but this plug in is a bit of a hack, so I am asking Obsidian to do a lot it wasn’t intended.
- Configurable settings. Paper width, max paper width (for big external monitors), side margins, top/bottom margins, image width as a percentage of the text column, background darkness.
Why another “focus mode”
Most focus/zen modes just hide the chrome and leave you with a wall of text across an arbitrary viewport width. Composition Mode gives the text a page with real margins that stops expanding past a sensible width on big monitors. You get the see your draft as an object feeling that word processors give you, without leaving Obsidian. Think Word’s focus mode. It was also inspired by Scrivener’s Composition View (hence the name) and you can simulate that more directly by turning off the page breaks if you want (there are no page breaks in that view). I find it easier to work this way since it helps me break text into chunks.
This is a fresh plugin I made for my own purposes. I vibe coded it, but man, the AIs just did not understand how to do this. It was instructive. Luckily I had some idea what I was doing, but they really got tangled thinking this through.
I’ve only tested it with the Minimal theme on desktop (macOS). Other themes very likely produce visual quirks around:
- image embed sizing
- the gray page-gap bar (slivers of white between bar and paper edge)
- background color overrides
I can’t promise that I will fix bugs or revise this, but given that, to my knowledge, there has not been a plug in that would do page breaks or simulate a page view, this is a starting point. Please fork away and turn this into something useful. I’ve been working on this all weekend so I could write more easily and now that it’s working (more or less), that’s what I want to do.
Install
BRAT (recommended): Add kvarnelis/composition-mode in BRAT → enable under Community Plugins.
Manual: Grab main.js, manifest.json, styles.css from the latest release and drop them in <vault>/.obsidian/plugins/composition-mode/.
Desktop only — mobile layout is different enough that the pagination math doesn’t translate.
Links
- Repo: GitHub - kvarnelis/composition-mode: Composition-mode-obsidian-plugin · GitHub
- Latest release: Release 1.1.0 — paper width, image width, and margin controls · kvarnelis/composition-mode · GitHub
- README with full settings table: GitHub - kvarnelis/composition-mode: Composition-mode-obsidian-plugin · GitHub
Feedback, bug reports, and feature ideas all welcome — especially theme compatibility reports
Disclaimer
Is this project open source? Yes
Is this project completely free? Yes
Is this project vibe-coded beyond the author’s ability to comprehend how it works? No, it is vibe coded, but I seem to understand it better than Claude or Chatgpt do, which still doesn’t mean I understand it fully! But geez, they really did NOT get how to lay out a page.

