• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Monitore erkennen

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
Kennt jemand den Befehl, der hinter dem Button "Monitore erkennen" in den Monitor-Systemeinstellungen liegt, um ihn mit dem Terminal aufzurufen? Alternativ ginge auch ein Apple-Skript-Befehl...
 
Code:
[LEFT][COLOR=#000000]activate application "System Preferences"[/COLOR]
[COLOR=#000000]tell application "System Events"[/COLOR]
[COLOR=#000000]tell application process "System Preferences"[/COLOR]
[COLOR=#000000]tell window 1[/COLOR]
[COLOR=#000000]click button "Show All" of group 1 of group 2 of tool bar 1 (* in case another pane is already open *)[/COLOR]
[COLOR=#000000]tell button "Displays" of scroll area 1[/COLOR]
[COLOR=#000000]repeat until exists (* wait until the object is accessible *)[/COLOR]
[COLOR=#000000]delay 0.2[/COLOR]
[COLOR=#000000]end repeat[/COLOR]
[COLOR=#000000]click[/COLOR]
[COLOR=#000000]end tell[/COLOR]
[COLOR=#000000]tell button "Detect Displays" of group 1 of tab group 1[/COLOR]
[COLOR=#000000]repeat until exists (* wait until the object is accessible *)[/COLOR]
[COLOR=#000000]delay 0.2[/COLOR]
[COLOR=#000000]end repeat[/COLOR]
[COLOR=#000000]click[/COLOR]
[COLOR=#000000]end tell[/COLOR]
[COLOR=#000000]end tell[/COLOR]
[COLOR=#000000]end tell[/COLOR]
[COLOR=#000000]end tell[/COLOR]
[COLOR=#000000]tell application "System Preferences" to quit[/COLOR][/LEFT]

Quelle: http://www.insanelymac.com/forum/index.php?showtopic=59163

Hoffentlich hilft dir das weiter, einen direktes Shell-Kommando wüsste ich jetzt nicht. Vermutlich ist dies nur über eine Cocoa-Schnittstelle verfügbar und man müsste sich also ein eigenes kleines Shell-Programm mit dieser basteln.
 
Mmh, ich möchte das Skript in regelmäßigen Abständen im Hintergrund laufen lassen, weswegen sich eine Lösung mit öffnenden Fenstern und automatisierten Klicks nicht gut eignet.

Hintergrund ist: der Mac ist an einem Fernseher angeschlossen. Wenn der Fernseher allerdings ausgeschaltet ist, stellt der Mac beim Hochfahren eine eigene Auflösung ein. Wenn man später den Fernseher dazu einschaltet, bleibt der Bildschirm schwarz, bis ich beim Mac auf "Monitore erkennen" klicke.
Die Auflösung des Fernsehers kann ich remote nicht einstellen, da die Auflösung im Mac OS (SL) nicht gelistet ist, solange der Fernseher aus ist.

Wollte also nun ein Skript schreiben, welches so lange das "Monitore erkennen" ausführt, bis die Auflösung der des Fernsehers entspricht.
 
Hat niemand eine Idee, in welche Richtung ich recherchieren könnte? Ich bin mit meinem Latein am Ende...
 
Ein Bild habe ich nur, wenn ich mich Remote über einem anderen Rechner mit dem Mini verbinde. Der Fernseher bleibt schwarz, solange die Auflösung nicht passt.
 
ah, interessant. Genau deswegen habe ich gefragt, bei meinem Mini ist es genauso. Meiner Ansicht nach liegt es aber nicht an der Auflösung, sondern weil das gesamte Grafiksubsystem lahmgelegt wird wenn OS X meint, die Grafikeinheit schlafen legen zu müssen. Daher auch das Wiedereinschalten per ARD und/oder VNC. Deren Bild kommt ja gleich in der alten Auflösung wieder, das spricht somit auch gegen Deine Annahme.
 
Wenn ich die Auflösung auf 1280 x 768 und 60 Hz stelle und dann den Fernseher einschalte, dann versucht es der Fernseher zumindest: Das Bild ist verzerrt, flackert, enthält horizontale Linien und wiederholt sich an den Seiten. Der Fernseher bräuchte irgendwas mit 1365x768 und 50 Hz, aber was ich sagen will: die Grafikeinheit schläft scheinbar nicht.
 
Ich hatte ein Display probeweise angeschlossen, was eigentlich alles schlucken sollte, was der Mini ihm zum Fraß vorwirft - und der ging auch einfach nur in Standby. Keine Meldung "out of range". Gut, vll. kommt diese Meldung bei digitalem Anschluß (HDMI) nicht... Wie betreibst Du den Grafikmodus? Ich habe 1080p NTSC eingestellt. Noch ne Frage: Hat Dein Display einen Schlafmodus, welcher aktiviert ist?
 
Der Mini ist per VGA an den HD-Ready Fernseher angeschlossen (der Mini hat leider nur VGA).
Der Fernseher ist komplett stromlos, wenn der Mini hochfährt. Wenn der Fernseher per Fernbedienung in den Standby gebracht wird, findet ebenfalls keine Kommunikation statt und der Mini stellt eine zu hohe Auflösung beim Starten ein.
 
bei mir: ich starte den Mini mit TV im Standby, Standardimput beim TV ist auch nicht der HDMI-Anschluss. Wenn ich auf diesen wechsel, kommt weiterhin kein Bild. Ich muss mich remote verbinden, doch die Verbindung alleine reicht, damit der TV Bild zeigt (sofern nicht gerade plex den Bildschirm abgedunkelt hat).
Hast Du schon SwitchResX ausprobiert (Shareware mit Testversion, die alles kann; kostet 14 Euro, ist aber jeden davon wert). Dort in der Monitordefinition eine Auflösung angeben. Außerdem kann SwitchResX sog. Anzeigesets, die soweit gehen, dass angeschlossene Bildschirme automatisch erkannt werden. Ich benutze das zur automat. Anwendung von Kalibrationsprofilen, aber man kann auch Auflösungen vorgeben.
 
SwitchResX hatte ich schon ausprobiert, aber habe es nicht hinbekommen eine selbst definierte Auflösung einzustellen. Die wurde irgendwie gespeichert, aber erschien nie in der Auflistung. Und die Anzeigesets sind mir neu. Werde mich damit wohl mal genauer auseinandersetzen müssen.

EDIT:
Habe mich jetzt intensiver mit SwitchResX beschäftigt, aber keine Lösung gefunden. Solange der Fernseher eingeschaltet ist, kann ich Anzeigesets erstellen. Aber wenn er aus ist, sind die Anzeigesets nicht mehr zu sehen und ich habe nur noch einen "unbekannten Bildschirm".
Bei benutzerdefinierten Auflösungen steht bei mir immer "nicht installiert" und das bekomme ich nicht weg - auch nicht mir Neustarts.
 
Zuletzt bearbeitet:
ich habe bei mir auch noch rumprobiert und ein Binary namens ScreenUtil gefunden (http://www.mowlem-enterprises.co.uk).
Ich kann reproduzieren, dass ich kein Bild habe, wenn ich den Mini einfach mal rumstehen lasse (natürlich mit aktiviertem Powermanagement). Das Einschalten des TV (über HDMI) sorgt nicht für eine Reaktivierung des Bilds.

Wenn ich nun mir mittels
Code:
# system_profiler SPDisplaysDataType
die aktuellen Informationen über das Grafiksubsystems anzeigen lasse, dann gibt es keine Änderung (mit Bild, im inaktiven Zustand und im Zustand mit definitiv ohne Bild, aber auch kein Ruhezustand):
Code:
Graphics/Displays:

    Intel HD Graphics 3000:


      Chipset Model: Intel HD Graphics 3000
      Type: GPU
      Bus: Built-In
      VRAM (Total): 512 MB
      Vendor: Intel (0x8086)
      Device ID: 0x0116
      Revision ID: 0x0009
      Displays:
        Panasonic-TV:
          Resolution: 1920 x 1080 @ 24 Hz
          Pixel Depth: 32-Bit Color (ARGB8888)
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Rotation: Supported
          Display Asleep: Yes
          Television: Yes

Im letzteren Zustand mittels scrutil s 1920 1080 32 50 die Auflösung zu verändern, während das TV schon eingeschaltet ist, bringt exakt nada. Genauso wie der Druck auf die Fernbedienung ("It just works!"). Zwar hört man Plex durch die Menüs hecheln, doch Bildschirmausgabe wird immer noch nicht wiederhergestellt.

Meiner Ansicht nach ist zumindest bei mir irgendwas anderes.
 
möglicherweise habe ich es jetzt - durch das Einstellen eines unsupporteten Wertes (brrrr) für das Powermanagement über das Terminal:
Code:
sudo pmset -a displaysleep 2880
Dies stellt dauerhaft für alle Powermodes (Batterie/Netz) ein, dass das Display erst nach 2 Tagen schlafen soll. Bis jetzt habe ich es mit ausgeschaltetem TV nicht geschafft, das Verhalten zu reproduzieren (obwohl ich gut 2 Stunden dazwischen gelassen habe). Selbstverfreilich wäre der Gegentest noch super - nämlich, ob nach 2 Tagen wieder ein ARD-Zugriff nötig ist, um den HDMI wiederzubeleben.

Bei Apples buggy Software bleibt aber abzuwarten, welche Nebenwirkungen auftreten... (da PM sowieso beim Mini wegen jedem Pups disabled ist und sei es die externe Festplatte, ist meine Angst nicht zu groß - allerdings darf man absolut sicher erwarten, dass bei einem Supportcall bei Apple Care dieses Setting beanstandet würde und ein Retest mit "Default-Settings" notwendig wird. Aber das tut er sowieso. Determinismus für Arme... ;-) ).

Bringt Dir das auch was?

(Schau Dir vorher den Wert des Sliders in den Systemeinstellungen, Energie sparen, Netzteil, Ruhezustand für Monitor an - darüber kannst Du den Wert auch wieder zurücksetzen. Nur auf 2 Tage setzen (oder überhaupt länger als für den Ruhezustand des Rechners) geht nicht.)
 
Zuletzt bearbeitet:
Wir haben scheinbar zwei verschiedene Probleme, denn in den Schlaf geht bei mir weder der Fernseher, noch der Mac Mini.

Das Anzeigen des Bildes funktioniert über mehrere Monate hinweg (auch mit 2-3 Tagen ohne Zugriff), wenn der Fernseher zu Anfang einmal eingeschaltet war und der Mini so die richtige Auflösung eingestellt hat (1360x768x50Hz). Es muss also nur einmal das "Monitore erkennen" pro Systemstart ausgeführt werden.
Ruhezustände jeglicher Art (Monitor, Festplatte, etc) sind bei mir über die GUI abgeschaltet.
 
dann probiere mal ScreenUtil aus

Code:
*/3 * * * * /<pfad>/scrutil s 1366 768 32 50
per crontab des root-Users (crontab funktioniert aber nicht immer problemlos; die auf OS X vorgesehene Art und Weise, Programme zeitgesteuert aufzurufen, ist per launchd). Vielleicht 3min-Intervall?

Da Du immer davon sprichst, dass die Auflösung nicht zur Verfügung steht, wenn der TV ausgeschaltet ist, kann es aber sein, dass scrutil auch nicht weiterhilft. Ich bin aber auf noch mehr Programme gestoßen, die Auflösungen aufrufen können, vielleicht hilft da, dass Du noch SL hast und damit Rosetta (andererseits wurde bei SL wohl etwas bezgl. Monitoransteuerung/plist geändert)... Probiere mal scrutil aus und schreib, ob Du mehr Hilfe benötigst.
 
Ich habe keinen funktionierenden Downloadlink zu "ScreenUtil" gefunden? Der Link auf deren Webseiste ist tot...
Habe stattdessen "cscreen" ausprobiert - ohne Erfolg. Ich kann nur Auflösungen einstellen, die mir auch das Mac OS anbietet.