我想在 Raspberry Pi 上尝试 X11(作为服务器运行,没有连接显示器,操作系统 Raspbian)并通过 VNC 访问它。
我不太喜欢LXDE,所以想换成另一个窗口管理器。我尝试了很多东西,但 LXDE 总是启动。
安装了以下软件包:
sudo aptitude install x-window-system xfce4 xfce4-themes x11vnc icewm fluxbox gnome tightvncserver
我正在使用以下命令运行服务器:
vncserver -geometry 800x600 :0
当我使用 RealVNC 连接到 Raspberry Pi 时,我来到 LXDE 桌面。
到目前为止我已经尝试过:
我运行sudo update-alternatives --config x-window-manager
并将其从 openbox 更改为xfwm4
$ 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
我已将/etc/X11/default-display-manager
其编辑并更改/usr/sbin/lightdm
为/usr/bin/icewm
。
系统重新启动后,我再次运行 vncserver,然后再次进入 LXDE。
我在进程列表中看到 openbox 和 lxsession:
$ 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
我目前不确定我想要哪个窗口管理器。我会尝试所有并找出我最喜欢的一个。目前我正在尝试找到一种方法以某种方式将其从 LXDE 中改变出来。
我很喜欢KDE,但是Raspbian中好像没有包含它。在 aptitude 中找不到该包。
答案1
X11 已在您的计算机上
X11 应该已经安装在您的系统上。基本上所有的 Linux 发行版都使用它。 LXDE 运行在 Xorg 之上。 Wayland 正在成为 X Windows 的流行替代品,但仍然存在缺陷。我会等待切换到它。所以,我想说的是,你已经在使用 X11 了。如果没有的话,我会感到非常困惑。
您要做的是安装一个新的窗口管理器,这就是 LXDE。 Enlightenment 和 Openbox 是很好的轻量级替代品。 KDE 是我最喜欢的,但它有点重。对于 Rasp pi,我会坚持轻量级。如果您不打算将其连接到显示器,那么我建议使用无头系统并仅使用 ssh 的 -X 选项。
安装新的 Windows 管理器
安装新的 Windows 管理器,然后编辑 .xinitrc 以启动正确的管理器。
例如,如果您想使用 KDE,则安装 KDE(#apt-get install kde
或#apt-get install kdebase
,这对于 pi 更好,但需要更多设置),然后更改您的 .xinitrc 文件。你会看到exec startlxde
哪些需要更改为exec startkde
exec 命令将根据您对 Windows 管理器的偏好而改变。
通过 SSH 连接到你的 pi
现在,如果您正在 sshing 进入您的 pi 并希望以图形方式运行程序,那么您需要执行以下操作
ssh -X user@raspberry-pi-address:portnumber; gtk-program
如果您使用没有窗口管理器的无头系统,这仍然有效。这也将比使用 vnc 快得多。基本上,如果您没有将 Raspberry Pi 连接到显示器,则执行此操作。
答案2
答案比想象的要容易。只需安装xrdp
,我就可以在我的 Windows 计算机上享受完整的 Linux 桌面环境,而无需 20 个 X-Windows 四处流动。
另外,了解“窗口管理器”、“会话管理器”、“显示管理器”之间的区别也很重要。唉,没有人解释说我可能使用了错误的术语,而且我对它们感到非常困惑,所以我不知道我需要更改这三件事中的哪一件事才能获得“新的 GUI”。
答案3
我想现在有点晚了,但如果其他人正在处理同样的问题,这就是发生的事情。
您对此感到困惑的原因是,在 VNC 服务器上运行的会话和在本地桌面上运行的会话不必相互关联。事实上,只有当您实际运行本地 GUI,然后专门提供它时,它们才会相关(默认情况下,服务器 Vino(对于 Gnome)、krfb(对于 KDE)和 x11vnc 将提供本地会话)。听起来本地 GUI 没有运行,因此您所做的通常会影响它的所有更改都没有执行任何操作,因为它从未启动。
当您在本地 GUI 之外运行 VNC 服务器时,它可能会也可能不会默认使用与本地 GUI 相同的窗口管理器。它将执行文件 ~/.vnc/xstartup 中配置的任何操作(首次启动服务器时将其复制到您的主目录中)。如果该文件告诉它运行本地定义的 GUI 的另一个副本,它就会运行。如果该文件告诉它运行其他 GUI,它就会执行此操作。因此,如果您想更改 vncserver 运行的窗口管理器,则需要更改该文件,或者更改该文件指向的脚本或链接。