Wie kann ich Fenstergrößen und Positionen im Windows Terminal automatisch speichern?

Melden
  1. Grundlegendes zum Windows Terminal und Fensterverwaltung
  2. Warum ist das automatische Speichern von Größe und Position nicht standardmäßig vorhanden?
  3. Methoden, um Fenstergröße und Position dennoch automatisch zu speichern
  4. Beispielhafte Umsetzung mit PowerShell
  5. Alternativen und praktische Tipps
  6. Fazit

Grundlegendes zum Windows Terminal und Fensterverwaltung

Windows Terminal speichert standardmäßig die einzelnen Profile, Farbschemata und allgemeine Einstellungen innerhalb seiner Konfigurationsdatei settings.json, jedoch bietet es keine eingebaute Funktion, die Fenstergröße und -position beim Schließen automatisch abzuspeichern und beim nächsten Start wiederherzustellen. Das bedeutet, dass Änderungen über die grafische Oberfläche oder durch manuelles Editieren der Konfigurationsdatei keinen dauerhaften Effekt auf die jeweilige Fensterposition haben.

Warum ist das automatische Speichern von Größe und Position nicht standardmäßig vorhanden?

Die Fensterverwaltung unter Windows-Terminals erfolgt größtenteils durch das Betriebssystem bzw. die Windows-UI-Subsysteme. Windows Terminal ist eine moderne Anwendung mit mehreren Tabs und Profilen, daher sind flexiblere Fensteranpassungen durch das Terminal nicht direkt vorgesehen. Die Größe und Position sind vor allem temporär, und nach Neustart wird das Fenster meist auf Standardwerte gesetzt.

Methoden, um Fenstergröße und Position dennoch automatisch zu speichern

Es existieren jedoch Möglichkeiten, dieses Verhalten durch externe Werkzeuge oder eigene Scripte zu automatisieren. Ein pragmatischer Ansatz ist zum Beispiel die Verwendung von PowerShell-Scripts oder Programmen, die Fenstergrößen und Positionen erfassen sowie wiederherstellen können.

Es gibt Tools wie AutoHotkey, die mit ein paar Zeilen Code das Verschieben und Ändern von Fenstergrößen übernehmen können. Ebenso können PowerShell-Skripte mithilfe von Windows-API-Aufrufen die aktuelle Position und Größe eines Fensters ermitteln und diese Werte in einer Datei speichern. Bei erneutem Start des Windows Terminals können die Werte ausgelesen und das Fenster entsprechend positioniert werden.

Beispielhafte Umsetzung mit PowerShell

Um dies zu erreichen, können folgende Schritte durchgeführt werden: Zunächst ein Script entwickeln, das nach dem Start des Windows Terminals die Fensterhandle (HWND) abfragt, dann Position und Größe mit Windows-API-Funktionen wie GetWindowRect ausliest. Diese Daten werden in einer Datei abgespeichert. Beim nächsten Start wird das Script ausgeführt, lädt die gespeicherten Werte und positioniert das Terminalfenster mit SetWindowPos neu.

Hier ist ein vereinfacht dargestelltes Beispiel, wie ein solches PowerShell-Script aussehen könnte:

Add-Type @" using System; using System.Runtime.InteropServices; public class User32 { public static extern bool GetWindowRect(IntPtr hWnd, out RECT rect);

public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); } public struct RECT { public int Left; public int Top; public int Right; public int Bottom; } "@ $hwnd = ::FindWindow("CASCADIA_TERMINAL_WINDOW_CLASS", $null) if ($hwnd -ne ::Zero) { # Fensterdaten auslesen $rect = New-Object RECT ::GetWindowRect($hwnd, $rect) | Out-Null $width = $rect.Right - $rect.Left $height = $rect.Bottom - $rect.Top $pos = @{ Left = $rect.Left Top = $rect.Top Width = $width Height = $height } $pos | ConvertTo-Json | Set-Content -Path "$env:APPDATA\WindowsTerminalWindowPos.json" }

public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

Zum Wiederherstellen kann ein ähnliches Script über die gespeicherte Datei laden und die Fensterposition setzen.

Alternativen und praktische Tipps

Für User, die keine Eigenentwicklung vornehmen wollen, gibt es auch fertige Fenster-Manager bzw. Tools wie DisplayFusion oder WindowManager, welche solche Positionen automatisch abspeichern und beim Öffnen der Fenster anwenden. Hier ist keine manuelle Script-Erstellung notwendig, aber diese Programme sind meistens kostenpflichtig.

Außerdem kann durch kurzes Ändern der Fenstergröße und Position am Anfang der Arbeit der Windows Terminal meist auf dem letzten bekannten Platz starten, sofern Windows das Fenster-Layout beim Abmelden speichert. Dies ist allerdings nicht zuverlässig.

Fazit

Zusammenfassend lässt sich sagen, dass Windows Terminal selbst kein Feature für das automatische Speichern und Wiederherstellen von Fenstergröße und -position mitbringt. Um dies zu ermöglichen, sind externe Scripts, meist in PowerShell oder AutoHotkey, oder spezielle Drittanbieter-Tools erforderlich. Diese Automatisierungen können so programmiert werden, dass beim Schließen des Terminals die Daten abgespeichert und beim Start wieder eingelesen werden, womit sich ein komfortables Benutzererlebnis erzielen lässt.

0
0 Kommentare