Bionic-Client: Bildschirme steuern in v7

Hi @Holger, @foer,

ich hab ein weiteres Problem ungelöst: Bei uns sind Bildschirm und Beamer an zwei Anschlüssen dran, d.h. ich arbeitete bisher damit, dass ich Beamer und Bildschirm nebeneinander oder als Mirror aufeinander softwareseitig schalten musste.
Bislang ging das beim X-Server immer so aus, dass der schon beim Login-Fenster gemirrored hat. Ubuntu 18.04 macht das jetzt anders: es zeigt die Bildschirme nebeneinander, dort wo die Maus ist zeigt er die Anmeldung an. Auch ok, die Kollegen müssen halt mit der Maus mal nach ganz links oder ganz rechts fahren um nicht die Anmeldung über den Beamer zu machen.

Ich formuliere das mal um:
Aber nach dem Anmelden: Natürlich ist es (meist?) so, dass der Beamer der primäre Bildschirm ist und man wenn überhaupt nur sehr umständlich die gnome-einstellungen öffnet (rechts oben in der Leiste, ja, die ist aber nur auf dem Beamer sichtbar) um das umzustellen.
Als linuxadmin kann man das zwar mal machen: „Bildschirm spiegeln“, aber dummerweise klappt das nicht auf anderen Systemen automatisch beim Anmelden.
Bislang hatte ich ein „Beamer gleich Bildschirm“ - Icon auf dem Desktop bei 16.04. Wenn ich das wieder hinkriege, auf allen Bildschirmen angezeigt zu bekommen - auch gut.

HAt jemand von euch eine elegantere oder auch einfach funktionierende Lösung?
Die PCs sind unterschiedlich, fast alle stationär, evtl. wenige Laptops mit der Lösung, eine Tastenkombination wäre natürlich schlau. Noch besser man kriegt das automatisiert.

VG, Tobias

Hallo Tobias,

ich habe das Ubuntu 16 wie folgt gelöst, möglichweise klappt das unter Ubuntu18 auch noch?

Zum Starten eines Skriptes (s.u.) beim Starten der graphischen Oberfläche muss im Ordner /etc/lightdm/lightdm.conf.d/ eine Datei mit folgendem Inhalt erstellt werden.

[SeatDefaults]
greeter-setup-script=/Pfad/zu/diesem/Skript/s.u.
display-setup-script=/Pfad/zu/diesem/Skript/s.u.

Das wird dann auch bei Anmelden ausgeführt. Sollte das mal nicht klappen, habe ich das Skirpt auch noch in dem Kontextmenü nach Rechtsklicks auf den Schreibtisch hinterlegt. Vorteil: Rechtsklick ist auch dem Monitor möglich, wenn dieser nicht primär ist.

Grüße,
Sven

Hier das eigentliche Skript:

#!/bin/bash
#
# Dieses Skript stellt automatisch auf zwei Anzeigegeräte die größte
gemeinsame
# Auflösung ein. Auf beiden Anzeigen wird das gleiche Bild dargestellt
# ("clone").
#
# Sven Röhrauer
# 08.07.2016
# GPL v3
#
# Hinweis: Soll dieses Skript direkt nach dem Start des X-Servers, d.h.
bevor
# der greeter startet, muss im Ordner /etc/lightdm/lightdm.conf.d/ eine
# Datei
# mit folgendem Inhalt abgelegt werden:
# greeter-setup-script=/Pfad/zu/diesem/Skript
# Soll es erst zu Beginn der Nutzersitzung ausgeführt werden, muss in
# die o.g.
# Datei folgenden Inhalt besitzen
session-setup-script=/Pfad/zu/diesem/Skript
#
# ACHTUNG: Verwende "DISPLAY" nicht als Variablenname, dies ist eine (von i
# diesem Skript benötigte) Umgebungsvariable
#
# Alle angeschlossenen Anzeigeräte ermitteln
ANZEIGE=($(xrandr --query | grep " connected" | cut -d" " -f1))
#
# Finde die höchste gemeinsame Auflösung
# Hinweis: Diese Logik funtkioniert nur für 2 Displays, nicht für 3 und
# mehr.
MAXAUFLOESUNG=$(xrandr --query | awk '/^ *[0-9]*x[0-9]*/{ print $1 }' | \
sort -n | uniq -d | tail -1)
#
# Auflösung einstellen
xrandr --output ${ANZEIGE[0]} --mode $MAXAUFLOESUNG --output ${ANZEIGE[1]} \
--mode $MAXAUFLOESUNG --same-as ${ANZEIGE[0]}

