Bildschirmgeometrie herausfinden
Hallo zusammen, ich möchte gerne in einem Shellskript herausfinden, wie groß die Fläche ist, die das aktuelle Display derzeit bereitstellt. Hintergrund: auf wechselnden Notebooks soll rdesktop jeweils mit der maximal möglichen Geometrie aufgerufen werden. Wie kann man das machen? Und wie kann man herausfinden, welche Größe abzüglich der KDE-Taskleiste zur Verfügung steht: sprich: auf welche Größe ein Fenster im KDE maximiert werden würde? Danke und Gruß. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Sonntag, 10. Februar 2008 08:38:36 schrieb Andre Tann:
Hallo zusammen,
ich möchte gerne in einem Shellskript herausfinden, wie groß die Fläche ist, die das aktuelle Display derzeit bereitstellt. Hintergrund: auf wechselnden Notebooks soll rdesktop jeweils mit der maximal möglichen Geometrie aufgerufen werden.
Suchs du vielleicht so etwas: xdpyinfo | grep dimensions dimensions: 1400x1050 pixels (307x230 millimeters)
Wie kann man das machen? Und wie kann man herausfinden, welche Größe abzüglich der KDE-Taskleiste zur Verfügung steht: sprich: auf welche Größe ein Fenster im KDE maximiert werden würde?
Keine Ahnung ... Gruß Andreas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Sonntag, 10. Februar 2008 schrieb Andre Tann:
ich möchte gerne in einem Shellskript herausfinden, wie groß die Fläche ist, die das aktuelle Display derzeit bereitstellt. Hintergrund: auf wechselnden Notebooks soll rdesktop jeweils mit der maximal möglichen Geometrie aufgerufen werden.
rdesktop habe ich noch nie ausprobiert. Öffnet das Ding denn ein Fenster? Dann könnte man dem Ding doch einfach maximieren, beispielsweise: kstart --maximize xclock
Wie kann man das machen? Und wie kann man herausfinden, welche Größe abzüglich der KDE-Taskleiste zur Verfügung steht:
Das geht sogar ganz einfach per DCOP: dcop kicker Panel panelSize
sprich: auf welche Größe ein Fenster im KDE maximiert werden würde?
Dummerweise habe ich keinen DCOP-Aufruf gefunden, der die Abmessungen des gesamten Desktops ausgibt. :-( Daher habe ich mich mal mit xdpyinfo und sed beholfen um die Höhe zu bestimmen: xdpyinfo | echo $(($(sed -n "s/^ dimensions: \([0-9]*\)x\([0-9]*\) pixels (.*)$/\2/p")-$(dcop kicker Panel panelSize))) Die Breite: xdpyinfo | sed -n "s/^ dimensions: \([0-9]*\)x\([0-9]*\) pixels (.*)$/\1/p" Dann bekommst du die Höhe abzüglich des Panels. Wenn natürlich das Panel an der Seite ist, hast du Pech gehabt. Du müßtest dann eine Fallunterscheidung machen und zwar anhand der Ausgabe von: dcop kicker Panel panelOrientation 0 ist oben oder unten und 1 ist links oder rechts: #!/bin/sh COMMAND_PRE="s/^ dimensions: \([0-9]*\)x\([0-9]*\) pixels (.*)$/" COMMAND_POST_WIDTH="\1/p" COMMAND_POST_HEIGHT="\2/p" WIDTH=$(xdpyinfo | sed -n "${COMMAND_PRE}${COMMAND_POST_WIDTH}") HEIGHT=$(xdpyinfo | sed -n "${COMMAND_PRE}${COMMAND_POST_HEIGHT}") PANEL_SIZE=$(dcop kicker Panel panelSize) PANEL_ORIENTATION=$(dcop kicker Panel panelOrientation) case "${PANEL_ORIENTATION}" in 0) HEIGHT=$((${HEIGHT}-${PANEL_SIZE})) ;; 1) WIDTH=$((${WIDTH}-${PANEL_SIZE})) ;; esac echo "${WIDTH}"x"${HEIGHT}" HTH Jan -- Don't crush that dwarf, hand me the pliers. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Andre, Das Tastaturgeklapper von Andre Tann, am 10.02.2008 08:38 lautete:
ich möchte gerne in einem Shellskript herausfinden, wie groß die Fläche ist, die das aktuelle Display derzeit bereitstellt. Hintergrund: auf wechselnden Notebooks soll rdesktop jeweils mit der maximal möglichen Geometrie aufgerufen werden.
Schon mal krdc angeschaut. Da kann man die Profile abspeichern und es bietet ein wenig mehr Komfort als rdesktop. Gruß Steffen -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Andre Tann schrieb:
Hallo zusammen,
ich möchte gerne in einem Shellskript herausfinden, wie groß die Fläche ist, die das aktuelle Display derzeit bereitstellt. Hintergrund: auf wechselnden Notebooks soll rdesktop jeweils mit der maximal möglichen Geometrie aufgerufen werden.
Wie kann man das machen? Und wie kann man herausfinden, welche Größe abzüglich der KDE-Taskleiste zur Verfügung steht: sprich: auf welche Größe ein Fenster im KDE maximiert werden würde?
rdesktop -u .... -g 100% server
Danke und Gruß.
der kann selber skalieren! du musst nicht Pix * Pix angeben .. man kann auch Prozent vom Zielscreen angeben! ansonsten (stillschweigend vorausgesetzt).. bleibe es immer beim Seitenverhältnis.. (was is nicht getestet habe .. ob mstsc auch Prozente kann...) Gruss Fred -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Fred Ockert, Montag, 11. Februar 2008 08:03:
rdesktop -u .... -g 100% server
Ah, das ist natürlich elegant... Danke! -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Andre Tann, Montag, 11. Februar 2008 09:09:
Ah, das ist natürlich elegant... Danke!
Hm, leider doch nicht elegant. Denn rdesktop legt sein Fenster dann unter die Kicker-Leiste drunter. Also bleibe ich lieber doch bei der manuellen Geometrie-Berechnung. Bei dieser Gelegenheit noch eine Frage zu sed: Wie kann man denn gleich ganze Code-Abschnitte in einer Datei umändern. Also etwa sowas: sed s/[zwanzig Zeilen Code]/[andere zwanzig Zeilen Code]/ Man kann ja schlecht anfangen, jedes einzelne böse Zeichen zu escapen. Gibts da einen eleganten Weg? -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mon, 11 Feb 2008, Andre Tann schrieb:
Wie kann man denn gleich ganze Code-Abschnitte in einer Datei umändern. Also etwa sowas:
sed s/[zwanzig Zeilen Code]/[andere zwanzig Zeilen Code]/
Man kann ja schlecht anfangen, jedes einzelne böse Zeichen zu escapen. Gibts da einen eleganten Weg?
Sed hat Befehle, die auf keiner, einer Adresse oder auf einem Bereich arbeiten. Du suchst den Befehl 'c' zusammen mit einem Bereich. sed ' ADRESSE,ADRESSE c\ neuer text\ mit mehreren\ Zeilen' Wichtig sind dabei die \ an den Zeilenenden. Als ADRESSE kannst du Zeilennummern oder Regexe (in //) verwenden. $ { seq 9 15; seq 8 22; } | sed '/^1/,/^[^1]/ c\ ERSETZ\ MICH ' 9 ERSETZ MICH 9 ERSETZ MICH 21 22 Hier ein Beispiel mit 2 REs, die ich wohl nicht erklären muß, odr? HTH, -dnh -- Ambition is a poor excuse for not having enough sense to be lazy. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (6)
-
Andre Tann
-
Andreas Kemmer
-
David Haller
-
Fred Ockert
-
Jan Ritzerfeld
-
Steffen Genkinger