Skip to content

FaNotes 2026.9.22

Choose a tag to compare

@Nikoheld Nikoheld released this 09 Sep 05:19
bf88dae

Deutsch

  • Text in deine Handschrift: Schieber, Einfügen, Seite wächst, Buchstaben schwanken. Die drei Regler Schriftgröße, Zeilenabstand und Natürliche Variation ändern Wert und Live-Vorschau, und Einfügen in das Textfeld setzt den Zwischenablage-Text ein — auch wenn der Stift auf einem Inline-Blatt aktiv ist; der Dialog zählt als Oberfläche, nicht als Tinte. Ein Text, der höher ist als das aktuelle Blatt, wird vollständig gesetzt, indem die Seite bis zur bestehenden Schreibgrenze wächst, statt „Der Text passt nicht auf diese Seite“ zu zeigen. Nur am Anschlag selbst wird blockiert. Bei der Voreinstellung der Variation haben wiederholte Buchstaben leicht unterschiedliche Höhen und sitzen nicht auf einer Linie; Variation 0 bleibt gleichmäßig. Die Tinte kommt weiter aus deinen GlyphenWerk-Vorlagen. GitHub-PRs #30 (stille Seitenstatistik / Zoom ohne Ruckeln), #31 (eigene Kamera je Spalte), #32 (Add-on-Store), #33 (Sync) und #34 (einklappbare Handschrift-Abschnitte).
  • Einklappbare Abschnitte beim Handschreiben. Im Stiftmodus fügt „Abschnitt“ mit einem Tipp auf das Blatt eine Titelzeile ein — alles darunter rückt nach unten, nichts wird überdeckt. In die Kopfzeile schreibst du den Titel von Hand (etwa „Aufgabe 3“), darunter hat der Abschnitt beliebig viel Platz: Wer nahe an den nächsten Titel schreibt, schiebt ihn samt allem Folgenden weiter nach unten. Der Pfeil am linken Rand klappt den Inhalt ein — die Tinte des Abschnitts verschwindet, der Rest der Seite rückt nach oben — und wieder aus, exakt an die alte Stelle. Abschnitte werden mit der Stiftebene gespeichert; das × in der Kopfzeile löst einen Abschnitt auf und lässt die Tinte liegen. Ein- und Ausklappen setzt den Verlauf von Rückgängig zurück, weil verschobene Striche sonst an falscher Stelle wiederkämen. PDF-Notizen bieten keine Abschnitte, ihre Tinte gehört zur Seite darunter; auf Textnotizen bewegen Abschnitte nur die Handschrift, nicht den getippten Text.
  • Sync: deine Notizen auf allen Geräten, Ende-zu-Ende verschlüsselt. Unter Einstellungen → Sync (oder Strg+P → „Sync einrichten“) legst du mit E-Mail-Adresse und Passwort ein Konto an; jedes weitere Gerät meldet sich damit an und holt den ganzen Tresor — Notizen, .famd-Begleiter, PDFs, Bilder, Ordnerfarben und Fachbücher. Danach läuft der Abgleich von selbst: 2,5 Sekunden nach jeder Änderung, jede Minute, beim Zurückkehren ins Fenster und sobald das Netz wieder da ist; ein Eintrag in der Statusleiste zeigt Stand, Fehler und Konflikte, „Jetzt synchronisieren“ steht in der Palette. Aus dem Passwort wird auf dem Gerät ein Schlüssel abgeleitet (PBKDF2, 600 000 Runden), der einen zufälligen Tresorschlüssel einpackt; jede Datei wird mit AES-256-GCM verschlüsselt, ihr Name durch einen HMAC ersetzt. Der Server speichert nur Chiffrate, zufällige Kennungen, eine Scrypt-Ableitung des Anmeldeschlüssels und die Geräteliste — er kann weder Inhalte noch Dateinamen lesen, und deshalb lässt sich ein vergessenes Passwort auch nicht zurücksetzen. Wird dieselbe Datei auf zwei Geräten geändert, gewinnt die zuerst hochgeladene Fassung den Pfad und die andere bleibt als „(Konflikt Gerät Datum)“-Kopie erhalten; eine offene, ungespeicherte Notiz wird nie von außen überschrieben. Geräte lassen sich einzeln abmelden, ein Passwortwechsel meldet alle anderen Geräte ab, das Konto kann samt allen Serverdaten gelöscht werden. Die Web-Version synchronisiert genauso; Sitzung und Tresorschlüssel liegen auf dem Desktop im Schlüsselbund des Systems. Unterlagen: docs/SYNC.md.
  • Add-on-Store: Erweiterungen aus GitHub, ohne FaNotes-Update. Ein neuer Add-on-Store (Strg+P → „Add-on-Store“ oder Einstellungen → Add-ons) liest das offene Verzeichnis Nikoheld/FaNotes-Addons: Wer ein Add-on beisteuern will, legt dort einen Ordner mit manifest.json, main.js und README.md an und öffnet einen Pull Request — nach dem Merge baut das Repository seinen Index selbst neu, und das Add-on erscheint bei allen Nutzern im Reiter „Entdecken“ mit Suche, Kategorien, README, Berechtigungen und Prüfsumme. Installierte Add-ons lassen sich an- und abschalten, neu starten, aktualisieren (auf Wunsch automatisch beim Start) und entfernen; ein Reiter „Entwickeln“ lädt ein eigenes Add-on aus lokalen Dateien und zeigt sein Protokoll. Add-ons erreichen FaNotes über ein einfaches fanotes-Objekt: Notizen lesen, schreiben, anlegen und suchen, den Editor steuern, Handschrift und Seitenstatistik lesen, Befehle in die Palette hängen, Panels aus Bausteinen (Überschrift, Text, Markdown, Knopf, Eingabe, Auswahl, Liste, Fortschritt) im neuen Dock rechts zeigen, Einträge in die Statusleiste setzen, Hinweise und Dialoge öffnen, auf Ereignisse wie Notizwechsel, Speichern oder Stiftstriche reagieren, eigene Daten ablegen und — mit eigener Berechtigung und Host-Liste — https-Anfragen stellen. Jedes Add-on läuft in einem eigenen Web Worker ohne Zugriff auf Oberfläche, Dateien oder Netz; jeder Aufruf wird gegen die Berechtigungen aus dem Manifest geprüft, begrenzt (240 Aufrufe je Sekunde, 30 Sekunden je Aufruf) und überwacht: ein Add-on, das hängt, acht Fehler in einer Minute macht oder FaNotes flutet, wird gestoppt und deaktiviert — FaNotes selbst läuft weiter. Die vollständige Dokumentation mit Beispielen liegt im Add-on-Repository.
  • Geteilte Ansicht: jede Seite hat ihre eigene Kamera. Bisher teilten sich beide Spalten einen Zoom — wer links hineinzoomte, zoomte rechts mit, und das Öffnen der zweiten Spalte setzte den Zoom der ersten zurück. Jetzt zoomt Strg+Mausrad nur das Blatt unter dem Zeiger; Strg++ / Strg+- / Strg+0, Esc und die Trackpad-Geste gelten für die zuletzt berührte Spalte. Die Handschrift-Vorschau der zweiten Spalte wird beim Zoomen in der neuen Größe nachgezeichnet statt als 1×-Bild gestreckt, und die Spaltenbreiten und der Trenner liegen auf ganzen Gerätepixeln, damit der Text der zweiten Spalte nicht auf einem halben Pixel weich gezeichnet wird.
  • Der Aufklapp-Pfeil neben Überschriften sitzt wieder richtig. Die Falt-Spalte links vom Text war um einen Absatz nach unten verschoben (ein doppelter Innenabstand): Der Pfeil erschien unter der Überschrift statt daneben, und ein Klick traf die falsche Zeile — deshalb tat er nichts. Der Pfeil steht jetzt neben seiner Überschrift, klappt den Abschnitt ein und aus, und der weiße Streifen ohne Punkte, den die Spalte über das Raster legte, ist weg.
  • Statistik still in der .famd: Die Statusleiste und die Gliederung zeigen nicht mehr „Auf der Seite 29 min 0 s“. Stattdessen führt jede Notiz ihre Statistik leise in der Begleiterdatei: wann sie erstellt, geändert, zuerst und zuletzt geöffnet, zuletzt geschlossen und gespeichert wurde; wie oft geöffnet und gespeichert; wie lange du auf der Seite warst (gesamt, mit Fenster im Vordergrund, längste und letzte Sitzung, je Stunde und Wochentag, an welchen Tagen); was du getippt hast (Tastenanschläge, geschriebene und gelöschte Zeichen, fertige Wörter, Zeilen, Einfügungen, Autokorrekturen, angenommene Vorschläge, Rückgängig/Wiederholen, Tippzeit und Tippschübe); was du von Hand geschrieben hast (Stift-auf-Papier-Zeit, Schreibzeit mit kurzen Pausen, Schübe, Striche, Punkte, Strichlänge in Millimetern, längster Strich, Handschrift- und Kunststriche, radierte Striche, Farben, Pinsel, aktueller Stand der Stiftebene) und wie das Dokument aussieht (Wörter, Zeichen, Zeilen, Absätze, Überschriften, Links, Bilder, Aufgaben und erledigte Aufgaben, Code- und Formelblöcke, Tabellen, Zitate, Listenpunkte, Lesezeit, Höchststand an Wörtern, hinzugefügte und entfernte Wörter). Geschrieben wird beim Speichern, beim Verlassen und Schließen der Notiz, beim Beenden und sonst alle 90 Sekunden — ohne dass „Speichern …“ aufblinkt. Der Sekundentakt der Statistik zeichnet dabei nicht mehr die ganze Oberfläche neu.
  • Zoom ohne Ruckeln: Ein Mausrad- oder Trackpad-Zoom kommt als Schub vieler kleiner Schritte. Bisher baute jeder Schritt die komplette Stiftleiste samt Werkzeugen neu auf und zeichnete die ganze Handschrift in eine zoomgroße Fläche — auf einer vollen Seite mehrfach pro Schub. Jetzt folgt die Stiftebene der Kamera direkt, ohne Neuaufbau, und schärft die Tinte einmal nach, wenn der Schub abgeklungen ist; die Zwischenschritte skaliert das Blatt selbst. Auf einer Seite mit 200 Strichen sinkt die Skriptzeit eines Zoomschubs um rund drei Viertel, die Bildfolge bleibt bei 60 Bildern pro Sekunde.

