Elmario
Urgestein
- Mitglied seit
- 21.01.2006
- Beiträge
- 5.267
Hihi, ich kam her um mitzuteilen, dass ich genau diese Lösung selbst herausgefunden habe
Nach etlichen Experimentden mit diversen su, bash, sudo, pkexec Konstruktionen, bekam ich irgendwann die Fehlermeldung, dass $DISPLAY nicht gesetzt sei.
Also habe ich mir $DISPLAY als angemeldeter Desktopuser ausgegeben ( :0.0 ) und habe mir noch ein kleines extra docking-script gebaut, das von der rule aufgerufen wird.
90-docking.rules
und
docked.sh
Hurra, dass es endlich funktioniert!
Danke euch.
Zwei Fragen bleiben natürlich:
1. Weshalb heißt es bei mir :0.0 und nicht nur :0 ? Was ist der Unterschied?
2. Und weshalb funktioniert das ganze Geraffel mit sudo / su usw. nicht? Wenn man schon die Optionen verwendet, die angeblich die Umgebungsvariablen der angebgebenen Users verfügbar machen, dann sollte doch auch $DISPLAY dabei sein. Wird hier evtl. unterschieden zwischen Uservariablen und Umgebungsvariablen, wie unter Windows? Oder nach welcher Systematik kann man denn wisse, welche Variablen dann nun mit übergeben werdenm und welche nicht?
Nach etlichen Experimentden mit diversen su, bash, sudo, pkexec Konstruktionen, bekam ich irgendwann die Fehlermeldung, dass $DISPLAY nicht gesetzt sei.
Also habe ich mir $DISPLAY als angemeldeter Desktopuser ausgegeben ( :0.0 ) und habe mir noch ein kleines extra docking-script gebaut, das von der rule aufgerufen wird.
90-docking.rules
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0d8c", ATTR{idProduct}=="0102", RUN+="/bin/su -c /opt/scripts/dockedscript.sh ladmin"
ACTION=="remove", ENV{ID_MODEL_ID}=="0102", RUN+="/bin/su -c /opt/scripts/undockedscript.sh - ladmin"
und
docked.sh
(Und dementsprechend auch gleich noch ein undocked.sh)#!/bin/bash
export DISPLAY=':0.0'
/opt/scripts/hotkey-display.sh extended1+2+3
Hurra, dass es endlich funktioniert!
Danke euch.
Zwei Fragen bleiben natürlich:
1. Weshalb heißt es bei mir :0.0 und nicht nur :0 ? Was ist der Unterschied?
2. Und weshalb funktioniert das ganze Geraffel mit sudo / su usw. nicht? Wenn man schon die Optionen verwendet, die angeblich die Umgebungsvariablen der angebgebenen Users verfügbar machen, dann sollte doch auch $DISPLAY dabei sein. Wird hier evtl. unterschieden zwischen Uservariablen und Umgebungsvariablen, wie unter Windows? Oder nach welcher Systematik kann man denn wisse, welche Variablen dann nun mit übergeben werdenm und welche nicht?
Zuletzt bearbeitet: