Wie ändere ich den Fenstermanager auf einem Raspberry Pi?

7

Ich möchte X11 auf einem Raspberry Pi (als Server ohne angeschlossenes Display, OS Raspbian) ausprobieren und über VNC darauf zugreifen.

Ich mag LXDE nicht sehr, deshalb möchte ich zu einem anderen Fenstermanager wechseln. Ich habe viele Dinge ausprobiert, aber LXDE startet immer.

Folgende Pakete sind installiert:

sudo aptitude install x-window-system xfce4 xfce4-themes x11vnc icewm fluxbox gnome tightvncserver

Ich führe den Server mit folgendem Befehl aus:

vncserver -geometry 800x600 :0

Wenn ich mit RealVNC eine Verbindung zum Raspberry Pi herstelle, komme ich zum LXDE-Desktop.

Was ich bisher versucht habe:

Ich lief sudo update-alternatives --config x-window-managerund änderte es von Openbox zuxfwm4

$ update-alternatives --config x-window-manager
Es gibt 5 Auswahlm¦glichkeiten f¦r die Alternative x-window-manager (welche /usr/bin/x-window-manager bereitstellen).

  Auswahl      Pfad                   Priorit¦t  Status
------------------------------------------------------------
  0            /usr/bin/openbox        90        Auto-Modus
  1            /usr/bin/icewm          50        manueller Modus
  2            /usr/bin/metacity       60        manueller Modus
  3            /usr/bin/openbox        90        manueller Modus
  4            /usr/bin/startfluxbox   50        manueller Modus
* 5            /usr/bin/xfwm4          60        manueller Modus

Ich habe bearbeitet /etc/X11/default-display-managerund verändert es aus /usr/sbin/lightdmzu /usr/bin/icewm.

Nach einem Systemneustart habe ich den vncserver erneut ausgeführt und komme wieder zu LXDE.

Ich sehe openbox und lxsession in der Prozessliste:

$ ps aux | grep lx
daniel    3604  0.0  0.3  12904  1516 pts/0    Sl   01:39   0:00 /usr/bin/lxsession -s LXDE -e LXDE
daniel    3614  0.1  1.3  15268  6160 pts/0    S    01:39   0:00 openbox --config-file /rasdata/profiles/daniel/.config/openbox/lxde-rc.xml
daniel    3616  0.6  2.2 113392 10060 pts/0    S    01:39   0:02 lxpanel --profile LXDE
daniel    3632  0.0  1.0  26352  4680 pts/0    Sl   01:39   0:00 /usr/lib/arm-linux-gnueabihf/lxpolkit
daniel    3684  0.0  0.1   3836   816 pts/0    S+   01:46   0:00 grep lx

Ich bin mir derzeit nicht sicher, welchen Fenstermanager ich haben möchte. Ich werde alles versuchen und herausfinden, was mir am besten gefällt. Im Moment versuche ich einen Weg zu finden, es irgendwie weg von LXDE zu ändern.

Ich mochte KDE sehr, aber es scheint nicht in Raspbian enthalten zu sein. Das Paket konnte nicht in Eignung gefunden werden.

Daniel Marschall
quelle
1
Ist es nicht genug, LXDE zu entfernen?
Braiam
Wie Sie in meiner aptitude-Befehlszeile sehen können, habe ich lxde nie explizit installiert. Es war also wahrscheinlich eine Abhängigkeit von etwas anderem. Außerdem sehe ich, dass Leafpad lxde benötigt, und ich mochte diesen Editor. Außerdem muss die Möglichkeit bestehen, zu einem anderen Windows- / Desktop-Manager zu wechseln, ohne ihn zu deinstallieren.
Daniel Marschall

Antworten:

5

X11 befindet sich bereits auf Ihrem Computer

X11 sollte bereits auf Ihrem System installiert sein. Grundsätzlich verwenden es alle Linux-Distributionen. LXDE läuft auf Xorg. Wayland wird zur beliebten Alternative zu X Windows, ist aber immer noch fehlerhaft. Ich würde warten, um dorthin zu wechseln. Ich sage also, dass Sie bereits X11 verwenden. Wenn nicht, wäre ich äußerst verwirrt.

Sie möchten einen neuen Windows-Manager installieren, wie es LXDE ist. Aufklärung und Openbox sind gute Alternativen, die leicht sind. KDE ist mein Favorit, aber es ist etwas schwerer. Mit dem Rasp pi würde ich allerdings leicht bleiben. Wenn Sie es nicht an einen Monitor anschließen möchten, empfehle ich ein kopfloses System und verwende nur die Option -X mit ssh.

Installieren eines neuen Windows Managers

Installieren Sie den neuen Windows-Manager und bearbeiten Sie .xinitrc so, dass der richtige Manager gestartet wird.

