Window Mover für Loupedeck

  • Hey,

    ich habe sehr lange nichts mehr mit AutoIt gemacht, aber habe das Loupedeck neu (diese "Decks" sind ja nun im Home Office angekommen^^) und es gibt irgendwie keine guten Lösungen zum Anpassen von Größe und Position von Fenstern (beim Stream Deck gibt es ein "Window Mover" plugin). Da ich auch sonst nicht gut fündig geworden bin, wie ich das mit Shortcuts lösen kann, wollte ich scripten und da man mit Bordmitteln Argumente übergeben kann, dachte ich mir, dass ich das gleich ein wenig flexibler mache.

    Grundsätzlich könnte ich ja einfach alle Argumente für WinMove übergeben und es wäre eine "komplette" Lösung. Da ich aber nur 4 Positionen haben, wollte ich die auch mit drin haben, damit ich bei etlichen Fenstern und Makros dann nicht die starke Redundanz mit den Argumenten habe.

    Das Skript sieht nun so aus und macht (ungefähr), was es soll:

    Spoiler anzeigen

    In Loupedeck sieht das dann so aus:

    An sich bin ich sehr zufrieden, aber ich es gibt ein kleines "Problem" und ich würde gerne grundsätzlich wissen, ob ihr noch eine Idee hättet, das "besser" zu machen :)

    Zu meiner Verwendung:

    Ich habe einen Samsung Odyssey G9, also einen 49 Zoll mit 5120x144 und ich habe ihn mit FanzyZones (Microsoft Power Tools) so aufgeteilt:

    Bei PiP binde ich rechts oben dann eine andere Quelle ein. Und ich möchte mit dem Deck halt automatisieren, dass ich dann mit einem Klick alles wieder in die richtige Position bringen kann. Ebenso will ich beim Start meines Rechners alles richtig platzieren (alles an Chats/Mails usw. ist rechts, Chrome mittig und links sind so OneNote, Miro und andere Dinge, die ich brauche).

    Jetzt ist es so, dass sich z. B. die PWA, die Chrome für WhatsApp und Gmail erstellt hat, sich leicht anders verhalten, als die anderen Tools und die "generellen Breiten/Höhen" passen irgendwie nicht immer und es entstehen kleine(!) Lücken oder Überlappungen...

    Dann hatte ich 2 Lösungen im Kopf, die ich beide nicht hinbekommen habe:

    - Automatisch mit DesktopHeight & Co die Zahlen automatisch berechnen => dafür brauchte ich z. B. die Höhe der Taskleiste, wofür ich das gefunden habe: Taskbar Eigenschaften, leider passte das Ergebnis aber nicht und nach der Ausrichtung fehlten ein paar Pixel zwischen Fensterende und Taskleiste)

    - Irgendwie diesen "Snap" in die Bereiche von FanzyZones shortcutten => Wenn man ein Fenster aktiviert und die Windowstaste mit Pfeil links/rechts verwendet, dann snapt das Fenster immer in die nächste Zone, leider habe ich keine Shortcuts gefunden, um direkt die Zonen anzuvisieren und das mit den Pfeiltasten klappt ja nur, wenn ich wüsste, in welcher Zone das Fenster grade ist und optisch wird das auch sehr wild... :D

    Also: Vielleicht hilft das Skript schon jemandem, ich hatte Google lange bemüht, um eine "fertige Lösung" zu finden und bestenfalls habt ihr noch ein Feedback für mich, das die Lösung nochmal etwas voran bringt!

  • Hi aSeCa,

    witzig 😀 , denn genau solch ein Tool, Au3WindowManager (heißt es bei mir), habe ich auf GitHub liegen, aber privat (also noch nicht geteilt/nicht öffentlich).


    Das Problem mit manchen Fenstern ist, so wie du es auch beschreibst, dass es zu Lücken kommt und sie nicht aneinander "snappen", da die Breiten und Höhen nicht immer gleich für die jeweiligen Fenster sind. Meinen Recherchen nach, liegt das am Fenster-Styling (auch abhängig vom Framework mit dem das jeweilige Programm/Fenster entwickelt wurde) und am Erkennen durch AutoIt, ob es Client oder Window Breiten/Höhen sind. Da lässt sich außer viel viel rechnen pro jeweiliges Fenster, nicht so sehr viel machen.



    Ich schaue mal ob ich ein paar Screenshots dazu demnächst teilen kann 🤞 .

    Ansonsten schaue ich mir mal der Skript an und melde mich mit potenziellen Verbesserungen aus meiner Sicht.

    In der Zwischenzeit erhoffe ich mir, dass die wirklich schlauen Köpfe hier, ebenfalls ihre "2 Cents" dazugeben (#insider 😅).

    Viele Grüße
    Sven

  • Danke für die Insights und cool, dass du an sowas arbeitest! Habe wirklich viel gesucht, also der Bedarf an einer richtigen Lösung ist auf jeden Fall da und ungedeckt! ^^ Ich teste gerne mal, wenn du soweit bist ;)

    Ein Youtuber hatte vor knapp 1 Jahr einen Austausch mit Loupedeck und die meinten, dass sie auch an sowas arbeiten. Ergibt ja auch Sinn, weil das für Streamer noch wichtiger ist, als im Home Office und der größte Konkurrent es hat... Aber nach 1 Jahr immer noch nichts. Gibt bestimmt viele Randfälle, wenn man es "richtig" machen will. Aber selbst mit so einfachen Mitteln kann man ja schon vielen Menschen helfen. Vor allem werden so große Bildschirme immer beliebter.

    Das ist übrigens die Lösung von Stream Deck auf Github: https://github.com/BarRaider/streamdeck-windowsmover (hat aber leider bei mir nicht immer funktioniert, dass er die Fenster wiedererkannt hat)

  • Naja, bei meinem Monitor von MSI (UWQHD) war ein entsprechendes Tool dabei und funktioniert ganz gut (MSI wird die Nutzung aber wohl auf ihre Monitore beschränken, habs jedoch noch nicht auf anderen probiert).

    Das Einzige was ich dort vermisse, ist die Möglichkeit die von dir angesprochenen Teilbereiche zu definieren, wo du Fenster direkt "snappen" kannst, ohne ein anderes Programm aufzurufen mit dem du diesem den Teilbereich zuweist.

    Und bei breiten Monitoren ist es auch im Privaten Bereich durchaus nützliches soetwas zu haben.

  • 💡 Also es ist nicht exakt das was du suchst, glaube ich aSeCa.

    Denn ich hatte das kleine Tool vor einige Zeit für meine Anforderungen entwickelt, doch man kann es sicherlich als Referenz nutzen und ausbauen. Die Idee ist, man sucht sich ein Layout aus, dann wird der erste Bereich des ausgesuchten Layouts rot hervorgehoben (mit Positions- und Größenangabe) und wenn man mit dem Mauscursor das jeweilige Fenster in den roten Bereich schiebt oder es einfach im rotem Bereich anklickt, wird das Fenster in diese Position gebracht.

    Das folgende animierte GIF zeigt es deutlich besser und ich muss mir nicht die Finger wund schreiben 😅 .

    Nutzung Au3WindowManager

    Viele Grüße
    Sven