preloader

WinTangle - ein Windows-Tool, geschrieben auf dem Mac

blog-image

Man merkt erst, wie sehr man ein Werkzeug vermisst, wenn man es nicht hat.

Auf dem Mac schiebe ich Fenster seit Jahren mit Rectangle herum. ⌃⌥←, und das Fenster sitzt links. Das geht so in Fleisch und Blut über, dass man es gar nicht mehr bewusst macht.

Und dann sitzt man an einem Windows-Rechner, drückt ins Leere und ärgert sich. Windows kann zwar andocken, aber bei Hälften und Vierteln ist Schluss. Drittel? Fehlanzeige. Und bei drei nebeneinanderstehenden Fenstern ist genau das die Aufteilung, die man will.

Also: WinTangle. 🛠️

Was es tut

Fenster in Hälften, Drittel, Viertel, Sechstel, Achtel und Neuntel schieben – per Tastenkürzel oder indem man sie an einen Bildschirmrand zieht. 58 Aktionen insgesamt, dazu Maximieren, Zentrieren, Vergrößern, Verkleinern und der Sprung auf den nächsten Bildschirm.

Drückt man dieselbe Kombination nochmal, blättert die Größe durch: aus der Hälfte wird zwei Drittel, dann ein Drittel. Man muss sich also nicht merken, welche Taste welchen Bruchteil macht – man drückt einfach nochmal, bis es passt.

Schematisch, kein Screenshot: die gängigsten Aufteilungen und ihre Tastenkürzel

Schematisch, kein Screenshot: die gängigsten Aufteilungen und ihre Tastenkürzel

Warum alles auf Ctrl+Alt liegt

Das war die erste Überraschung. Eigentlich wollte ich Win+Pfeil benutzen, so wie es sich anfühlt. Nur gehört das Windows selbst, und über RegisterHotKey bekommt man es nicht – die Anfrage läuft einfach ins Leere.

Also Ctrl+Alt. Was sich am Ende als Glücksfall herausstellte: Rectangle benutzt auf dem Mac ⌃⌥, und damit liegen die Finger auf beiden Systemen an derselben Stelle. 👌

Die Kleinigkeit, die mich eine Weile gekostet hat

Im Einstellungsfenster kann man sich die Tastenkürzel selbst zusammenstellen: Aktion anklicken, Kombination drücken, fertig. Klingt simpel.

Nur hatte ich dabei übersehen, dass die globalen Tastenkürzel ja die ganze Zeit aktiv sind. Man klickt also „Linke Hälfte" an, drückt Ctrl+Alt+← – und statt die Eingabe aufzuzeichnen, schiebt das Programm fröhlich das Einstellungsfenster nach links. 😅

Die Lösung ist, die Tastenkürzel abzuschalten, solange dieses Fenster offen ist. Dasselbe gilt für doppelte Belegungen: Nimmt man eine Kombination, die schon woanders liegt, wandert sie zur neuen Aktion. Windows könnte zwei Aktionen auf derselben Taste sowieso nicht auseinanderhalten, also muss man sich entscheiden.

Und nicht jede Aktion hat überhaupt ein Kürzel. Sechstel, Achtel und Neuntel sind bewusst unbelegt – 58 Tastenkombinationen merkt sich kein Mensch, die seltenen würden nur die häufigen verdrängen. Erreichbar sind sie über das Tray-Menü, die Einstellungen oder einen wintangle://-Link. Letzteres übrigens auch ganz praktisch, um eine Aufteilung vom Stream Deck aus auszulösen.

Entwickelt auf einem Rechner, der es nicht starten kann

Der kuriose Teil: Geschrieben habe ich das Ganze auf dem Mac. 🙃

Das geht, weil der Rechenkern – also der Teil, der aus Bildschirmgröße, aktueller Fensterlage und gewünschter Aktion das neue Rechteck ausrechnet – nichts von Windows weiß. Der läuft und wird auf dem Mac getestet, inzwischen mit 63 Unit-Tests.

Die Win32-Schicht übersetze ich lokal mit mingw-w64 quer. Das fängt Übersetzungs- und Linkfehler ab, sagt aber nichts über das Verhalten zur Laufzeit – dafür gibt es den MSVC-Build in der CI und am Ende einen echten Windows-Rechner. Diese Trennung sauber zu halten war mehr Arbeit als die eigentliche Fensterrechnerei, hat sich aber gelohnt: Fehler in der Berechnung findet man auf dem Mac in Sekunden, statt sie auf einem anderen Gerät nachzustellen.

Herausgekommen ist natives C++ ohne Laufzeitumgebung, also eine einzige EXE. Kein Installer nötig, wenn man nicht will – ZIP entpacken reicht.

Ausprobieren

Signiert ist nichts, SmartScreen meldet sich beim ersten Start also zu Wort. Prüfsummen liegen auf jeder Release-Seite.