Wie kann ich xmonad mit der GNOME-Fallback-Sitzung ausführen?


Antworten:


5

So verwenden Sie einen benutzerdefinierten Fenstermanager mit der GNOME Classic-Sitzung in 11.10

Beispielhaft mit dem Sawfish Window Manager (sorry, ich benutze kein Xmonad).

1. Fix gnome-classic.session

Es scheint einen Fehler in gnome-classic.session zu geben. So beheben Sie das Problem:

Bearbeiten Sie die Systemdatei /usr/share/gnome-session/sessions/gnome-classic.session direkt oder erstellen Sie eine Kopie in Ihrem Home-Verzeichnis:

mkdir ~/.config/gnome-session/sessions
cp -ai /usr/share/gnome-session/sessions/gnome-classic.session ~/.config/gnome-session/sessions/

Nehmen Sie diese Änderung vor:

 [GNOME Session]
 Name=GNOME Classic
 RequiredComponents=gnome-panel;gnome-settings-daemon;
-RequiredProviders=windowmanager;notifications;
+RequiredProviders=windowmanager;
 DefaultProvider-windowmanager=gnome-wm
 DefaultProvider-notifications=notify-osd
 IsRunnableHelper=/usr/lib/gnome-session/gnome-session-check-accelerated
 FallbackSession=gnome-fallback
 DesktopName=GNOME

2.1. Alternative 1: Setzen Sie WINDOW_MANAGER in ~ / .gnomerc

2.1.a. Erstellen / bearbeiten Sie ~ / .gnomerc und fügen Sie Folgendes hinzu:

export WINDOW_MANAGER=sawfish

Ersetzen Sie in diesem Beispiel "Sägefisch" durch den Fenstermanager, den Sie verwenden möchten. Wenn Sie sich jetzt mit der Sitzung "GNOME Classic" anmelden, erhalten Sie den von Ihnen ausgewählten Fenstermanager.

2.1.b. Schnellerer Start:

Wenn beim Anmelden mit der oben genannten Lösung eine Verzögerung von 30 Sekunden auftritt, wird dies durch Folgendes behoben (dies kann nur ein Sägefischproblem sein).

Erstellen Sie ein Startskript, z. B. ~ / bin / my-gnome-wm:

#!/bin/bash
sawfish &

Machen Sie es ausführbar:

chmod u+x ~/bin/my-gnome-wm

Ändern Sie ~ / .gnomerc in:

export WINDOW_MANAGER="$HOME/bin/my-gnome-wm"

2.2. Alternative 2: Verwenden Sie sawfish.desktop

2.2.a. Bearbeiten Sie gnome-classic.session erneut:

 [GNOME Session]
 Name=GNOME Classic
 RequiredComponents=gnome-panel;gnome-settings-daemon;
 RequiredProviders=windowmanager;
-DefaultProvider-windowmanager=gnome-wm
+DefaultProvider-windowmanager=sawfish
 DefaultProvider-notifications=notify-osd
 IsRunnableHelper=/usr/lib/gnome-session/gnome-session-check-accelerated
 FallbackSession=gnome-fallback
 DesktopName=GNOME

Ersetzen Sie in diesem Beispiel "Sägefisch" durch den Fenstermanager, den Sie verwenden möchten. Dazu muss eine Datei wie "sawfish.desktop" am richtigen Speicherort installiert sein, z. B. /usr/share/applications/sawfish.desktop.

2.2.b. Schnellerer Start:

Wenn beim Anmelden mit der oben genannten Lösung eine Verzögerung von 30 Sekunden auftritt, wird dies durch Folgendes behoben (dies kann nur ein Sägefischproblem sein).

Bearbeiten Sie die Systemdatei /usr/share/applications/sawfish.desktop direkt oder erstellen Sie eine Kopie in Ihrem Home-Verzeichnis:

mkdir ~/.local/share/applications
cp -ai /usr/share/applications/sawfish.desktop ~/.local/share/applications/

Nehmen Sie diese Änderung vor:

 [Desktop Entry]
 Name=Sawfish
 Name[el]=Ðñéïíüøáñï (Sawfish)

 Type=Application
-Exec=sawfish
+Exec=bash -c 'sawfish&'
 TryExec=sawfish

 Terminal=false
 NoDisplay=true

 X-GNOME-WMName=Sawfish
 X-GNOME-Autostart-Phase=WindowManager
 X-GNOME-Provides=windowmanager
 X-GNOME-Autostart-Notify=true

Anmerkungen

Mit DefaultProvider-windowmanager = gnome-wm und ohne WINDOW_MANAGER in .gnomerc zu setzen, scheinen sowohl Unity als auch GNOME Classic gleichzeitig übereinander zu liegen!

Dieser Eintrag in ~ / .xsession-error sagt wahrscheinlich etwas darüber aus, warum es eine Verzögerung von 30 Sekunden gibt:

gnome-session[23870]: WARNING: Application 'gnome-wm.desktop' failed to register before timeout

Warum das my-gnome-wm-Skript erstellen? Weil das nicht zu funktionieren scheint:

export WINDOW_MANAGER='/usr/bin/sawfish&'

Dies gilt auch nicht:

export WINDOW_MANAGER='bash -c "/usr/bin/sawfish&"'

Vielen Dank für die sehr detaillierte Antwort, schön, die ganzen Bilder von dem zu bekommen, was passiert, nachdem man Zeiten mit Versuch und Irrtum verbracht hat ...
Alois Cochard

3

Eine schnelle Lösung: Melden Sie sich an und führen Sie sie aus killall metacity & xmonad.

Es scheint zu funktionieren, obwohl ich zeitweise Probleme mit Tastatur und Maus habe, die möglicherweise mit dieser Lösung zusammenhängen oder nicht.

Da dies funktioniert, könnte man meinen, ich könnte den Fenstermanagerwert in /usr/share/gnome-session/sessions/gnome-classic.session einfach austauschen, aber wenn ich den Wert ändere, passiert nichts.


Tricky. Ich werde diese verbessern, wenn ich mehr Stimmen habe, aber wenn Sie mehr Fortschritte machen, fügen Sie bitte Updates hinzu - ich bin auch interessiert.
Belacqua

1

Für neuere Ubuntu-Versionen (z. B. 15.04) ist dieses Repository verfügbar. So installieren Sie die benötigten Dateien:

sudo add-apt-repository ppa:gekkio/xmonad
sudo apt-get update
sudo apt-get install gnome-session-xmonad

Für Ubuntu 12.04 funktioniert es fast "out of the box" - Sie müssen das Gnome-Panel manuell installieren:

sudo apt-get install gnome-panel

Anschließend können Sie sich mit der Sitzung "GNOME with Xmonad" über den Anmeldebildschirm anmelden.

(Quelle: http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Ubuntu_Precise )

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.