Größe eines Konsolenfensters ermitteln (Linux)
-
- Beiträge: 1910
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Größe eines Konsolenfensters ermitteln (Linux)
CRT ist generell sehr seltsam, und mMn. unbenutzbar. Die macht schweinerein mit den Dateidescriptoren von STDIN und STDOUT, und ist äußerst limitert (z.b. in dem farbspektrum) dardurch das es den kleinsten gemeinsamen nenner (alte windows versionen) unterstützen muss
Ncurses ist zwar grundsätzlich super, ist aber verdammt kompliziert, Linux gebunden und benötigt die dependency libncurses.
Daher hab ich mich auch entschieden diese Lib zu schreiben, denn ich wollte was haben was cross plattform funktioniert (zumindest auf den großen platformen Mac, Windows und Linux) und nicht durch die limitationen der CRT unit (wie z.b. die restriktion zu winapi statt escape sequences z.b. zum input lesen) eingeschränkt wird.
Man sollte halt nicht um nur ein bisschen farbig text auszugeben das verhalten von STDIN und STDOUT für das gesammte programm beeinflussen (was die crt macht)
Zu der video unit, die hat mMn. das selbe problem wie ncurses mit der komplexität. Die unterstüzt super viele verschiedene terminal typen und platformen, dabei sind praktisch alle terminals denen man heutzutage über den weg läuft xterm kompatible terminals, windows cmd und powershell fenster, KDE Konsole, Gnome terminal, xterm (obvious), Terminal und iTerm für mac.
Man muss schon ein sehr ausgefallenes system haben um mal was anderes als xterm kompatibilität zu brauchen.
Daher hab ich diese lib geschrieben, um eine möglichst einfache lib zu haben die auf den wichtigsten systemen funktioniert
Ncurses ist zwar grundsätzlich super, ist aber verdammt kompliziert, Linux gebunden und benötigt die dependency libncurses.
Daher hab ich mich auch entschieden diese Lib zu schreiben, denn ich wollte was haben was cross plattform funktioniert (zumindest auf den großen platformen Mac, Windows und Linux) und nicht durch die limitationen der CRT unit (wie z.b. die restriktion zu winapi statt escape sequences z.b. zum input lesen) eingeschränkt wird.
Man sollte halt nicht um nur ein bisschen farbig text auszugeben das verhalten von STDIN und STDOUT für das gesammte programm beeinflussen (was die crt macht)
Zu der video unit, die hat mMn. das selbe problem wie ncurses mit der komplexität. Die unterstüzt super viele verschiedene terminal typen und platformen, dabei sind praktisch alle terminals denen man heutzutage über den weg läuft xterm kompatible terminals, windows cmd und powershell fenster, KDE Konsole, Gnome terminal, xterm (obvious), Terminal und iTerm für mac.
Man muss schon ein sehr ausgefallenes system haben um mal was anderes als xterm kompatibilität zu brauchen.
Daher hab ich diese lib geschrieben, um eine möglichst einfache lib zu haben die auf den wichtigsten systemen funktioniert
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Größe eines Konsolenfensters ermitteln (Linux)
Der kleinste Nenner ist MS-DOS. Somit konnte man unter DOS farbigen Text ausgeben, ohne direkt auf das VRAM zuzugreifen.CRT ist generell sehr seltsam, und mMn. unbenutzbar. Die macht schweinerein mit den Dateidescriptoren von STDIN und STDOUT, und ist äußerst limitert (z.b. in dem farbspektrum) dardurch das es den kleinsten gemeinsamen nenner (alte windows versionen) unterstützen muss
KeyPressed und ReadKey waren auch noch sehr wichtige Funktionen welche erst mit der unit Crt funktionierten.
So wie es mir ist, ist ncurses eine sehr alte Sache. Bei meinen ersten Gehversuchen mit Linux wurde ncurses schon für die Kernel Konfiguration verwendet. Das war in den Anfängen von Linux in den 90er.Ncurses ist zwar grundsätzlich super, ist aber verdammt kompliziert, Linux gebunden und benötigt die dependency libncurses.
So nebenbei das Design sieht beim aktuellen Kernel immer noch gleich aus, siehe Anhang.
- Dateianhänge
-
- Bildschirmfoto vom 2020-08-19 15-20-09.png (100.02 KiB) 2230 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 830
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Größe eines Konsolenfensters ermitteln (Linux)
Es ist eben das Ziel der Video Unit (und auch der Crt Unit, wobei die auch TP kompatibel ist) ein möglichst breites Spektrum an Plattformen abzudecken. Und da FPC eben auch Ziele wie MS-DOS, OS/2 oder Amiga unterstützt, die eben nicht xterm kompatibel sind, ist ein gewisses Maß an Komplexität (und auch Einschränkung) notwendig. Wobei der Backendteil eh plattformspezifisch über Includedateien abgehandelt wird.Warf hat geschrieben: ↑Mi 19. Aug 2020, 14:54Zu der video unit, die hat mMn. das selbe problem wie ncurses mit der komplexität. Die unterstüzt super viele verschiedene terminal typen und platformen, dabei sind praktisch alle terminals denen man heutzutage über den weg läuft xterm kompatible terminals, windows cmd und powershell fenster, KDE Konsole, Gnome terminal, xterm (obvious), Terminal und iTerm für mac.
If it ain't broken, don't fix it. Ncurses erfüllt für solche Konfigurationen genau seinen Zweck und funktioniert (und es wird ja auch noch aktiv gepflegt und entwickelt).
FPC Compiler Entwickler
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Größe eines Konsolenfensters ermitteln (Linux)
Hi!
Ncurses ist noch des öfteren im Einsatz und wird auch gepflegt.
Z.b. nutzt das Suse-Konfigurations-Tool Yast seit Anfang der 90er Ncurses.
Inzwischen gibt es Yast2 mit graphischer Oberfläche, aber wenn
man einen headless Server einrichten möchte oder KDE (oder eine
andere graphische Oberfläche) wieder temporär nicht will, kann man mit
der alten Version herrlich defekte Pakete deinstallieren oder fehlende installieren.
Außerdem bin ich alter Tasten-Mann deutlich schneller mit Yast als mit
Klicki-Bunti Yast2.
Winni
Ncurses ist noch des öfteren im Einsatz und wird auch gepflegt.
Z.b. nutzt das Suse-Konfigurations-Tool Yast seit Anfang der 90er Ncurses.
Inzwischen gibt es Yast2 mit graphischer Oberfläche, aber wenn
man einen headless Server einrichten möchte oder KDE (oder eine
andere graphische Oberfläche) wieder temporär nicht will, kann man mit
der alten Version herrlich defekte Pakete deinstallieren oder fehlende installieren.
Außerdem bin ich alter Tasten-Mann deutlich schneller mit Yast als mit
Klicki-Bunti Yast2.
Winni
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Größe eines Konsolenfensters ermitteln (Linux)
Alleine die Startzeiten und Latenzen wenn der Server nicht um die Ecke steht!
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Größe eines Konsolenfensters ermitteln (Linux)
Habe ich da etwas verpasst, ich dachte das Yast1 in der Konsole gibt es nicht mehr ?Außerdem bin ich alter Tasten-Mann deutlich schneller mit Yast als mit
Klicki-Bunti Yast2.
Zumindest dieser Klassiker nicht mehr: https://www.linuxjournal.com/article/4409
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Größe eines Konsolenfensters ermitteln (Linux)
Hi!
Jo, da hast Du was verpasst.
root Konsole öffnen, yast eintippen und dann blickst Du auf dieses blaue ,Wunder ....
(im Anhang).
Grüße
Winni
Jo, da hast Du was verpasst.
root Konsole öffnen, yast eintippen und dann blickst Du auf dieses blaue ,Wunder ....
(im Anhang).
Grüße
Winni
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Größe eines Konsolenfensters ermitteln (Linux)
Ist das nicht der YaST2 ?Jo, da hast Du was verpasst.
root Konsole öffnen, yast eintippen und dann blickst Du auf dieses blaue ,Wunder ....
(im Anhang).
Steht in der Kopfzeile.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Größe eines Konsolenfensters ermitteln (Linux)
Hi!
Das ist das dumme Terminal und nicht yast.
Da steht auch noch "joe ...." wenn ich vor zwei Stunden das letzte Mal mit joe gearbeitet habe.
Und andere Scherze.
Winni
Das ist das dumme Terminal und nicht yast.
Da steht auch noch "joe ...." wenn ich vor zwei Stunden das letzte Mal mit joe gearbeitet habe.
Und andere Scherze.
Winni
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Größe eines Konsolenfensters ermitteln (Linux)
@Matthias:
Damit keine Verirrung aufkommt:
yast ist zur Bedienung am Terminal
Yast2 ist für die graphische Oberfläche
Yast wird genauso weiterentwickelt wie Yast2.
Insofern ist das heutige Yast der legitime Nachfahre von 1992 (?).
Als Suse gestartet ist.
Und Suse wesentlich besser bei der Installation zu bedienen war als Slackware.
Winni
Damit keine Verirrung aufkommt:
yast ist zur Bedienung am Terminal
Yast2 ist für die graphische Oberfläche
Yast wird genauso weiterentwickelt wie Yast2.
Insofern ist das heutige Yast der legitime Nachfahre von 1992 (?).
Als Suse gestartet ist.
Und Suse wesentlich besser bei der Installation zu bedienen war als Slackware.
Winni