Max Nardit
Beetroot

Beetroot v1.6.1: Das Keyboard-Rewrite, das niemand sah

Beetroot v1.6.1: Tastatur-Input für No-Focus-Modus neu geschrieben, überarbeitetes Vorschau-Panel mit Pfeil-Navigation, Fixes für v1.6.0-Regressionen.

Zwei Tage nach dem Release von v1.6.0 mit dem No-Focus-Window meldeten Nutzer Probleme. Pfeiltasten gingen nicht sofort. Notes ließen sich nicht editieren. Filter-Wechsel dauerten 2-3 Sekunden. Alt+T funktionierte nur manchmal.

Alles ließ sich auf dasselbe zurückführen: das Tastatur-System war nicht für ein Fenster designt, das nie Fokus hat.

Auf einen Blick:

  • Keyboard-Hook-Rewrite: drei Layer ersetzen den fragilen Single-Hook-Ansatz
  • Vorschau-Panel-Überarbeitung: dynamischer Header, einklappbare Notes, Pfeil-Navigation zwischen Clips
  • Performance-Fix: Filter-Wechsel ist wieder sofort
  • Note-Editing funktioniert: der Hook frisst deine Tastenanschläge nicht mehr

Das Tastatur-Problem

v1.6.0s No-Focus-Modus hatte einen einzelnen Keyboard Hook, der Tasten abfing und sie über Tauri-Events an die UI sendete. Zwei Dinge gingen schief:

Tauri verwirft Events, wenn das Fenster keinen Fokus hat. Der ganze Sinn des No-Focus-Modus ist, dass Beetroot keinen Fokus hat. Also wurden Tasten von anderen Apps abgefangen, kamen aber nie in Beetroot an. Nutzer sahen das als "Pfeiltasten gehen erst, wenn ich klicke".

Der Hook fing alles ab. Versuchst du, im Note-Feld zu tippen? Space öffnet die Vorschau. Enter triggert Paste. Pfeile navigieren die Liste, statt deinen Cursor zu bewegen.

Der Fix: Tastatur-Handling in drei Layer aufteilen, ein Low-Level-Hook für Navigations-Tasten, RegisterHotKey für Modifier-Combos (die richtige Windows-API statt des timing-empfindlichen GetAsyncKeyState) und direkte JS-Injection per win.eval(), um Tauris Event-System komplett zu umgehen.

Der Hook installiert sich außerdem jedes Mal neu, wenn das Fenster geöffnet wird. Windows 11 entfernt Low-Level-Hooks stillschweigend, wenn ihre Callbacks zu lange dauern. Das war der Grund hinter den sporadischen "Tastatur funktioniert nicht mehr"-Meldungen.

Vorschau-Panel, überarbeitet

Der Vorschau-Header zeigt jetzt nützlichen Kontext statt nur "Preview". Quell-App-Icon, Content-Type und ein Schlüssel-Stat wie "Chrome · Text · 178 chars". Du kannst Pfeil hoch/runter drücken, um durch Clips zu blättern, ohne die Vorschau zu schließen und neu zu öffnen. Notes sind standardmäßig eingeklappt mit einem Stift-Icon. Klick zum Aufklappen, sie speichern automatisch, wenn du wegnavigierst.

Der 2-Sekunden-Filter-Wechsel

Der am häufigsten gemeldete v1.6.0-Bug. Der Wechsel von "All" zu "Images" fror bei ~1000 Items 2-3 Sekunden ein.

Die Ursache: die Rust-Suchengine gab den vollen Content für jedes Item zurück, inklusive Roh-HTML aus Browser-Kopien. Bei 1000 Items war der JSON-Payload über die IPC-Bridge mehrere Megabyte. Der Fix: Suchergebnisse geben jetzt nur die ersten 200 Zeichen zurück (genug für die List-View). Voller Content wird on-demand geholt, wenn du ihn wirklich brauchst: Paste, Vorschau oder Transform.

Weitere Fixes

  • Note-Editing: Klicken in das Note-Feld aktiviert jetzt das Fenster, sodass der Hook sich zurückzieht
  • Key-Up-Leak: der alte Hook fing Drücken ab, ließ aber Loslassen durch, was zu erratischem Explorer-Verhalten führte
  • Erster Tastendruck ignoriert: Startup-Race, weil React noch nicht bereit war. Mit Retry behoben
  • Remove spaces: verarbeitet jetzt Non-Breaking Spaces (U+00A0). Dein IBAN-Paste funktioniert tatsächlich
  • Source-App-Race: Quelle wird im exakten Moment des Clipboard-Change erfasst, nicht 50-200 ms später

Update

Beetroot bietet das Update automatisch an. Oder v1.6.1 von GitHub herunterladen.

Diskussion

Hier gibt es keine Kommentarspalte. Diskussionen laufen auf X.

Max Nardit

Max Nardit

@mnardit

Weitere Artikel

Beetroot v1.6.6: Der Office-Fix

Excel- und Word-Zellen wurden als Screenshots statt als Werte erfasst. Microsoft-Store-Autostart war still kaputt. Bild-Thumbnails fraßen Gigabytes RAM. v1.6.6 behebt alle drei, plus eine Reihe Security- und Reliability-Arbeiten nach dem großen 1.6.5-AI-Vision-Release.

Beetroot v1.6.1: No-Focus Keyboard-Rewrite