# KDE ghostwriter: a Markdown editor for Windows and Linux that gets out of the way

> ghostwriter is a Qt-based Markdown editor from KDE, packaged for Linux distributions, with live HTML preview driven by cmark-gfm, Pandoc, MultiMarkdown or cmark. The writing environment is calm; the packaging story and the Windows full screen bug are where it asks for patience.

**KDE/ghostwriter** — Text editor for Markdown

- Repository: https://github.com/KDE/ghostwriter
- Website: https://invent.kde.org/office/ghostwriter
- Stars: 4,996 · Forks: 347
- Language: C++
- License: GPL-3.0
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/kde-ghostwriter

## What ghostwriter solves, and who it is actually for

Markdown is plain text, so the editor does not have to be a word processor. ghostwriter takes that position seriously. The README describes it as a Windows and Linux text editor for Markdown that provides "a relaxing, distraction-free writing environment," and names the intended output: a blog post, a school paper, or a NaNoWriMo novel. That list is a decent specification of the audience. People writing long prose in Markdown who want the syntax available but not shouting at them.

The project is written in C++ and licensed under GPL-3.0. It lives on KDE's Invent infrastructure, with the project site at ghostwriter.kde.org hosting screenshots and a quick reference guide. If you write in a different markup language, or you want a WYSIWYG word processor, this is not the tool. The scope is Markdown and the editing experience around it.

## How the editing and preview pipeline is put together

The mechanism that matters is the split between the editor and the Markdown processor. ghostwriter has built-in support for cmark-gfm. On top of that, the README states that it can auto-detect Pandoc, MultiMarkdown, or cmark. Installation is the configuration step: install the processor, make sure its location is on your system's PATH, and ghostwriter finds it at startup. Once detected, the README says the application gives you live HTML preview and export options accordingly.

That design has a consequence worth stating plainly. The quality of your preview and export is the quality of whichever external binary you installed. ghostwriter is the front end; cmark-gfm, Pandoc, MultiMarkdown and cmark do the parsing. If you want footnotes, tables or a particular flavour of Markdown, the processor you put on PATH decides what you get, not a setting inside the editor. This is a deliberate division of labour and it keeps the editor small, but it also means troubleshooting a rendering problem starts with the processor's version, not with ghostwriter.

The repository layout reflects the same split. There is a src/ directory for the application, a 3rdparty/ directory, a doc/ directory, and translation trees in po/ and poqm/. A widgets.qss stylesheet sits at the top level, which fits the distraction-free framing: the chrome is themeable rather than fixed.

## Installing ghostwriter on Linux and opening a first file

The README says versions 2.2.0 and above ship with KDE Gears releases and should be available from your Linux distribution. On Ubuntu the documented commands are an update followed by an install:

```bash
sudo apt update
sudo apt install ghostwriter
```

On Fedora the README gives the equivalent with dnf:

```bash
sudo dnf install ghostwriter
```

If your distribution is behind, the README points to the author's personal repository locations carrying version 2.1.6. For Ubuntu and derivatives such as Linux Mint and Xubuntu, that means adding a PPA before installing:

```bash
sudo add-apt-repository ppa:wereturtle/ppa
sudo apt update
sudo apt install ghostwriter
```

Fedora users can get the older version from Copr with the two commands the README lists. Either way, run the binary against a file path to start writing. The README's command line example is exactly this:

```bash
ghostwriter myfile.md
```

where myfile.md is the path to your Markdown text file. If you installed Pandoc or another processor and want preview, confirm it is on PATH before launching, because detection happens at startup. On Windows, the README says an installer will be forthcoming at the KDE binary factory alongside a nightly build, so distribution there is less settled than on Linux.

## The Qt 6 full screen bug on Windows, and the --disable-gpu workaround

This is the sharpest limitation in the README, and it is documented rather than hidden. Compiling against Qt 6 on Windows means OpenGL components, specifically QWebEngineView, force the entire window to be rendered in OpenGL. The README states this triggers a Windows bug in full screen mode where menus can no longer be displayed, including the menu bar and popup menus.

The workaround is software rendering. ghostwriter accepts a flag to disable GPU acceleration:

```bash
ghostwriter --disable-gpu
```

The README warns that the application may inconsistently launch on Windows with GPU acceleration disabled, and that it may take several attempts before it starts successfully. That is an awkward trade: menus that work but a launch you have to retry, or a reliable launch and no menus in full screen. The README's own conclusion is blunt, saying the best option is to continue using Qt 5 on Windows for as long as possible, because Qt 5 had ANGLE to route rendering through DirectX and Qt 6 removed it. If you are a Windows writer who works full screen, this is the section to read before installing, not after.

