Raspberry Pi Terminalfenstergröße über Befehl einstellen

  • Hallo zusammen,


    ich wage mich gerade an Python3 heran. Die ersten kleinen Routinen laufen auch schon. Jetzt möchte ich die Terminalfenstergröße auf eine Mindestgröße einstellen. Unter Windows klappt das perfekt. Aber auf dem Raspberry Pi bekomme ich das nicht hin. Das Modul 'os' bietet nichts dahin an.



    Unter Windows sieht das so aus:

    Code
    # Fenstergröße abfragen unter Windows | wenn kleiner 30 Zeilen / 120 Spalten dann Fenster ausdehnen
    breite , höhe = os.get_terminal_size()
    if höhe < 30 or breite < 120:
        os.system("mode con cols=120 lines=30")

    Aber für den Raspberry Pi habe ich keine ähnliche Möglichkeit gefunden. Ich weiß das "mode con" den DOS-Befehl "mode" aufruft und so die Terminalgröße einstellt. Daher klappt der Befehl für den Raspberry Pi (LXTerminal) nicht. Gibt es da noch eine andere Möglichkeit für mein Anliegen?


    Grüße DMHas

    Wer schreit, denkt nicht!

  • DMHas Soweit ich weiss gibt es keine Möglichkeit allgemein einem Terminal zu sagen wie gross es sein soll.


    Anmerkung zum Quelltext: `os.system()` sollte man nicht verwenden. Dessen Dokumentation verweist auf das `subprocess`-Modul. Ungestestet:

    Python
    #
    # Fenstergröße abfragen unter Windows | wenn kleiner 30 Zeilen / 120 Spalten
    # dann Fenster ausdehnen
    #
    breite, höhe = os.get_terminal_size()
    if höhe < 30 or breite < 120:
        subprocess.run(["mode", "con", "cols=120", "lines=30"], check=True)

    Wobei das Fenster dadurch ja auch in eine Richtung *kleiner* werden kann als es vorher war. Man sollte das vielleicht so ändern, dass das nicht passieren kann.

    “I will not sell my kidney on eBay

    I will not sell my kidney on eBay

    I will not sell my kidney on eBay …” — Bart Simpson

  • Danke für die Antwort. Deinen Ratschlag mit subprocess werde ich übernehmen!

    Der if-Befehl verkleinert (unter Windows) das Terminalfenster nur, wenn es kleiner las 30 zu 120 ist.


    Update: Damit es klappt fehlt noch shell=True. Sonst kommt eine Fehlermeldung.


    Code
    # Fenstergröße abfragen unter Windows | wenn kleiner 30 Zeilen / 120 Spalten
    # dann Fenster ausdehnen
    breite, höhe = os.get_terminal_size()
    if höhe < 30 or breite < 120:
        subprocess.run(["mode", "con", "cols=120", "lines=30"], shell=True, check=True)

    Wer schreit, denkt nicht!

    Edited once, last by DMHas ().

  • Man kann die Größe der Terminals ändern. Aber nicht jedes Terminal funktioniert gleich und manche Terminals ignorieren die Größenänderung einfach.


    Ich würde erst die Escape-Sequenz probieren und dann zu resize überspringen. Wenn das dann auch nicht geht, kann man mit wmctrl die Fenstergröße verändern, was dann wiederum Einfluss auf die Zeilen und Spalten haben sollte.