English

  • Text to handwriting: sliders, paste, the page grows, letters vary. The three Schriftgröße / Zeilenabstand / Natürliche Variation sliders change their bound values and the live preview, and paste into the Text field inserts the clipboard text — even while the pen is active on an inline sheet; the dialog counts as chrome, not ink. Text taller than the current sheet is emitted in full by growing the page up to the existing write cap, instead of reporting “Der Text passt nicht auf diese Seite”. Overflow only at that cap. At the default variation, repeated letters have slightly different heights and do not share one baseline; variation 0 stays uniform. The ink still comes from your GlyphenWerk samples. GitHub PRs #30 (quiet page statistics / smoother zoom), #31 (per-pane camera), #32 (Add-on Store), #33 (Sync) and #34 (collapsible handwriting sections).
  • Einklappbare Abschnitte beim Handschreiben. Im Stiftmodus fügt „Abschnitt“ mit einem Tipp auf das Blatt eine Titelzeile ein — alles darunter rückt nach unten, nichts wird überdeckt. In die Kopfzeile schreibst du den Titel von Hand (etwa „Aufgabe 3“), darunter hat der Abschnitt beliebig viel Platz: Wer nahe an den nächsten Titel schreibt, schiebt ihn samt allem Folgenden weiter nach unten. Der Pfeil am linken Rand klappt den Inhalt ein — die Tinte des Abschnitts verschwindet, der Rest der Seite rückt nach oben — und wieder aus, exakt an die alte Stelle. Abschnitte werden mit der Stiftebene gespeichert; das × in der Kopfzeile löst einen Abschnitt auf und lässt die Tinte liegen. Ein- und Ausklappen setzt den Verlauf von Rückgängig zurück, weil verschobene Striche sonst an falscher Stelle wiederkämen. PDF-Notizen bieten keine Abschnitte, ihre Tinte gehört zur Seite darunter; auf Textnotizen bewegen Abschnitte nur die Handschrift, nicht den getippten Text.
  • Sync: deine Notizen auf allen Geräten, Ende-zu-Ende verschlüsselt. Unter Einstellungen → Sync (oder Strg+P → „Sync einrichten“) legst du mit E-Mail-Adresse und Passwort ein Konto an; jedes weitere Gerät meldet sich damit an und holt den ganzen Tresor — Notizen, .famd-Begleiter, PDFs, Bilder, Ordnerfarben und Fachbücher. Danach läuft der Abgleich von selbst: 2,5 Sekunden nach jeder Änderung, jede Minute, beim Zurückkehren ins Fenster und sobald das Netz wieder da ist; ein Eintrag in der Statusleiste zeigt Stand, Fehler und Konflikte, „Jetzt synchronisieren“ steht in der Palette. Aus dem Passwort wird auf dem Gerät ein Schlüssel abgeleitet (PBKDF2, 600 000 Runden), der einen zufälligen Tresorschlüssel einpackt; jede Datei wird mit AES-256-GCM verschlüsselt, ihr Name durch einen HMAC ersetzt. Der Server speichert nur Chiffrate, zufällige Kennungen, eine Scrypt-Ableitung des Anmeldeschlüssels und die Geräteliste — er kann weder Inhalte noch Dateinamen lesen, und deshalb lässt sich ein vergessenes Passwort auch nicht zurücksetzen. Wird dieselbe Datei auf zwei Geräten geändert, gewinnt die zuerst hochgeladene Fassung den Pfad und die andere bleibt als „(Konflikt Gerät Datum)“-Kopie erhalten; eine offene, ungespeicherte Notiz wird nie von außen überschrieben. Geräte lassen sich einzeln abmelden, ein Passwortwechsel meldet alle anderen Geräte ab, das Konto kann samt allen Serverdaten gelöscht werden. Die Web-Version synchronisiert genauso; Sitzung und Tresorschlüssel liegen auf dem Desktop im Schlüsselbund des Systems. Unterlagen: docs/SYNC.md.
  • Add-on Store: extensions from GitHub, no FaNotes update needed. A new Add-on Store (Ctrl+P → “Add-on Store” or Settings → Add-ons) reads the open directory Nikoheld/FaNotes-Addons: to contribute an add-on you add a folder with manifest.json, main.js and README.md there and open a pull request — after the merge the repository rebuilds its own index, and the add-on shows up for every user in the “Discover” tab with search, categories, README, permissions and checksum. Installed add-ons can be switched on and off, restarted, updated (automatically on start if you like) and removed; a “Develop” tab loads your own add-on from local files and shows its log. Add-ons reach FaNotes through a simple fanotes object: read, write, create and search notes, drive the editor, read handwriting and page statistics, add commands to the palette, show panels built from blocks (heading, text, Markdown, button, input, select, list, progress) in the new dock on the right, put items in the status bar, open toasts and dialogs, react to events such as note switches, saves or pen strokes, keep their own data and — with its own permission and host list — make https requests. Every add-on runs in its own Web Worker with no access to the interface, files or network; every call is checked against the permissions in the manifest, limited (240 calls per second, 30 seconds per call) and supervised: an add-on that hangs, throws eight errors in a minute or floods FaNotes is stopped and disabled — FaNotes itself keeps running. The full documentation with examples lives in the add-on repository.
  • Split view: every sheet has its own camera. Until now both panes shared one zoom — zooming in on the left zoomed the right along with it, and opening the second pane reset the first pane's zoom. Now Ctrl+wheel zooms only the sheet under the pointer; Ctrl++ / Ctrl+- / Ctrl+0, Esc and the trackpad gesture apply to the pane you touched last. The handwriting preview in the second pane is redrawn at the new size when zooming instead of being stretched from a 1× bitmap, and the pane widths and the divider sit on whole device pixels so the second pane's text is no longer composited soft on a half pixel.
  • The fold arrow next to headings is back in place. The fold gutter left of the text was shifted one paragraph down (a doubled padding): the arrow appeared below the heading instead of beside it, and a click hit the wrong line — which is why it did nothing. The arrow now sits next to its heading, collapses and expands the section, and the white dot-free strip the gutter laid over the ruling is gone.
  • Statistics quietly in the .famd: The status bar and the outline no longer show “Time on page 29 min 0 s”. Instead every note keeps its statistics quietly in the companion file: when it was created, modified, first and last opened, last closed and saved; how often it was opened and saved; how long you were on the page (total, with the window in front, longest and last session, per hour and weekday, on which days); what you typed (keystrokes, characters written and deleted, finished words, lines, pastes, autocorrections, accepted suggestions, undo/redo, typing time and typing bursts); what you wrote by hand (pen-on-paper time, writing time with short pauses, bursts, strokes, points, stroke length in millimetres, longest stroke, handwriting and art strokes, erased strokes, colours, brushes, current state of the ink layer) and what the document looks like (words, characters, lines, paragraphs, headings, links, images, tasks and done tasks, code and formula blocks, tables, quotes, list items, reading time, peak word count, words added and removed). It is written on save, when leaving or closing the note, on quit and otherwise every 90 seconds — without “Saving …” flashing. The statistics’ one-second tick no longer redraws the whole interface.
  • Zoom without stutter: A mouse-wheel or trackpad zoom arrives as a burst of many small steps. Until now every step rebuilt the whole pen bar with its tools and painted all handwriting into a zoom-sized surface — several times per burst on a full page. Now the ink layer follows the camera directly, without rebuilding, and sharpens the ink once the burst has settled; the sheet itself scales the steps in between. On a page with 200 strokes the script time of a zoom burst drops by about three quarters and the frame rate stays at 60 frames per second.

Installationspakete sind angehängt, sofern die ursprünglichen Binärdateien noch im Release-Archiv vorhanden sind. / Installation packages are attached where the original binaries are still available in the release archive.