Wie kann ich in Gnome mit xmonad ein Skript aufrufen, wenn ein Monitor angeschlossen ist ODER wenn ich meinen Laptop andocke?

StackOverflow https://stackoverflow.com/questions/8980060

  •  12-11-2019
  •  | 
  •  

Frage

Problem:

Ich habe einen zusätzlichen Satz oberer und unterer Gnome-Panels für einen zweiten Monitor.Wenn ich mein Lenovo Thinkpad (T510) abdocke, bleiben die zusätzlichen Ober- und Unterplatten erhalten, sodass ich zwei oben und zwei unten habe.Ich verwende derzeit eine RHEL6/Fedora (x86_64) Gnome (2.28.2)-Instanz mit xmonad (0.9.1-6.1.el6) als Fenstermanager und verwende die xmonad-Erweiterungen, um in Gnome zu arbeiten.

Versucht:

Ich habe acpi verwendet und einen Code zum Andocken und Abdocken gefunden, aber wenn ich versuche, ein Skript zu verwenden, habe ich es gefunden dieser Blogbeitrag, erhält es Null für den Aufruf von xrandr.Das Skript funktioniert, wenn es selbstständig vom Terminal aufgerufen wird.Ich habe versucht, ein separates Schleifenskript in einem eigenen Thread aufzurufen, und es erhält weiterhin Null für den Wert, lange nachdem die Bildschirme aktualisiert wurden.

Ich habe herausgefunden, wie man eine Skriptschleife alle

Frage:

Ich hoffe, dass jemand einen Ort kennt, an dem ich das referenzierte Skript aufrufen und meine Panels wie erwartet kommen und gehen lassen kann, ohne das Skript manuell starten zu müssen.

Danke!

Aktualisieren:Ich habe ein Kopfgeld von 50 (maximal, was ich tun kann) für eine Antwort hinzugefügt.

Ben

War es hilfreich?

Lösung

Ich vermute, dass eines der unten aufgeführten Probleme auftritt (oder beides):

1) Es sieht so aus, als würde Ihr xrandr-Snippet nicht die richtigen Werte zurückgeben, weil die Umgebungsvariable $DISPLAY nicht richtig eingestellt ist.Das Acpi-Handler-Skript wird normalerweise als Benutzer ausgeführt, der nicht der Benutzer ist, der Ihre aktuelle X-Sitzung ausführt.Auf diese Weise weiß xrandr einfach nicht, welches $DISPLAY zugreifen.

2) wenn $DISPLAY richtig eingestellt ist, kann der acpid-Benutzer möglicherweise immer noch nicht auf Ihre laufende xsession zugreifen.Sie können bei der Ausführung prüfen, ob das Skript über den ACPI-Handler funktioniert xhost + als der Benutzer, der gerade die aktuelle xsession mit der in Ihrem Skript angegebenen Angabe $DISPLAY durchführt.Dadurch wird die Zugriffskontrolle für X deaktiviert.Sie können es mit wieder aktivieren xhost - wieder.

Überprüfen Sie es, ich hoffe, es hilft oder zeigt Ihnen zumindest, in welche Richtung Sie graben müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top