Hallo -
genau so kann man das machen: Man arbeitet mit xrandr.
Dazu habe ich beispielsweise ein Script erstellt, das immer automatisch beim Anmelden ausgeführt wird - egal, wer sich anmeldet.
Diese Scripte sind traditionellerweise bei Debian-Linuxen bzw. den Distributionen, die dem Freedesktop-Prinzip folgen (wie ich glaube) unter /etc/xdg/autostart zu finden.
Dort legt man sein Script nach dem Muster, das hier beschrieben wird, ab:
https://wiki.ubuntuusers.de/Autostart/

Bei mir muss ich z.B. die mögliche Auflösung erzwingen, da die Auto-Auflösung einfach nicht funktioniert.
Bei den Lehrerrechnern belege ich Funktionstasten damit, verschiedene Betriebsmodi für den Beamer zu ermöglichen, F2=Beamer klont Rechner, F3=Beamer aus, F4=Erweiterter Desktop usw.

MfG
Christoph Gü

Hallo Tobias,

schau mal nach dem Login oben rechts in das Tray.
Da ist ein Bildschirm: der macht die Steuerung.
Zeig das einmal den Kollegen: das bekommen sie hin.

LG

Holger

schon richtig, das oben rechts ist aber in den meisten Fällen auf dem Beamer: Sie müssen den Kopf drehen und mit der Maus das kleine Symbol ansteuern. das bekommen die nicht alle hin. Und es ist mühsehlig.

Hi Sven,

danke, das lightdm-skript könnte funktionieren, mal schauen, ob das klappt.

Das wiederum hab ich noch nicht raus: ich bin ja bei ubuntu-mate gewesen, jetzt habe ich (deswegen in diesem thread) das cloop von Dominik/Holger genutzt, das nutzt gnome. Da weiß ich erst recht nicht, wie man in das kontextmenü kommt…

VG, Tobias

Hallo Tobias,

schon richtig, das oben rechts ist aber in den meisten Fällen auf dem
Beamer: Sie müssen den Kopf drehen und mit der Maus das kleine Symbol
ansteuern. /das/ bekommen die nicht alle hin. Und es ist mühsehlig.

meine Kollegen sind eigentlich ganz zufrieden mit dem Hinweis, dass man
Fn gedrückt hält und F7 drückt, bis das Gewünschte Ergebnis da ist.

Ich hab Lenovonotebooks: da ist es immer F7.

LG

Holger

Hi zusammen,

short-cut WIN + P gibt es tatsächlich, das würde ich sogar auf das Hintergrundbild tätowieren, wenn es nicht wieder so wäre, wie ich es mir nicht vorstelle: wenn der primäre Bildschirm (hier im Bild links) der Beamer ist, dann wird es mühselig (aber immer noch besser als das kleine Icon zu erwischen):

mit WIN + P gedrückt (obwohl der Focus auf dem Desktop ist):

Ich versuche die generische Lösung von Sven umzusetzen. Eine Gnome-hausinterne Lösung wäre immernoch preferabel …

VG, Tobias

Hi Christoph,

