write 0.1.1

A fullscreen, distraction-free, write-only Markdown editor that fades text away to silence the writer's inner editor.
# write

`write` is an opinionated, writing-centric editor whose entire purpose is to **silence the
writer's inner editor**. Text fades from the screen shortly after it is typed, so there is nothing
to look back at, nothing to second-guess, and nothing to fiddle with. You simply write.

Output is plain **Markdown**, appended to a daily file. There is no editing, no deletion, no cursor
movement, no selection — once a character is typed it is permanent in the file and soon invisible on
screen. When you are done, open the resulting `.md` in your real editor (Neovim, etc.) to revise.

## How it works

- **Fullscreen, borderless, distraction-free.** The app takes over the screen with a black canvas
  and a single bottom-anchored column of text. No chrome, no menus, no mouse.
- **The fading view.** Each glyph stays fully visible for ~30 seconds, then fades out over ~1 second
  and is gone for good. Older lines scroll off the top as you write.
- **Append-only Markdown.** Everything you type is appended verbatim to today's session file at
  `~/Documents/write/YYYY-MM-DD.md` (falling back to your home directory if there is no Documents
  folder). The file is flushed and `fsync`'d roughly every 30 seconds and again on a clean exit, so
  your words are durable.
- **One writer per day.** Each day shares a single file, guarded by an advisory lock. If a second
  `write` is already running for today, the new instance exits quietly instead of fighting over the
  file.

## Keys

| Key | Effect |
|-----|--------|
| any character | appended to the file and shown on screen |
| `Enter` | inserts a paragraph break (`\n\n`); a second consecutive `Enter` clears the screen |
| `Backspace` | does **not** delete — appends a single space and clears the screen |
| `Esc` | opens the menu (live word count); `Esc` again resumes, `Q` quits |

Arrows, `Delete`, `Home`/`End`, `PageUp`/`PageDown`, and `Cmd`/`Ctrl` combinations (paste, undo, …)
are intentionally ignored. There is no way to revise text from inside `write`.

## Install & run

Requires a recent Rust toolchain (edition 2024).

```bash
cargo run --release
```

Your writing lands in `~/Documents/write/`, one Markdown file per day.

## Platform support

`write` is built on [`egui`/`eframe`](https://github.com/emilk/egui) and is portable in principle,
but it is developed and tested on **macOS** first. Other platforms track upstream `egui` maturity.