Wenn Sie beispielsweise KDE verwenden möchten, installieren Sie KDE ( #apt-get install kdeoder #apt-get install kdebase, was für einen Pi besser ist, aber etwas mehr Einrichtung erfordert) und ändern Sie dann Ihre .xinitrc-Datei. Sie werden sehen exec startlxde, auf welche geändert werden mussexec startkde

Der Befehl exec ändert sich entsprechend Ihrer Präferenz für Windows Manager.

SSHing in dein pi

Wenn Sie nun in Ihr Pi sshing und ein Programm grafisch ausführen möchten, müssen Sie dies tun

ssh -X user@raspberry-pi-address:portnumber; gtk-program

Dies funktioniert weiterhin, wenn Sie ein Headless-System ohne Windows Manager verwenden. Dies ist auch viel schneller als die Verwendung von vnc. Wenn Sie Ihren Pi nicht an einen Monitor anschließen, tun Sie dies grundsätzlich.

Steven Walton
quelle
Ich schlage vor, ": portnumber;" vom ssh-Befehl. Die Portnummer hat einen Standardstandard und das Semikolon unterbricht den Befehl.
Nobar
Ich könnte es bearbeiten, aber Sie sollten stattdessen / etc / ssh / sshd_config bearbeiten, damit es sich nicht am Standardport befindet. Wenn der Zugriff nur über das interne Netzwerk möglich ist, ist es in Ordnung, auf 22 zu bleiben. Wenn Sie jedoch den Zugriff von außen zulassen, sollten Sie ihn aus Sicherheitsgründen in eine zufällige Portnummer ändern.
Steven Walton
Es gibt einige Probleme ... (1) Die Pakete "kde" oder "kdebase" sind nicht verfügbar (kein Kandidat gefunden). (2) Es gibt keine .xinitrc-Datei und wenn ich eine erstelle (z. B. mit Inhalt !#bin/bash [new line] icewm-session), wird sie ignoriert. (3) Ich führe es in VNC aus, da es wirklich ärgerlich war, dass jedes Fenster in meiner Windows-Taskleiste enthalten war, als ich SSH mit X-Weiterleitung verwendete. Ich möchte nur einen Linux-Desktop mit geöffneten Programmen haben, der von meinen Windows-Programmen getrennt ist.
Daniel Marschall
Versuchen Sie "apt-cache kde" (oder kdebase, kde-base), um es zu finden. Es kann in Ihrem Repo anders beschriftet sein. Es sollte jedoch kde heißen (verwenden Sie "| sort", um das Auffinden zu erleichtern). .xinitrc sollte enthalten sein. Wenn nicht, machen Sie Ihre eigenen. Die .xinitrc-Datei ist eine x-Initiationsdatei. Sobald x startet, werden diese Zeilen ausgeführt (ähnlich wie bashrc ausgeführt wird, sobald Sie ein Terminal ausführen). Versuchen Sie "sudo find / -name .xinitrc", um zu sehen, ob es irgendwo ist. Und ich versichere Ihnen, es wird schneller sein, X weiterzuleiten. VNC ist ziemlich langsam und klobig. Nicht für den Himbeer-Pi gedacht.
Steven Walton
Die Pakete sind nicht da. Wie gesagt, ich habe meine eigene .xinitrc erstellt (find hat keine anderen gefunden), aber sie wird ignoriert oder die Befehle schlagen fehl, da bereits ein anderer Fenstermanager (lxsession) ausgeführt wird (dies ist die Meldung, die ich erhalte, wenn ich versuche, eine auszuführen anderer Fenstermanager) .X-Forwarding hilft wirklich nicht, es sei denn, es besteht die Möglichkeit, ein X-Fenster zu haben, das den gesamten Desktop und alle Fenster enthält. Im Moment verstecken die Windows sogar meine Windows-Taskleiste. Es ist unmöglich, mit so etwas zu arbeiten: imgur.com/kOhVcrS. Außerdem habe ich mehrere Symbole in meiner Taskleiste mit nur einem "X" -Symbol.
Daniel Marschall
2

Die Antwort ist einfacher als erwartet. Einfach installieren xrdpund ich kann eine vollständige Linux-Desktop-Umgebung auf meinem Windows-Computer genießen, ohne dass 20 X-Windows herumfließen.

Es ist auch wichtig, den Unterschied zwischen "Window Manager", "Session Manager" und "Display Manager" zu kennen. Leider hat niemand erklärt, dass ich wahrscheinlich falsche Begriffe verwendet habe, und ich bin sehr verwirrt darüber, daher weiß ich nicht, welche dieser drei Dinge ich ändern muss, um eine "neue GUI" zu erhalten.

Daniel Marschall
quelle
1

Ich nehme an, es ist etwas spät, aber falls sich jemand anderes mit dem gleichen Problem befasst, ist hier was los.

Der Grund, warum Sie dadurch verwirrt sind, ist, dass die auf dem VNC-Server ausgeführte Sitzung und die auf dem lokalen Desktop ausgeführte Sitzung nicht miteinander verknüpft sein müssen. Tatsächlich werden sie nur in Beziehung gesetzt, wenn Sie tatsächlich eine lokale GUI ausführen und diese dann speziell bereitstellen (die Server Vino (für Gnome), krfb (für KDE) und x11vnc stellen standardmäßig lokale Sitzungen bereit). Es hört sich so an, als würde die lokale Benutzeroberfläche nicht ausgeführt, sodass alle Änderungen, die Sie normalerweise vornehmen würden, nichts bewirken, da sie nie gestartet werden.

Wenn Sie einen VNC-Server außerhalb der lokalen GUI ausführen, wird möglicherweise standardmäßig derselbe Fenstermanager wie die lokale GUI verwendet. Es wird alles tun, wofür es in der Datei ~ / .vnc / xstartup konfiguriert ist (die beim ersten Start des Servers in Ihr Home-Verzeichnis kopiert wird). Wenn diese Datei anweist, eine weitere Kopie der lokal definierten GUI auszuführen, wird dies der Fall sein. Wenn diese Datei anweist, stattdessen eine andere GUI auszuführen, wird dies ausgeführt. Wenn Sie also den von vncserver ausgeführten Fenstermanager ändern möchten, müssen Sie diese Datei ändern oder das Skript oder den Link ändern, auf den diese Datei verweist.

CFWhitman
quelle