## Where ghostwriter is the wrong tool, and what to compare it against

ghostwriter is the wrong choice if you want the editor to own the rendering pipeline. A Markdown editor that bundles its own renderer, or an editor built around a preview that updates from an internal parser, removes the PATH dependency and the version mismatch between what you see and what you export. With ghostwriter you are assembling a toolchain, and the README is explicit that detection of Pandoc, MultiMarkdown and cmark depends on their installation locations being on PATH.

The comparison that makes the difference concrete is against a full word processor workflow. In a word processor the document format and the rendering engine are the same product, so what you see is what you get by construction. ghostwriter inverts that: your source is plain text and the rendering is a separate program's job. That is a better fit for version control and for writers who want their files readable in any editor, and a worse fit for anyone who does not want to install and maintain a second binary. It is also worth noting the release cadence visible in the repository: the listed releases are 2.1.6 from 2022-09-14, 2.1.5 from 2022-09-10, and 2.1.4 from 2022-06-18, while the last push to the default branch was on 2026-09-22. Development activity and tagged releases are not the same thing here, and the README's own advice to prefer Qt 5 on Windows suggests the maintainers feel the same tension.

## Licence, packaging, and the cost of keeping it current

The source is GPL-3.0. The README notes that various icons and third-party FOSS code, naming cmark-gfm and MathJax among them, carry different licences, and the repository has a LICENSES/ directory and a .reuse/ directory consistent with REUSE-style licence metadata. If you redistribute ghostwriter or bundle it into a product, the mixed licensing of icons and third-party components is the part to check; nothing here is legal advice, and the COPYING file plus LICENSES/ are the authoritative sources.

Upgrade cost splits by platform. On Linux, if you are on a distribution that tracks KDE Gears, upgrades arrive through your package manager and the README's guidance is simply to install the distro package. If your distribution lags, you are on the PPA or Copr path pinned at 2.1.6, and moving forward means waiting for the distro or switching to a source build. Building from source requires Qt 6 plus KDE Frameworks development packages, and the README lists long dependency lines for Debian and Ubuntu and for Fedora, including qtbase5-dev, qtwebengine5-dev, libkf5sonnet-dev, cmake and extra-cmake-modules. That dependency list is the real cost of the source route: it is not a single-binary build, and the README's note that cmake will tell you what is missing is the practical mitigation. FreeBSD users get a shorter path in the README, with pkg install covering qt6-base, qt6-webengine, kf6-sonnet and the rest.

## Conclusion

Adopt ghostwriter if you write Markdown on Linux or Windows and want a plain editor that hands preview and export to an external processor you install yourself. Do not adopt it if you need macOS support today (the README says an installer is planned and points to KDE's Craft configuration), or if you need the newest release on a distribution that lags. Before committing, check the version your package manager actually offers, because the README notes 2.2.0 and above arrive through KDE Gears while the author's PPA and Copr carry 2.1.6, and confirm whether the Qt 6 OpenGL behaviour affects you by reading the Windows build section in the README.

## FAQ

### How do I install ghostwriter on Ubuntu or Fedora?

On Ubuntu the README gives sudo apt update followed by sudo apt install ghostwriter. On Fedora it gives sudo dnf install ghostwriter. If your distribution carries an older version, the README points to a PPA for Ubuntu derivatives and Copr for Fedora, both at version 2.1.6.

### How do I use ghostwriter to open a Markdown file?

The README's command line example is ghostwriter myfile.md, where myfile.md is the path to your Markdown text file. Live HTML preview and export depend on a processor being detected from your PATH at startup.

### Which Markdown processors does ghostwriter support?

cmark-gfm support is built in. According to the README, ghostwriter also auto-detects Pandoc, MultiMarkdown, or cmark when their installation locations are on your system's PATH, and it detects them on startup.

### Does ghostwriter run on macOS?

The README says an installer is planned for the future and will be hosted at the KDE binary factory along with a nightly build. For now it directs macOS users to the KDE development guide for building KDE applications, and mentions a Craft configuration as a way to help.

### What is the ghostwriter --disable-gpu option for?

It disables GPU acceleration. The README recommends it when compiling against Qt 6 on Windows and running in full screen mode, where menus can otherwise fail to display, and warns that the application may inconsistently launch with it and take several attempts to start.

## Sources

- [KDE/ghostwriter on GitHub](https://github.com/KDE/ghostwriter)
- [License: GPL-3.0](https://github.com/KDE/ghostwriter/blob/master/LICENSE)
- [Project website](https://invent.kde.org/office/ghostwriter)
- [README](https://github.com/KDE/ghostwriter/blob/master/README.md)
- [Releases](https://github.com/KDE/ghostwriter/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/kde-ghostwriter
