X 客户端是否一定需要窗口管理器才能工作?

Tim*_*Tim 32 window-manager x11

X 客户端是否一定需要窗口管理器才能工作?X 客户端可以只与 X 服务器一起工作吗?

如果 X 客户端没有窗口,是否需要窗口管理器才能工作?

如果 X 客户端可以在没有窗口管理器的情况下工作,那么 X 客户端是否一定没有窗口?

谢谢。

ica*_*rus 38

不,您不需要运行窗口管理器来允许 X 客户端工作。有些系统提供了在启动时只运行终端的选项,您可以从中启动其他程序,包括窗口管理器。一些只希望运行一个应用程序的信息亭设置不需要窗口管理器。微软 Windows 的一些 X 实现通过让操作系统管理窗口来避免使用 X 窗口管理器。

如果没有窗口管理器,您通常需要为程序指定几何图形,因此您不会将所有内容都放在左上角。

在 X 中,窗口管理器只是另一个 X 客户端。这在当时并不常见,但可以轻松拥有不同的窗口管理器。

看待问题的另一种方法是观察您可以动态更改窗口管理器,因此在第一个停止和第二个控制之间有一段时间,但是由于您的所有应用程序都不会崩溃,因此它们必须能够没有工作。

  • 提示:有一个名为 xwit 的工具,它在试验 wm-less 配置时真的很有帮助。 (2认同)

mos*_*svy 26

不。写得好的应用程序不需要窗口管理器。

但是,如果没有窗口管理器,某些“现代”损坏的应用程序将无法正常工作(例如,firefox 及其地址栏建议不会下拉 [1])。

许多其他劣质应用程序不仅假设有一个窗口管理器,而且更糟的是,单击以聚焦窗口管理器。例如,过去任何 Java 应用程序都会简单地窃取启动的注意力。

如果你想测试,安装Xephyr(一个“嵌套的”X11 服务器),用 运行它Xephyr :1,然后DISPLAY=:1在它们的环境中启动你的应用程序。

[1] 除非有窗口管理器正在运行,否则 Firefox 的“很棒的栏”在输入或单击历史记录按钮时不会打开其建议窗格。自动隐藏菜单也不起作用。

  • @t3dodson 您可以尝试提交一个,但非常值得怀疑是否有人愿意查看修复该问题的补丁。如果没有窗口管理器、会话管理器和最近运行的pulseaudio 服务器,则不真正支持运行firefox。当然,你可以分叉它,但是必须维护一个 Firefox 分叉并不是我希望我最大的敌人的事情 ;-) (4认同)

Ste*_*ris 7

窗口管理器为用户提供了便利。

在美好的 ^Wbad 过去,我曾经有一个~/.Xclients文件,上面写着:

#!/bin/sh

HOST=`uname -n | sed 's/\..*$//'`

xv -root -rmode 5 $HOME/misc/millennium/theme/Wallpaper.gif -quit &

xterm -geometry 80x24+0+85 \#52x71-104+0 -n $HOST -T $HOST &
xterm -geometry 80x24+510+429 \#52x71-52+0  -n $HOST -T $HOST &
xclock -digital -update 1 -geometry +1059+982 &
xscreensaver -nosplash &
exec /usr/local/lib/X11/fvwm/fvwm
Run Code Online (Sandbox Code Playgroud)

当我使用startx. 当这个脚本完成时,X 服务器将关闭。

注意最后一行:exec .../fvwm。这是启动我的窗口管理器 (fvwm) 的行。所有以前的应用程序(xvxtermxclockxscreensaver)都在窗口管理器启动之前运行。因为调用fvwm是最后一行而不是放在后台,这意味着当fvwm终止时 X 将关闭。

X 启动甚至有一个“回退”默认值……如果没有配置文件,那么只需xterm运行一次即可启动 X。关闭xterm将结束 X 会话。


小智 6

为了补充其他答案,我开发并发布了一个开源应用程序,该应用程序无需窗口管理器即可运行(这意味着您可以直接从 xinitrc 启动它)。在这种情况下,除了管理其对话框的几何形状和 Z 顺序之外,应用程序还应该执行一些额外的步骤,但这完全是可以管理的。