ja, das wäre super. ES muss generisch funktionieren (ich will keine Datenbank pflegen, wo verschiedene Auflösungen zu verschiedenen PC-Beamer-Kombinationen existieren, so wie bei Svens Art und Weise. Zudem muss das F1 F2 usw. auch unter gnome konfigurierbar sein. Ich weiß noch nicht, wie das geht…

VG, Tobias

Ja, meine Kollegin hat das heute auch probiert. Ich bin auch stolz auf sie, auch wenn das Icon auf dem Desktop „Beamer gleich Bildschirm“ nicht in ihrem STammhirn angekommen war, obwohl wir das schon seit 5 Jahren haben (jetzt: hatten).
Fn + F7 ist halt „nur“ bei Laptops. Ich habe halt „nur“ versch. PCs, da klappt das nicht.

VG, Tobias

Hallo zusammen,

ubuntu 18.04, gnome-deskop (gnome-shell) und lightdm-session=ubuntu
Es funktioniert leider nicht mit dem Skript.
Das Skript wird zwar ausgeführt, sowohl bei session-setup als auch bei display-setup oder (/und?) bei greeter-setup, aber danach wird irgendwie die AUflösung nochmal bestimmt und festgelegt.
Bei mir halt immer falsch, mit dem Beamer als Hauptmonitor und dem Monitor als sekundärem.

außerdem vergisst das gnome-desktop manchmal beim Umschalten, dass die Icons da sein sollten auf dem Desktop und das Kontext menü ist reduziert und englisch. Da sind böse Mächte am werk, oder ein Addon verhunzt mir die ANzeige.

WIN+P ist grade leider mein Favorit: DAs muss man nur so oft drücken, bis es passt.

VG, Tobias

Hallo Tobias,

wieder auf 16.04 bezogen, aber vielleicht gibt es das auch noch in 18.04:
In der Datei .config/monitors.xml werden auch Anzeigeeinstellungen abgelegt. Wenn du in vielen Räumen gleiche Beamer hast (in der Datei wird das genau Modell gespeichert) wäre das event. auch eine Option.

Grüße,
Sven

Das klappt auch unter 18.04 wunderbar: Am Client gewünschtes Verhalten einstellen, und dann die monitors.xml per postsync nach
/home/linuxadmin/.config/monitors.xml
kopieren. Das passt dann die Ausgabe nach dem login an.

LG Alex

Hallo Tobias,

ich hab ein ähnliches Problem: aber mit Win10.
Nur in den Computerräumen hab ich VGA Splitter: und was Windwos 7 Jahre
lang richtig gemacht hat (Auflösung trotz splitter erkennen) macht Win10
falsch: es zeigt fabelhafte 1024x768 (4:3) … auf einem 1440x900 (also
16:10) Monitor … das sieht gaaanz großartig aus: auch am Beamer.
Und man fühlt sich echt in Lilliput beim Arbeiten … so ein Mist…
Da muss ich MOrgen nach schauen wie ich das Windows bei bringe.
Erstmal ein anderes VGA Kabel: eines bei dem ein PIN fehlt: das hilft
manchmal (wenn DDC nicht geht).

LG

Holger

Hallo, lieber Tobias -

hier eine kleine Kurzanleitung für Deine Monitorprobleme, erprobt an meinem Ubuntu 19.04, müsste also in jedem Fall funktionieren:

Konsole:

  1. Als Normaluser (linuxadmin ohne su):

xrandr

Du erhältst eine Ausgabe, die so ähnlich aussieht:

VGA-1 connected 1280x1024+1920+176 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024     60.02*+  75.02  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   640x480       75.00    59.94  
   720x400       70.08  
HDMI-1 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200     59.95*+
   1600x1200     60.00  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.90  
   1280x800      74.93    59.91  
   1280x720      60.00  
   1024x768      75.03    70.07    60.00  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08  
HDMI-2 disconnected (normal left inverted right x axis y axis)

Wenn die Modes dabei sind, die Du hier brauchst, schaltest Du mit folgendem Befehl beispielsweise den HDMI-1 um:

xrandr --output HDMI-1 --mode "1024x768"

(Ich muss hier die Frequenzangaben an dieser Stelle rauslassen !)

Wenn nach dem Probieren der zweite Monitor (der Beamer…) nicht erkannt wird, gib ein:

xrandr --auto

Das probierst Du mit allen Output-Devices, bis Du zufrieden bist !

Wenn jetzt alle Ausgabegeräte das gewünscht Verhalten zeigen, springe auf den Teil „Autostart“.

Jetzt können aber noch zwei Probleme oder Wünsche auftreten:

a) Du möchtest auf einem erweiterten Desktop die Anzeigenreihenfolge umstellen:

xrandr --output VGA-1 --right-of HDMI-1

Hier würde der VGA-Bildschirm-Inhalt rechts vom HDMI angezeigt (mit Mauswanderung über die Bildschirme überprüfbar).

Oder Du willst eigentlich das gleiche Bild auf allen Bildschirmen:

xrandr --output VGA-1 --same-as HDMI-1

b) Oder Du möchtest frei skalieren:

xrandr --output VGA-1 --scale 0.7x0.7

vergrößert z.B. alle Fenster in X und Y-Richtung gleichmäßig.

Ferner gibt es Spezialfälle, wie: schwarze Balken oben und unten erwünscht usw. - schreib mal, ob das bei Dir zutrifft. Oder Du willst einen bestimmten Modus erzwingen, der mit xrandr erstmal nicht angezeigt wird - das ist bei meinen Bildschirmen leider der Fall:

In diesem Fall habe ich mit cvt einen „Newmode“ ermittelt und dann mit „Addmode“ meinen Bildschirmen erfolgreich „aufgezwungen“:

Das steht dazu im Wiki von Ubuntu:

xrandr akzeptiert neue Modi über die Option --newmode .... Die konkreten Parameter können mit dem Befehl cvt ermittelt werden. Die Syntax für die Auflösung 1024x768 bei 60Hz:

cvt 1024 768 60 

Die Ausgabe sieht dann so aus:

