Raspberry Pi Terminalfenstergröße über Befehl einstellen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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!

  • Raspberry Pi Terminalfenstergröße über Befehl einstellen? Schau mal ob du hier fündig wirst!

  • 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.

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • 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!

    Einmal editiert, zuletzt von DMHas (13. Dezember 2020 um 16:04)

  • 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.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!