• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Wiedermal was feines für den Autostart (beryl)

Hi :)

Kann bitte jemand helfen, etwas sauber zu Lösen?

Was gemacht werden möchte:
http://www.linux-club.de/viewtopic.php?p=462420#462420

Also nochmal die Idee wäre quasi ein Script, welches im Autostart liegt.

Nach dem Automatischen Login dann entsprechend:
Zunächst wartet bis Kicker geladen ist:
Code:
## wait for kicker
while ! [ `pidof kicker` ]
do
     sleep 5
done

Und dann eben:
Code:
grep "DISPLAYMANAGER_XSERVER=" /etc/sysconfig/displaymanager
DISPLAYMANAGER_XSERVER="Xorg"
Oder
DISPLAYMANAGER_XSERVER="Xgl"
Abcheckt...

und wenn:

-->"Xgl" dann --> "/usr/local/bin/startberyl.sh" von Xsession Methode für Beryl Ausführen. Quelle startberyl.sh (File #2)
--> und wenn Xorg --> dann Einfach quit script ohne was zu machen.

So müsste nach einem gnome-xgl-switch nurnoch neugestartet werden, und man müsste die Xsession nicht mehr wählen und könnte Autologin nutzen.

Eventuell liesse sich später noch durch das script prüfen, wenn Kein Autologin aktiv ist, beende Script ohne was zu machen.

# /Eof

Gruss

R
 
Hier auch gleich die Lösung in Howto Form. Die Files entstanden mit viiiieeel Hilfe von B3ll3roph0n. -- Danke nochmal an dieser Stelle!

Warnung! - getestet wurde bisher nur von mir unter KDE!
Und sinnvoll ist das wohl für Xgl Nutzer, bei denen der Wert "Xgl" oder "Xorg" in den sysconfig Einstellungen für den Start von Beryl XGL oder normalem Xorg KDE ausschlaggebend sein können. Diese werden von "gnome-xgl-switch" gesetzt.


Der Script in dieser Form hier! funktioniert momentan nur MIT KDE!
Wer gnome hat hier eine Idee: Letzter Post in diesem Thread.

- Ausgegangen wird davon, dass Beryl mit Xgl verwendet wird.
- Benötigt wird, dass man zunächst den Automatischen Login deaktivert dann den Script anlegt und später wieder nach Auswahl der Session aktiviert.

### Dann müssten als priviligierter User/Userin neue Dateien angelegt werden:
Zunächst #1 und #2 Aus folgender Quelle (genau nach Anleitung): Klick Anleitung für startberyl.sh
Achtung! Bitte bei der "startberyl.sh" darauf achten, dass man hier entsprechend der verwendeten Oberfläche die Auskommentierung richtig wählt!
## Beispiel KDE:
Code:
# choose one of the following
DISPLAY=:0 startkde
#DISPLAY=:0 gnome
## Beispiel Gnome:
Code:
# choose one of the following
#DISPLAY=:0 startkde
DISPLAY=:0 gnome
# Das ganze File "/usr/local/bin/startberyl.sh" hat dann folgendem Inhalt:
Code:
#!/bin/sh

# to be safe, try to kill old running instances
killall beryl-manager
killall compiz-manager
killall compiz
killall cgwd
killall beryl

# start beryl-manager
DISPLAY=:0 beryl-manager >~/.beryl-manager.log 2>&1 &

# choose one of the following (Desktopumgebung Wählen: Hier KDE:)
DISPLAY=:0 startkde
#DISPLAY=:0 gnome
--------------------------------------------------------------------------------------
#### Und momentan Auto Default nur für KDE:
Dann müssten die (gerade hier) neu entstehenden Files angelegt werden:
#1 Zunächst eine neue Xsession unter "/usr/share/xsessions" - Neue "test.desktop":
Code:
[Desktop Entry]
Comment=The K Desktop Environment. A powerful Open Source graphical desktop environment
Comment[de]=Das K Desktop Environment. Eine mächtige, graphische Arbeitsumgebung und Open Source / Freie Software
Encoding=UTF-8
Exec=/usr/local/bin/berylchecker.sh
Icon=
Name=Autodefault to Xgl or Xorg
TryExec=/usr/local/bin/berylchecker.sh
Type=XSession
X-SuSE-translate=true

#2 Und eine weitere Datei unter "/usr/local/bin/" mit dem Dateinamen "berylchecker.sh":
Code:
#!/bin/sh
STARTXORG="/opt/kde3/bin/startkde"
STARTXGL="/usr/local/bin/startberyl.sh";
VAR="$(grep "DISPLAYMANAGER_XSERVER=" /etc/sysconfig/displaymanager | awk -F "\"" '{print $2}')";
### startberyl.sh - or startkde?
### depends on "gnome-xgl-switch"
if [ "$VAR" = "Xgl" ]; then
  $STARTXGL;
