A dead-simple Markdown writing app built with Qt Quick and C++ that automatically follows system dark/light mode.
Install via the Omarchy Package Repository via the omawrite package. It's installed by default in new installations of Omarchy (from Quattro forward).
omawrite opens an empty document and omawrite FILE opens a Markdown file.
omawrite --help answers in the terminal without opening a window.
Ctrl+Ssaves. Unsaved documents use the XDG desktop portal file picker.Ctrl+Shift+Ssaves as.Ctrl+Oopens a Markdown file through the portal picker.Ctrl+Popens the system print dialog.Ctrl+Nopens a new Omawrite window.Ctrl+Z,Ctrl+Shift+Z, andCtrl+Yhandle undo and redo.Super+Ftoggles fullscreen. Qt maps this key asMeta+F.Ctrl+Fsearches the document. UseEnterorCtrl+Gfor the next match andShift+Enterfor the previous match.Ctrl+Hopens find and replace.Ctrl+B,Ctrl+I, andCtrl+Shift+Xtoggle bold, italic, and strikethrough Markdown.Ctrl+Kinserts a link.Ctrl+=andCtrl+-change the text size,Ctrl+0returns to the default.Ctrl+scrolldoes the same.Ctrl+Shift+Ccopies the rendered document as HTML, with plain text as a fallback.Ctrl+?,Ctrl+/, orF1shows the keyboard shortcut reference.- In the unsaved-changes dialog,
C,D, andSchoose Cancel, Discard, and Save, with or withoutAlt.Escapecancels.
Once a document has been saved to a file, edits are auto-saved to that file a
moment after you stop typing, so Ctrl+S is rarely needed. Untitled drafts are
never auto-saved — they wait for an explicit save so Omawrite never picks a file
name for you. Unsaved drafts are recovered after an abnormal exit. Omawrite also
watches open files and warns before an external change can replace local work;
auto-save pauses until you reload, keep your version, or save. A recovered draft
is never auto-saved over its file — save it to keep it.
The font button in the footer picks the writing font from any installed text font, and Omawrite remembers the choice. IBM Plex Mono is the default.
Text follows the desktop text size — omarchy display text size, or GNOME's
text-scaling-factor — and re-flows without a restart. The default of 12px leaves
Omawrite at the size it is designed around; larger and smaller sizes scale from there.
Ctrl+=, Ctrl+-, and Ctrl+scroll set your own size on top of that, from 50% to
300% in browser-sized steps. It is remembered for the next window you open.
Omawrite speaks the language picked under Omarchy's Setup > Language and switches with it, without a restart. Right-to-left languages mirror the window. The translations live in src/i18n/, one JSON file per language keyed by the English text, and src/i18n/en.json lists every string to translate.
- Qt 6:
qt6-baseandqt6-declarative(which includes Qt Quick Controls) xdg-desktop-portaland a portal backend
The IBM Plex Mono font is bundled under the SIL Open Font License 1.1; see
fonts/OFL.txt. The font is copyright IBM Corp.
For a local build, install the Qt requirements above, a C++17 compiler such as gcc, cmake, and make. bin/build configures and builds into build/, and bin/test builds and runs the Qt test suite through ctest.
./bin/test
./build/omawritebin/test runs the Qt test suite with the offscreen platform, so it does not
require an active graphical session. To open a file with the local build:
./build/omawrite path/to/document.md