A writing tool for neovim — with the feel of a typewriter and WordStar. From the blank page to a finished EPUB/PDF. For people who write.
("Foolscap" is an old paper size, named after its jester's-cap watermark: the blank sheet waiting for you.)
⚠️ Early version (v0.1). It works, but there are surely still bugs I haven't found. Feedback and bug reports are very welcome via the Issues.
🇩🇪 Auf Deutsch: Dieses README ist Englisch zuerst, aber der vollständige deutsche Text steht direkt darunter → Deutsch. 👇 Foolscap selbst ist voll zweisprachig; die Grammatikprüfung bringt Deutsch gleich mit.
The building blocks already exist (Goyo, vim-pencil, ltex …). What was missing was a coherent whole: a calm, distraction-free, Vim-based writing program that
- feels like a typewriter — warm amber-phosphor light, a centered text column, and "typewriter scrolling" (the line you type stays mid-screen while the text rolls up like paper),
- watches your grammar & style live in several languages,
- counts word goals,
- builds your manuscript as EPUB and PDF with one keystroke,
- and can be used by someone who has never touched Vim.
You write in Markdown — simple, future-proof, readable everywhere.
| ✍️ Prose mode | soft wrap, motion by visible lines, spell-check, gentle typography (--→–, ...→…) |
| 📝 Markdown clarity | headings, **bold**, *italic*, quotes and inline code each get their own WordPerfect-style look — the source (#, **) stays visible, nothing is concealed or reflowed |
| 🎞️ Typewriter look | monochrome amber/green/paper theme + typewriter scrolling |
| 🖥️ DOS screen | a full DOS writing screen — title bar, working pull-down menus, style bar, ruler, status line — modelled on WordStar 7.0d, in VGA grey-red or amber |
| 🎯 Focus | centered text column (default 65 chars), dependency-free, any terminal |
| 📖 Grammar & style | multilingual via ltex-ls (English, German, …); spelling is left to the editor |
| 🔢 Word goals | daily goal + progress, also in the statusline |
| 📚 Book export | Markdown → EPUB + PDF, typeset with whatever you have: typst, tectonic, XeLaTeX … |
| 🔇 No noise | no sounds, no gimmicks — just you and the text |
- neovim ≥ 0.10
- (optional, for grammar)
ltex-ls-pluson yourPATH— easiest is the release with bundled Java (no system Java needed) - (optional, for export)
pandoc; for PDF one typesetter —typst(small and modern),tectonic, or a TeX installation (xelatex/lualatex)
Run :checkhealth foolscap to see what's available.
As a plugin (with lazy.nvim):
{
"drdewes/foolscap.nvim",
ft = { "markdown", "text", "asciidoc", "rst", "org" },
opts = {
languages = { "en-US", "de-DE" }, -- first = default; put your language first
theme = "amber", -- amber | green | paper | none
width = 65,
keymaps = true, -- creates <leader>r…
},
}As a standalone writing app (for non-Vimmers) — runs as a separate neovim app without touching your own config:
git clone https://github.com/drdewes/foolscap.nvim ~/.config/foolscap-nvim
echo "alias write='NVIM_APPNAME=foolscap-nvim nvim'" >> ~/.bashrcThen start writing with write mytext.md. (Starter config lives in
bootstrap/.)
:Foolscap " writing room on/off (prose + focus + typewriter + theme)
:FoolscapProgress " word progress
:FoolscapGoal 1500 " daily goal
:FoolscapLanguage en-US " switch grammar language
:FoolscapBuild " build the book as EPUB/PDFMarkdown files open in prose mode automatically; get the full writing room with
:Foolscap (or <leader>rr if keymaps = true).
| Command | Effect |
|---|---|
:Foolscap |
writing room on/off |
:FoolscapProse |
prose mode only |
:FoolscapFocus |
centered focus only |
:FoolscapScreen |
DOS screen on/off |
:FoolscapProgress |
show word progress |
:FoolscapGoal {n} |
set daily goal |
:FoolscapGrammar |
grammar check on/off |
:FoolscapLanguage {lang} |
switch grammar language (e.g. de-DE) |
:FoolscapBuild |
build the book as EPUB/PDF |
<leader>rr writing room · <leader>rp prose · <leader>rf focus ·
<leader>rg progress · <leader>rt grammar · <leader>rb build
Also handy in the editor: zg add word to dictionary · ]g/[g next/previous
grammar hint · <leader> + LSP code action to accept a correction.
require("foolscap").setup({
languages = { "en-US", "de-DE" }, -- first = default
spell = true,
spelllang = "en,de",
width = 65,
typewriter = true,
theme = "amber", -- amber | bernstein | green | paper
-- wp51 | word55 | vga | none
screen = { enable = false, tab_char = "►",
compiler = "compiler" }, -- DOS screen
goal = 1000,
markdown_visuals = true,
typography = true,
grammar = true,
keymaps = false,
build = { formats = { "epub", "pdf" } },
})While you write Markdown, Foolscap gives the structure a clear,
WordPerfect-style look — without touching the text: # and ** stay
visible, nothing is concealed or reflowed.
| element | look |
|---|---|
# Heading 1 |
accent colour, bold, double-underlined, centered in the column |
## Heading 2 |
accent colour, bold, underlined |
### Heading 3 |
accent colour, bold |
**bold** |
bold weight |
*italic* |
its own emphasis colour, italic |
> quote |
dimmed, italic |
`code` |
inverse (colours swapped) |
Colours follow the active theme (e.g. yellow-on-blue in the wp51
WordPerfect look). Turn it off with markdown_visuals = false.
The same Markdown, seven moods — set with theme = "…":
wp51 — WordPerfect 5.1![]() |
amber — amber CRT![]() |
green — green phosphor![]() |
paper — light / paper![]() |
word55 — MS-DOS Word 5.5![]() |
bernstein — amber tube (warm black)![]() |
vga — DOS screen, VGA colours![]() |
theme = "vga" sets the colours; screen = { enable = true } builds the
whole screen: title bar, menu bar, style bar, ruler — and at the bottom the
status line with page, line and position in inches, your word goal on the
left. It is modelled line by line on the screen of WordStar 7.0d; the
program itself is Foolscap, and says so in its title bar.
The menu bar is real. F10 or Alt+the highlighted letter drops it
down; arrow keys walk, the highlighted letter jumps straight to an entry,
Enter runs it, Esc closes, ←/→ flip to the neighbouring menu — a
DOS pull-down with its shadow, exactly where you remember it. Since neovim
is underneath, the left hand works too: j/k walk, h/l flip, q
closes. No entry uses those five letters as its jump key.
Every entry does something real; nothing is decoration. The shortcut column
shows the actual neovim keys rather than the original ^KS, because the
menu is there to teach you the program, not to fake one:
| Menu | Contains |
|---|---|
| File | new, letter…, open, save, save as, print (PDF), print with… , quit |
| Edit | undo, redo, cut, copy, paste, find, replace |
| View | word count, spelling, grammar, typewriter scrolling, screen frame |
| Insert | template… (letter, manuscript, note), date, time, rule, page break |
| Style | bold, italic, headings 1–3, quote, plain |
| Layout | centre line, text column 65 / 72 / 80 |
| Utilities | spelling suggestions, language, daily goal, build book, help |
Letters. File → Brief… opens a fill-in box in the same DOS style:
recipient, street, town, subject, date, salutation, closing, signature. Each
field shows its extent as a dotted rail, the block cursor sits where you type.
Tab walks the fields, F2 accepts, Esc cancels. What you filled in becomes the
document's YAML header — editable afterwards like any other text — the cursor
lands in the letter body, and the print scheme is set to DIN-Brief for you.
So: letter, type, print.
Templates and print schemes. Insert → Vorlage… drops a skeleton into an empty document — the same letter, a manuscript with title/author metadata, or a dated note. File → Drucken mit… picks how the PDF is set:
| Standard | eisvogel if it is installed, otherwise pandoc's plain layout |
| Schlicht | no template at all |
| DIN-Brief | templates/din-brief.latex from this repo, via KOMA-Script |
The choice sticks to the document, so Drucken (PDF) keeps using it. Choosing
the letter template in Insert sets the letter scheme with it. For the letter,
copy templates/din-brief.latex into ~/.local/share/pandoc/templates/ and
fill the YAML fields (empfaenger_name, betreff, anrede, gruss … or the
English toname/subject/opening/closing); a letterhead with logo goes in
via logo: and absender_*.
Two notes on File: Save as… runs :saveas, which renames the buffer — so
the title bar follows. (:w newname merely writes a copy; vim keeps the old
name, and the title bar honestly says so.) Print (PDF) builds through
pandoc without letting its output scribble over the screen.
The screen looks after itself: resize the window or toggle fullscreen and it
re-centres; run a :!command and it comes back afterwards; anything that
resets laststatus, syntax or the colours gets undone.
Quiet builds. A :!command writes its output across the screen and then
waits for you to press Enter — fatal to the illusion. So while the DOS screen
is up, <leader>c (the usual LARBS build mapping, :w! | !compiler "%:p")
runs in the background instead, and reports in one line where the word count
usually sits: Baue brief.md … → Fertig gebaut: brief.md, or the first line
of the error. Your own <leader>c mapping is restored when you leave the
screen, and nothing happens at all if the compiler script isn't on your
PATH. Point it elsewhere or switch it off with
screen = { compiler = "myscript" } / = false.
Apart from the menu it is only the look. There is no DOS keyboard layout:
you type and move with plain neovim and the Foolscap commands. (If you want
the original ^KS and ^QF, run the real thing in DOSBox-X.)
Two tubes, via the launcher in bootstrap/:
foolscap-dos |
grey and red, as on a VGA colour monitor |
foolscap-dos --bernstein |
the same mask on an amber-phosphor monitor |
It opens its own kitty window; the screen is always 80 columns wide and sits
in the middle if the window is larger (fullscreen!). The text itself stops
earlier, at the writing column — the ruler marks it with [ and ], so you
can see that the space to its right belongs to the screen, not to the text.
Layout → text column 80 fills it out. For the last mile of
authenticity it asks for the original VGA text font — Px437 IBM VGA 9x16
from the Ultimate Oldschool PC Font Pack,
dropped into ~/.local/share/fonts. Any monospace font works
(FOOLSCAP_FONT="IBM Plex Mono" foolscap-dos), but the ruler's tab marks
(►, CP437 0x10) sit properly only in a DOS font — otherwise set
screen = { tab_char = ">" }.
The font size is computed, not guessed. A VGA character cell is exactly
9×16 pixels, and a pixel font stays sharp only at whole multiples of that.
The launcher reads your Xft.dpi, works out size = 1152 × multiple ÷ dpi
and picks the largest multiple that still fits your screen — 1× is 720×400,
2× is 1440×800. Override with FOOLSCAP_DOS_SCALE=1|2|3, or set
FOOLSCAP_FONT_SIZE to bypass the arithmetic entirely.
The frame takes its colours from the active palette, so it works in every
theme: theme = "green" puts the DOS screen on a green-phosphor terminal.
Foolscap stands on many shoulders: the LARBS tradition (Luke Smith), Goyo, vim-pencil and ltex-ls(-plus). Built with Claude Code. Thank you.
MIT — see LICENSE.
Dieses README ist Englisch zuerst, weil Foolscap sich an ein weltweites neovim-Publikum richtet. Der Autor (Holger, ein glücklicher Nicht-Programmierer) hat es mit Claude Code für sich selbst gebaut und unter MIT veröffentlicht, falls andere „Schreiberlinge" auch Freude daran haben. Foolscap ist voll zweisprachig — alles funktioniert auf Deutsch genauso, die Grammatikprüfung bringt Deutsch mit.
⚠️ Frühe Version (v0.1). Es funktioniert, aber es steckt bestimmt noch der eine oder andere Fehler drin, den ich noch nicht gefunden habe. Rückmeldungen und Fehlerberichte sind sehr willkommen – gern über die Issues.
Ein Schreibwerkzeug für neovim – mit dem Gefühl von Schreibmaschine und WordStar. Von der leeren Seite bis zum fertigen EPUB/PDF. Für Menschen, die schreiben. („Foolscap" = ein altes englisches Papierformat, benannt nach dem Narrenkappen-Wasserzeichen. Der leere Bogen, der auf dich wartet.)
Die einzelnen Bausteine gibt es längst (Goyo, vim-pencil, ltex …). Was fehlte, war ein stimmiges Ganzes: ein ruhiges, ablenkungsfreies Schreibprogramm auf Vim-Basis, das
- sich anfühlt wie eine Schreibmaschine – warmes Bernstein-Phosphor-Licht, zentrierte Textspalte, und „Schreibmaschinen-Scrollen" (die Tippzeile bleibt in der Bildmitte, der Text wandert nach oben wie das Papier),
- dir Grammatik & Stil in mehreren Sprachen live über die Schulter schaut,
- Wortziele zählt,
- und auf einen Tastendruck dein Manuskript als EPUB und PDF baut,
- und das auch jemand benutzen kann, der noch nie mit Vim gearbeitet hat.
Du schreibst in Markdown – schlicht, zukunftssicher, überall lesbar.
| ✍️ Prosa-Modus | weicher Umbruch, Bewegung nach sichtbaren Zeilen, Rechtschreibung, sanfte Typografie (--→–, ...→…) |
| 📝 Markdown-Klarheit | Überschriften, **fett**, *kursiv*, Zitate und Inline-Code bekommen je einen eigenen WordPerfect-Look – der Quelltext (#, **) bleibt sichtbar, nichts wird versteckt oder umgebrochen |
| 🎞️ Schreibmaschinen-Look | monochromes Bernstein-/Grün-/Papier-Thema + Schreibmaschinen-Scrollen |
| 🖥️ DOS-Bildschirm | ein ganzer DOS-Schreibbildschirm — Titelzeile, echte Klappmenüs, Stilleiste, Lineal, Statuszeile — nachempfunden dem Bildschirm von WordStar 7.0d, grau-rot oder in Bernstein |
| 🎯 Fokus | zentrierte Textspalte (Standard 65 Zeichen), dependency-frei, jedes Terminal |
| 📖 Grammatik & Stil | mehrsprachig über ltex-ls (Deutsch, Englisch, …); Rechtschreibung macht der Editor |
| 🔢 Wortziele | Tagesziel + Fortschritt, auch in der Statuszeile |
| 📚 Buch-Export | Markdown → EPUB + PDF, gesetzt mit dem, was da ist: typst, tectonic, XeLaTeX … |
| 🔇 Kein Lärm | keine Sounds, kein Schnickschnack – nur du und der Text |
- neovim ≥ 0.10
- (optional, für Grammatik)
ltex-ls-plusim PATH – am einfachsten der Release mit gebündeltem Java (kein System-Java nötig) - (optional, für Export)
pandoc; für PDF ein Satzprogramm —typst(klein und modern),tectonicoder eine TeX-Installation (xelatex/lualatex)
:checkhealth foolscap sagt dir, was vorhanden ist.
Als Plugin (mit lazy.nvim):
{
"drdewes/foolscap.nvim",
ft = { "markdown", "text", "asciidoc", "rst", "org" },
opts = {
languages = { "de-DE", "en-US" }, -- erste = Standard
theme = "amber", -- amber | green | paper | none
width = 65,
keymaps = true, -- legt <leader>r… an
},
}Als eigenständiges Schreibprogramm (für Nicht-Vimmer) – läuft als separate neovim-App, ohne deine sonstige Konfiguration anzufassen:
git clone https://github.com/drdewes/foolscap.nvim ~/.config/foolscap-nvim
echo "alias schreiben='NVIM_APPNAME=foolscap-nvim nvim'" >> ~/.bashrcDann startest du dein Schreibprogramm einfach mit schreiben meintext.md.
(Die Starter-Konfiguration liegt in bootstrap/.)
:Foolscap " Schreibraum an/aus (Prosa + Fokus + Schreibmaschine + Thema)
:FoolscapProgress " Wort-Fortschritt
:FoolscapGoal 1500 " Tagesziel
:FoolscapBuild " Buch als EPUB/PDF bauenMarkdown-Dateien öffnen automatisch im Prosa-Modus. Den vollen Schreibraum holst
du dir mit :Foolscap (oder <leader>rr, wenn keymaps = true).
| Befehl | Wirkung |
|---|---|
:Foolscap |
Schreibraum an/aus |
:FoolscapProse |
nur Prosa-Modus an/aus |
:FoolscapFocus |
nur zentrierten Fokus an/aus |
:FoolscapScreen |
DOS-Bildschirm an/aus |
:FoolscapProgress |
Wort-Fortschritt zeigen |
:FoolscapGoal {n} |
Tagesziel setzen |
:FoolscapGrammar |
Grammatik-Check an/aus |
:FoolscapLanguage {lang} |
Grammatiksprache umschalten (z. B. en-US) |
:FoolscapBuild |
Buch als EPUB/PDF bauen |
<leader>rr Schreibraum · <leader>rp Prosa · <leader>rf Fokus ·
<leader>rg Fortschritt · <leader>rt Grammatik · <leader>rb Bauen
Im Editor zusätzlich nützlich: zg Wort ins Wörterbuch · ]g/[g zum nächsten
Grammatik-Hinweis · <leader> + LSP-Code-Action zum Übernehmen einer Korrektur.
require("foolscap").setup({
languages = { "de-DE", "en-US" },
spell = true,
spelllang = "de,en",
width = 65,
typewriter = true,
theme = "amber", -- amber | bernstein | green | paper
-- wp51 | word55 | vga | none
screen = { enable = false, tab_char = "►",
compiler = "compiler" }, -- DOS-Bildschirm
goal = 1000,
markdown_visuals = true,
typography = true,
grammar = true,
keymaps = false,
build = { formats = { "epub", "pdf" } },
})Während du Markdown schreibst, gibt Foolscap der Struktur einen klaren
WordPerfect-Look – ohne den Text anzufassen: # und ** bleiben
sichtbar, nichts wird versteckt oder umgebrochen.
| Element | Look |
|---|---|
# Überschrift 1 |
Akzentfarbe, fett, doppelt unterstrichen, zentriert in der Spalte |
## Überschrift 2 |
Akzentfarbe, fett, unterstrichen |
### Überschrift 3 |
Akzentfarbe, fett |
**fett** |
fette Schrift |
*kursiv* |
eigene Betonungsfarbe, kursiv |
> Zitat |
gedimmt, kursiv |
`code` |
invers (Farben getauscht) |
Die Farben folgen dem aktiven Thema (z. B. Gelb-auf-Blau im wp51-
WordPerfect-Look). Abschalten mit markdown_visuals = false.
Dasselbe Markdown, sieben Stimmungen — per theme = "…":
wp51 — WordPerfect 5.1![]() |
amber — Bernstein-CRT![]() |
green — Grün-Phosphor![]() |
paper — hell / Papier![]() |
word55 — MS-DOS Word 5.5![]() |
bernstein — Amber-Röhre (warmes Schwarz)![]() |
vga — DOS screen, VGA colours![]() |
theme = "vga" setzt die Farben, screen = { enable = true } baut die
den ganzen Bildschirm: Titelzeile, Menüleiste, Stilleiste, Lineal — und unten
die Statuszeile mit Seite, Zeile und Position in Zoll, links das Tagesziel.
Er ist Zeile für Zeile dem Bildschirm von WordStar 7.0d nachempfunden;
das Programm selbst ist Foolscap und schreibt das auch in die Titelzeile.
Die Menüleiste ist echt. F10 oder Alt+hervorgehobener Buchstabe
klappt sie auf; Pfeiltasten wandern, der hervorgehobene Buchstabe springt
direkt, Enter führt aus, Esc bricht ab, ←/→ blättert zum
Nachbarmenü — ein DOS-Klappmenü mit Schatten, da wo Sie es erwarten. Und
weil neovim darunterliegt, geht es auch mit der linken Hand: j/k
wandern, h/l blättern, q schließt. Kein Eintrag benutzt diese fünf
Buchstaben als Sprungtaste.
Jeder Eintrag tut wirklich etwas, nichts ist Dekoration. In der rechten
Spalte stehen die echten neovim-Tasten statt der originalen ^KS — das Menü
soll die Bedienung beibringen, nicht eine vortäuschen:
| Menü | Inhalt |
|---|---|
| File | neu, Brief…, öffnen, speichern, speichern als, drucken (PDF), drucken mit… , beenden |
| Edit | zurücknehmen, wiederholen, ausschneiden, kopieren, einfügen, suchen, ersetzen |
| View | Wörter zählen, Rechtschreibung, Grammatik, Schreibmaschine, Bildschirmrahmen |
| Insert | Vorlage… (Brief, Manuskript, Notiz), Datum, Uhrzeit, Trennlinie, Seitenumbruch |
| Style | fett, kursiv, Überschrift 1–3, Zitat, normal |
| Layout | Zeile zentrieren, Schreibspalte 65 / 72 / 80 |
| Utilities | Rechtschreibvorschläge, Sprache, Tagesziel, Buch bauen, Hilfe |
Briefe. File → Brief… öffnet einen Ausfüllkasten im selben DOS-Stil:
Empfänger, Straße, Ort, Betreff, Datum, Anrede, Gruß, Unterschrift. Jedes
Feld zeigt seine Strecke als punktierte Linie, der Blockcursor steht dort, wo
getippt wird. Tab wandert durch die Felder, F2 übernimmt, Esc bricht ab. Das Ausgefüllte
wird zum YAML-Kopf des Dokuments — danach ganz normal änderbar —, der Cursor
sitzt im Brieftext, und das Druckschema steht schon auf DIN-Brief. Also:
Brief, tippen, drucken.
Vorlagen und Druckschemata. Insert → Vorlage… setzt ein Gerüst in ein leeres Dokument: denselben Brief, ein Manuskript mit Titel/Autor oder eine datierte Notiz. File → Drucken mit… wählt, wie das PDF gesetzt wird:
| Standard | eisvogel, falls installiert, sonst pandocs schlichtes Layout |
| Schlicht | ganz ohne Vorlage |
| DIN-Brief | templates/din-brief.latex aus diesem Repo, über KOMA-Script |
Die Wahl bleibt am Dokument hängen, Drucken (PDF) benutzt sie weiter. Wer die
Briefvorlage einsetzt, bekommt das Briefschema gleich mit. Für den Brief die
Datei templates/din-brief.latex nach ~/.local/share/pandoc/templates/
kopieren und die YAML-Felder füllen (empfaenger_name, betreff, anrede,
gruss … oder englisch toname/subject/opening/closing); ein Briefkopf
mit Logo kommt über logo: und absender_* hinein.
Zwei Hinweise zu File: Speichern als… führt :saveas aus und benennt den
Puffer wirklich um — die Titelzeile folgt. (:w neuername schreibt dagegen
nur eine Kopie; vim behält den alten Namen, und die Titelzeile sagt das auch
ehrlich.) Drucken (PDF) baut über pandoc, ohne dass dessen Ausgabe über
den Bildschirm kritzelt.
Der Bildschirm passt auf sich auf: Fenstergröße ändern oder Vollbild
umschalten — er rückt sich neu mittig; nach einem :!befehl holt er sich das
Bild zurück; und was laststatus, syntax oder die Farben verstellt, wird
rückgängig gemacht.
Still bauen. Ein :!befehl schreibt seine Ausgabe quer über den
Bildschirm und wartet dann auf die Eingabetaste — das Ende jeder Illusion.
Solange der DOS-Bildschirm steht, läuft <leader>c (die übliche
LARBS-Belegung :w! | !compiler "%:p") deshalb im Hintergrund und meldet
sich in einer Zeile dort, wo sonst die Wortzahl steht: Baue brief.md … →
Fertig gebaut: brief.md, im Fehlerfall die erste Fehlerzeile. Ihre eigene
Belegung von <leader>c kommt beim Verlassen zurück, und ohne das Skript
compiler im PATH passiert überhaupt nichts. Anderes Skript oder
abschalten: screen = { compiler = "meinskript" } bzw. = false.
Vom Menü abgesehen ist es nur die Optik. Es gibt kein DOS-Tastenlayout:
getippt und bewegt wird ganz normal mit neovim und den Foolscap-Befehlen.
(Wer die originalen ^KS und ^QF will, startet das Original in DOSBox-X.)
Zwei Röhren, über den Starter in bootstrap/:
foolscap-dos |
grau-rot, wie auf einem VGA-Farbmonitor |
foolscap-dos --bernstein |
dieselbe Maske auf einem Amber-Phosphor-Monitor |
Er öffnet ein eigenes kitty-Fenster; der Bildschirm ist immer 80 Zeichen
breit und sitzt mittig, wenn das Fenster größer ist (Vollbild!). Der Text
endet früher, nämlich an der Schreibspalte — das Lineal markiert sie mit [
und ], damit sichtbar ist, dass der Platz rechts davon zum Bildschirm
gehört und nicht zum Text. Über Layout → Spalte 80 füllt er ihn aus. Für den letzten
Schritt zur Echtheit will er die originale VGA-Textschrift — Px437 IBM VGA
9x16 aus dem Ultimate Oldschool PC Font Pack,
abgelegt in ~/.local/share/fonts. Es geht auch jede andere feste Schrift
(FOOLSCAP_FONT="IBM Plex Mono" foolscap-dos), nur sitzen die Tabulator-Marken
des Lineals (►, CP437 0x10) sauber allein in einer DOS-Schrift — sonst
screen = { tab_char = ">" } setzen.
Die Schriftgröße wird gerechnet, nicht geraten. Eine VGA-Zeichenzelle ist
genau 9×16 Pixel groß, und eine Pixelschrift bleibt nur bei ganzzahligen
Vielfachen davon scharf. Der Starter liest Xft.dpi, rechnet
Größe = 1152 × Vielfaches ÷ DPI und nimmt das größte Vielfache, das noch
auf den Bildschirm passt — 1× sind 720×400, 2× sind 1440×800. Überstimmen mit
FOOLSCAP_DOS_SCALE=1|2|3, oder FOOLSCAP_FONT_SIZE setzen und die Rechnung
ganz umgehen.
Der Rahmen nimmt seine Farben aus der aktiven Palette, funktioniert also in
jedem Thema: theme = "green" stellt den DOS-Bildschirm auf ein
Grün-Phosphor-Terminal.
Foolscap steht auf den Schultern vieler: der LARBS-Tradition (Luke Smith), Goyo, vim-pencil und ltex-ls(-plus). Danke.
MIT – siehe LICENSE.