else
  $STARTXORG;
fi;
# EOF
Beide sind bei mir als ausführbar markiert.

Welche Aufgabe hat das?:
Die Aufgabe von berylchecker.sh ist es schliesslich dann zu entscheiden jenachdem ob im Sysconfig "Xorg" oder "Xgl" gesetzt ist (bzw. gnome-xgl-switch enable oder disable), automatisch Beryl oder Normale Sitzung ohne Beryl zu Starten. Bzw. "startkde" oder "startberyl.sh" auszuführen.

Was bleibt noch zu tun für Autologin?:
Wenn die Dateien angelegt wurden, kann einmal der Loginmanager gestartet werden. Als Xsession muss hier dann; -
"Autodefault to Xgl or Xorg" - gewählt werden.
Nachdem diese Xsession gewählt wurde, kann beim anschließenden Anmelden wieder "Automatischer" Login eingerichtet werden.
Die neue Xsession wird dann automatisch entscheiden, ob "startkde" oder "startberyl" ausgeführt werden soll.

Wie kann ich dann zwischen Xgl und Xorg umschalten?:
Damit ist eigendlich nurnoch "gnome-xgl-switch" nötig, um zwischen Beryl-Xgl oder nicht Xorg ohne Beryl in Verbindung mit Xgl umzuschalten.
Die Einstellungen werden jeweils nach einem Neustart des Xservers oder einem "reboot" aktiv.

Mein Fenstdecoratuer müsste automatisch neugeladen werden. Wie könnte ich das arrangieren?:
http://www.linux-club.de/viewtopic.php?p=468974#468974
Man lege eine Datei an:
/home/$user/.kde/Autostart/emeraldsPlace.sh
Code:
#!/bin/sh
# restarts emerald usual autostart
sleep 10 && emerald --replace
# EOF
Wobei hier noch der Wert für sleep angepasst werden muss. Bei mir langt "2 Sekunden" also nicht 10.
--------------------------------------------------------------------------------------

Und nochmal Danke!

Gruss

R
 
Habe Anleitung überarbeitet... "Für Gnome fehlt dem Script noch etwas"
TO DO:
Der Script "berylchecker.sh" muss noch wissen, ob laut "startberyl.sh" --> gnome oder KDE verwendet wird.

notiz:
Code:
grep "#DISPLAY=:0 " /usr/local/bin/startberyl.sh | awk '{print $2}'
=Auskommentiertes "gnome" im Testfall:
Also wenn "gnome" muss anstelle "STARTXORG="/opt/kde3/bin/startkde" der Startupscript für "KDE" ausgeführt werden. (weil gnome der Auskommentierte Wert ist in dem Fall.)

Und an der Stelle bräuchte ich bitte Hilfe, ich weiss nicht, welcher Befehl in dem Xsession File für gnome - für den Start ausschlaggebend ist. Ich hab nur KDE bzw konnte nichts finden bisher.

Also ich glaub das könnte dann so funktionieren: ???
ACHTUNG INCOMPLETE UNTESTED:

Code:
#!/bin/sh
## initialisation of "beryl-xgl" \ "KDE/GNOME":
STARTKDE="/opt/kde3/bin/startkde";
STARTGNOME="/path/to/gnome/initscript";
STARTXGL="/usr/local/bin/startberyl.sh";
## commented setting of "startberyl.sh in "VAR1":
VAR1="$(grep "#DISPLAY=:0 " /usr/local/bin/startberyl.sh | awk '{print $2}')";
## Xgl or Xorg of "sysconfig" in "VAR":
VAR="$(grep "DISPLAYMANAGER_XSERVER=" /etc/sysconfig/displaymanager | awk -F "\"" '{print $2}')";
## "VAR" depends on gnome-xgl-switch for setting Xgl "on/off" in "sysconfig":
## startberyl.sh (true?) else "KDE/gnome"?
if [ "$VAR" = "Xgl" ]; then
       $STARTXGL;
### if gnome is commented out - start KDE!
     elif [ "$VAR1" = "gnome" ]; then 
               $STARTKDE;
### if KDE is commented out, - start gnome!
     elif [ "$VAR1" = "startkde" ]; then
               $STARTGNOME
## if none statement is true exit script!
     else exit 0
# end if;
fi;
# EOF


Gruss

R 29.03.2007 21:16 Uhr
 
Oben