[Tustep-Liste] TUSTEP & Linux 1: Anpassen der Fenstergröße
Thomas Meyer
thomhilmeyer at vr-web.de
Do Nov 4 13:48:47 CET 2004
Liebe Tustep-Liste,
gemäß den Ergebnissen der Diskussion auf der ITUG-Tagung in Tübingen, möchte
ich hiermit eine kleine mail-Serie beginnen, die eine Reihe kleiner
praktikabler Pröblemlösungen besonders für die Linux-Nutzer innerhalb der
Tustep-"Gemeinde" bespricht. Möglicherweise schließen sich ja andere an, und
es entsteht eine kleine Makrodatei für alle "GNUstepper"?
Herzliche Grüße, Ihr / Euer
Thomas Meyer.
(1.) Problem
Anders als unter Windoofs lässt sich in Linux die Größe des Konsolenfensters
bequem mit der Maus einstellen. Andererseits: Vielleicht arbeitet man im
Textmodus (Strg + Alt + F1...) und möchte nun natürlich die ganze
Bildschirmgröße für sein Tustep-Window nutzen. Schließlich sollen in
Remotesitzungen passende Spalten- und Zeilenwerte übergeben werden, um die
Fenstergröße auf versch. Client-PCs jeweils optimal einzustellen.
(2.) Lösungsansatz
Der Linuxbefehl "resize" liefert Informationen über die Ausmaße des
derzeitigen Fensters, die an #DEFINIERE übergeben werden können. In
Remotesitzungen sollten die passenden Werte mit #*DESI als Variablen
WIN_ZEILEN und WIN_SPALTEN gerätespezifisch eingestellt werden.
Der Aufruf des vorgestellten Makros #$RESIZE empfiehlt sich innerhalb von
TUSTEP.INI (Segment CONT) sowie manuell nach jeder Größenveränderung des
TUSTEP-Windows.
(3.) Verbesserungsmöglichkeiten
Gibt es eine Möglichkeit, das Makro bei jeder Größenveränderung des Fensters
(etwa im Sinne eines 'Interrupt') automatisch zu rufen?
(4.) Dokumentiertes Programm
$$-
$$- $RESIZE: Zeilen- und Spaltenzahl automatisch an Fenster anpassen
$$-
$$!
$$= $ <> *
$$ set system = system()
$$ fetch tustep_mds = TUSTEP_MDS
$$ fetch tustep_dsk = TUSTEP_DSK
$$ fetch tustep_prj = TUSTEP_PRJ
$$
$$ if ("<system>" .eq. "linux" .and.
$$ "<tustep_mds>" .eq. "DIALOG") then
$$- 1. Möglichkeit: Linux lokal
$$- -> Bildgröße einstellen.
$$ execute "resize > <tustep_dsk>/<tustep_prj>/scr_sdf"
$$ execute #anm,,<tustep_prj>*scr_sdf
$$ set a = file "<tustep_prj>*scr_sdf"
$$ set mirakel = join(a,";")
$$
$$- Zeilenzahl feststellen
$$ build x_table nur_zeilen = "~<><%lines '<>>/'<><%~>=09~"
$$ set zeilen = exchange (mirakel, nur_zeilen)
$$
$$- Spaltenzahl feststellen
$$ build x_table nur_spalten = "~<><%columns '<>>/'<><%~>=11~"
$$ set spalten = exchange (mirakel, nur_spalten)
$$
$$- Wegen des möglicherweise zu großen Bildschirms
$$- (keine Anführungszeichen, sonst werden aus Zahlen Zeichenfolgen...)
$$ if (<zeilen> .gt. 60) then
$$+ Maximalwert: zeilen = 60 !
$$ set zeilen = 60
$$ endif
$$ if (<spalten> .gt. 160) then
$$+ Maximalwert: spalten = 160 !
$$ set spalten = 160
$$ endif
$$ execute #def,zei=<zeilen>, spa=<spalten>
$$ execute #loesche,,<tustep_prj>*scr_sdf
$$ else
$$
$$- 2. Möglichkeit: Remote-Session
$$ fetch win_zeilen = WIN_ZEILEN
$$ fetch win_spalten = WIN_SPALTEN
$$ execute #defi,spa=<win_spalten>,zei=<win_zeilen>
$$ endif
$$ endif
Mehr Informationen über die Mailingliste Tustep-Liste