# 1024x768 59.92 Hz (CVT 0.79M3) hsync: 47.82 kHz; pclk: 63.50 MHz
Modeline "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync

In der zweiten Zeile befindet sich nach dem Wort Modeline die gesuchte Zeichenfolge, die man dem erwähnten xrandr --newmode mitgeben muss. Wenn der neue Modus erstellt wurde, muss man xrandr auch noch sagen, dass er hinzugefügt und aktiviert werden soll. Die vollständigen Befehle:

xrandr --newmode "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
xrandr --addmode DVI-0 "1024x768_60.00"
xrandr --output DVI-0 --mode "1024x768_60.00" 

Beachte, dass in diesem Fall der Auflösung meist die Bildwiederholfrequenz „_60.00“ angehängt sein muss.

AUTOSTART:

Hier haben bereits einige Leute erklärt, wie Du dann Deine EInstellungswünsche in die Autostart-Dateien eintragen kannst, z.B. hier:

Viel Erfolg,

Christoph Gü

1 Like

Wir müssen auf fast jedem Beamer eine angepasste Monitorkonfiguration einstellen, da unsere Boards alle im Format 4:3, die austauschbeamer jedoch alle 16:9 Geräte sind. In ihrer nativen Auslösung erscheint die Login-Zeile auf der Wand. Aus diesem Grund muss die Auflösung bereits in Lightdm, also vor dem Login einstellt werden.

Wir machen das so: Wir stellen auf dem betreffenden Rechner die Monitorauflösung wie gewünscht mit den Gnome/Cinnamon-Tools ein. Danach führen wir dieses Script mittels sudo auf dem Clienten aus:

cat /usr/local/bin/save_monitor.sh

#!/bin/bash
source="$HOME/.config/monitors.xml"
destLightDM="/var/lib/lightdm/.config"
destProfileUser="/home/linuxadmin/.config"
codeName="$(lsb_release -c | awk '{print $2}')"
pcName="$(uname -n)"
destLinbo="/var/linbo/linuxmuster-client/$codeName/$pcName"

echo "Dieses Programm setzt die Monitor (Beamer)-Einstellungen auf diesem Rechner als Vorlage"
echo "Die aktuellen Einstellungen bleiben damit auch beim nächsten Neustart/Anmelden sowie beim"
echo "nächsten Linbo-Image-Update erhalten."
echo "Ausserdem werden die Einstellungen für den Anmeldebildschirm uebernommen."
echo ""
echo "kopiere:"
cp -v "$source" "$destProfileUser"
cp -v "$source" "$destLightDM"   
echo "fertig. Kopiere die Einstellungen jetzt als Vorlage für diesen PC auf den server"
cat "$source" | ssh root@server "mkdir -p $destLinbo/$destLightDM && mkdir -p $destLinbo/$destProfileUser &&  tee $destLinbo/$destLightDM/monitors.xml $destLinbo/$destProfileUser/monitors.xml"

Das Script kopiert die von den Bildschirm-Tools erstellten monitors.xml zum Profilbenutzer, zum Lightdm-Homeverzeichnis und in das Linbo-Postsync-Verzeichnis auf den Server. Somit werden die Bildschirmeinstellungen nach jedem Linbo-Sync automatisiert wiederhergestellt.

Gruß
Frithjof

2 Like

Hallo Frithjof,

das ist in der Tat eine gute Möglichkeit und vermutlich die generischste, wenn man unterschiedliche Login-greeter und/oder sogar window-manager verwendet. Ich habe mich jetzt für die zunächst-mal-automatische Variante von @Cgsman, @MirDochEgal vorschlagen und @S.Senft und @Sven implementieren:

  • Das skript nutzt xrandr um die bevorzugte bzw. die unterstützte MAximalauflösung beider Bildschirme zu finden und einzurichten und evtl. den anderen Bildschirm entsprechend zu skalieren.
  • Aufgerufen kann es in der lightdm.conf - das bringt allerdings nix mit dem unity-greeter, weil der danach wieder neu skaliert
  • aufgerufen kann es auch als autostart beim Vorlagenbenutzer bzw. als doppelklick auf ein Icon auf dem Desktop
  • Ich poste hier im original Thread Anzeige automatisch klonen meine Version des Skriptes.

@sven, danke für dein skript. ideal kurz. Ich habe es mit Stefans vermangelt.

zuletzt: wir haben auch noch das Problem, dass die ELMOs als VGA-Splitter verwendet werden und der dahinterliegende Beamer nicht durchgereicht wird, der wiederum 16:9 Auflösungen kann und sollte. Da muss ich mit addmode und newmode noch ran.

Vielen Dank für die Tipps,
Tobias