Skip to content

Notes ​

A plain text editor with real files, selection, clipboard and edit history. Save state and the file path stay visible.

Run it ​

Build examples with devenv shell -- lcom-ng-build, then:

sh
lcom-ng run -- build/examples/word_processor build/notes.txt

Controls ​

ControlAction
Cmd/Ctrl+S or F2Save the document
Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z (Ctrl+Y)Undo / redo
Cmd/Ctrl+A / C / X / VSelect all / copy / cut / paste
Arrows / Shift+arrowsMove / extend selection
Mouse click / dragPlace caret / select text
Home / End / Page Up / DownNavigate document
F1Shortcuts
Esc / Cmd/Ctrl+WClose, with save prompt for unsaved work

In the app ​

The writing surface stays central, with a real Save button, edit history and word count.

A clean page · The writing surface stays central, with a real Save button, edit history and word count.

What it demonstrates ​

PS/2 input, text selection, bounded document storage, edit snapshots, atomic file replacement and framebuffer rendering. Notes supports printable ASCII and line breaks up to 4 KB. Host clipboard text must fit the document and supported character set.

Source: examples/word_processor.c.

Refresh captures with the screenshot workflow.

Course/docs licensed CC BY 4.0. Code licensed MIT.