Document the layout fix and the return of the title bar
AGENTS.md: die WinAPI-Regel praeziser gefasst -- verboten bleiben Fenstermanipulation und globale Hooks, passive Layout-Abfragen sind es nicht (und die offizielle VersaGUI macht dasselbe). Dazu die neue Aufloesungsreihenfolge samt Warnung, nicht auf "Zeichen auswerten" zurueckzubauen, die Kollisionsregel bei Tastennamen, der Mehrmonitor-Fix und die Folgen der Titelleiste (welche Eigenbauten dadurch entfallen sind und warum randlos nicht ohne Ruecksprache zurueckkommt). README.md und docs/architecture.md entsprechend: Position statt Zeichen, layoutrichtige Beschriftungen inkl. der Anzeigeaenderung an bestehenden Belegungen, Taskleisten-Eintrag statt randlosem Fenster. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
e1e3d0e466
commit
78e9640dec
3 changed files with 152 additions and 61 deletions
37
README.md
37
README.md
|
|
@ -34,10 +34,15 @@ falls gewünscht.
|
|||
Enter bestätigt, Escape bricht ab
|
||||
- **Tastendruck-Erkennung** — statt die Taste im Dropdown zu suchen,
|
||||
„⌨ Taste drücken" klicken und die gewünschte Kombination einfach
|
||||
drücken (Modifier inklusive). Läuft über das Dialogfenster, nicht über
|
||||
einen System-Hook — vom System abgefangene Kombinationen (Win+L,
|
||||
Strg+Alt+Entf) kommen deshalb nicht an, und das Dropdown bleibt zum
|
||||
Nachkorrigieren daneben stehen
|
||||
drücken (Modifier inklusive). Erkannt wird die *physische* Taste, nicht
|
||||
das Zeichen — Y/Z, ÄÖÜ, `#`, `+` und `ß` landen also richtig auf dem
|
||||
Board, auch auf deutschem Layout. Läuft über das Dialogfenster, nicht
|
||||
über einen System-Hook: vom System abgefangene Kombinationen (Win+L,
|
||||
Strg+Alt+Entf) kommen nicht an
|
||||
- **Layoutrichtige Tastennamen** — Beschriftungen kommen vom aktiven
|
||||
Windows-Layout (`Strg+Z` heißt auf deutscher Tastatur auch `Strg+Z`, und
|
||||
`ä`/`ö`/`ü` heißen so). Bestehende Belegungen ändern dadurch ihre
|
||||
Anzeige, nicht ihre Funktion
|
||||
- **Makro-Editor** — bis zu 8 Schritte pro Slot, liest/schreibt die echte
|
||||
Makro-Tabelle vom Board. Schritte einzeln erfassen oder die ganze Folge
|
||||
am Stück aufnehmen („⏺ Folge aufnehmen"). Die Slot-Auswahl listet alle 32
|
||||
|
|
@ -59,14 +64,13 @@ falls gewünscht.
|
|||
Tool-Aufruf ändern, ohne Klicks in der GUI (siehe unten)
|
||||
- **Tray-Icon** — minimiert/schließt ins Tray statt in die Taskleiste, wie
|
||||
die offizielle VersaGUI
|
||||
- **Randloses Fenster** — ohne Windows-Titelleiste, dafür kompakter Kopf
|
||||
(Modus-Checkboxen direkt neben dem Titel). Verschieben durch Ziehen an
|
||||
der Kopfzeile, Größe ändern am Anfasser unten rechts, `✕`/`—` legen ins
|
||||
Tray. Einen Taskleisten-Eintrag gibt es dadurch nicht — das Fenster kommt
|
||||
über das Tray-Icon zurück.
|
||||
- **Normales Fenster mit Taskleisten-Eintrag** — Titelleiste, Alt+Tab,
|
||||
Aero-Snap und Größe ändern am Rahmen funktionieren nativ. `✕` beendet
|
||||
nicht, sondern legt ins Tray (wie die offizielle VersaGUI — das Programm
|
||||
läuft im Hintergrund weiter); Minimieren geht normal in die Taskleiste.
|
||||
- **Tastenkürzel im Hauptfenster** — `Strg+1/2/3` Profil wechseln, `F2`
|
||||
Profil umbenennen, `Strg+E` Programmiermodus an/aus, `Strg+C`/`Strg+V`
|
||||
Taste unter dem Mauszeiger kopieren/einfügen, `Esc` ins Tray.
|
||||
Taste unter dem Mauszeiger kopieren/einfügen, `Esc` minimieren.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
|
|
@ -123,7 +127,8 @@ automatisch zuerst nach `%TEMP%` und baut nur dort.
|
|||
|
||||
| Datei | Zweck |
|
||||
|---|---|
|
||||
| `versapad_data.py` | Decoding für die Anzeige: JSON laden, HID-Keycodes/Consumer-IDs/Modifier → lesbarer Text |
|
||||
| `versapad_data.py` | Decoding für die Anzeige: JSON laden, HID-Keycodes/Consumer-IDs/Modifier → lesbarer Text, Tastendruck → HID-Keycode |
|
||||
| `versapad_keylayout.py` | Abfragen ans aktive Windows-Tastaturlayout: physische Tastenposition und Tastenname (optional, nur Windows) |
|
||||
| `versapad_protocol.py` | Binäres NVM-Layout des Boards (740B Config + 512B Makros), CRC16 — pack/unpack |
|
||||
| `versapad_serial.py` | Serial-Client: liest/schreibt Config + Makros per 8-Byte-Paket-Protokoll |
|
||||
| `versapad_combined.py` | Ein-Datei-Format für alle 3 Profile + Makros + lokale Profilnamen |
|
||||
|
|
@ -187,12 +192,10 @@ rechts im Fenster, oder direkt in `versapad_mcp_server.py`.
|
|||
- Die Tastendruck-Erkennung läuft bewusst über das Dialogfenster statt über
|
||||
einen globalen WinAPI-Hook — vom System abgefangene Kombinationen (Win+L,
|
||||
Strg+Alt+Entf) erreichen das Fenster nie und lassen sich so nicht erfassen
|
||||
- Zeichentasten-Labels zeigen eine US-Layout-Näherung, nicht das tatsächlich
|
||||
aktive Tastatur-Layout. Das betrifft auch die Tastendruck-Erkennung:
|
||||
HID-Keycodes sind physische US-Tastenpositionen, erkennbar ist ohne
|
||||
WinAPI aber nur das Zeichen des aktiven Layouts — auf deutschem Layout
|
||||
landen Y und Z deshalb vertauscht auf dem Board. Das Ergebnis steht immer
|
||||
sichtbar im Dropdown und lässt sich dort korrigieren
|
||||
- Ein Wechsel des Tastaturlayouts im laufenden Programm wird nicht bemerkt
|
||||
(die Tastennamen werden einmal beim ersten Zugriff ermittelt) — Neustart
|
||||
hilft. Unter Nicht-Windows fällt die Beschriftung auf eine
|
||||
US-Layout-Näherung zurück
|
||||
- Unsignierte `.exe` — kann von Antivirus/Smart App Control blockiert
|
||||
werden; `--onedir` (statt `--onefile`) verringert das Risiko, verhindert
|
||||
es aber nicht
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue