Skip to the content.

上一页      主目录      下一页

27. Window Managers


窗口管理器和桌面环境是X窗口系统的主要用户界面。窗口管理器是一个程序,它控制窗口的外观,并提供用户与窗口交互的方法。桌面环境为操作系统提供了更完整的接口,并提供了一系列集成的实用程序和应用程序。

有许多可用的窗口管理器。其中一些比较知名的包括 fvwm2, Window Maker, AfterStep, Enlightenment, Sawfish, 和 Blackbox.

Linux的桌面环境包括GNOME、KDE和XFce。

选择一个窗口管理器或桌面环境是非常主观的。选择取决于包的外观、所需的资源(RAM、磁盘空间)以及包含的实用程序。有一个网站Window Managers for X很好地总结了可用的工具、屏幕截图和它们各自的特性。

在本章中,介绍了几个窗口管理器和一个轻量级桌面环境的安装说明。在本书的后面,KDE和GNOME都有自己的章节。

27.1 Fluxbox-1.3.7


简介Fluxbox

Fluxbox包包含一个窗口管理器。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Fluxbox 依赖

必要

a graphical environment

可选

dbus-1.14.6 (运行时), FriBidi-1.0.12, 和 imlib2-1.9.1 (如果您希望使用除XPM以外的其他图像格式)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/fluxbox

安装Fluxbox

首先,修复使用gcc-11.1构建时的构建失败:

sed -i '/text_prop.value > 0/s/>/!=/' util/fluxbox-remote.cc

运行以下命令安装Fluxbox:

./configure --prefix=/usr &&
make

这个包没有一个工作的测试套件。

现在,作为root用户:

make install

配置 Fluxbox

配置文件

~/.fluxbox/init, ~/.fluxbox/keys, 和 ~/.fluxbox/menu

配置信息

如果Fluxbox是你唯一想要使用的窗口管理器,你可以在你的主文件夹中启动一个.xinitrc文件。在继续之前,请确保备份当前的.xinitrc

echo startfluxbox > ~/.xinitrc

或者,如果您使用像GDM-43.0lightdm-1.32.0这样的登录管理器,并且希望能够在登录提示符下选择Fluxbox,请创建一个fluxbox.desktop文件。以root用户,运行:

mkdir -pv /usr/share/xsessions &&
cat > /usr/share/xsessions/fluxbox.desktop << "EOF"
[Desktop Entry]
Encoding=UTF-8
Name=Fluxbox
Comment=This session logs you into Fluxbox
Exec=startfluxbox
Type=Application
EOF

如果您没有在/usr中安装GDM-43.0lightdm-1.32.0,则更改该命令以适合您选择的前缀。

现在创建Fluxbox配置文件:

mkdir -v ~/.fluxbox &&
cp -v /usr/share/fluxbox/init ~/.fluxbox/init &&
cp -v /usr/share/fluxbox/keys ~/.fluxbox/keys

要生成应用程序菜单,首先您可能希望运行fluxbox-generate_menu -h,以便选择任何<user_options>,然后执行:

cd ~/.fluxbox &&
fluxbox-generate_menu <user_options>

或者,复制一个预生成的菜单:

cp -v /usr/share/fluxbox/menu ~/.fluxbox/menu

通过编辑~/.fluxbox/menu添加菜单项。语法解释在fluxbox手册页。

如果你想用一个图像作为你的桌面背景,复制你喜欢的主题到~/.fluxbox。然后添加一条线,使其使用正确的图像。在以下命令中,更改<theme>作为您想要的主题的名称,并更改</path/to/nice/image.ext>以指向您想要使用的实际图像,其中ext必须为”xpm”,如果imlib2-1.9.1未安装以允许其他图像格式。

cp -r /usr/share/fluxbox/styles/<theme> ~/.fluxbox/theme &&

sed -i 's,\(session.styleFile:\).*,\1 ~/.fluxbox/theme,' ~/.fluxbox/init &&

[ -f ~/.fluxbox/theme ] &&
echo "background.pixmap: </path/to/nice/image.ext>" >> ~/.fluxbox/theme ||
[ -d ~/.fluxbox/theme ] &&
echo "background.pixmap: </path/to/nice/image.ext>" >> ~/.fluxbox/theme/theme.cfg

在某些地区,主题中指定的字体可能不包含所需的字符。这将导致带有空白项的菜单。您可以通过使用文本编辑器编辑~/.fluxbox/theme并更改它以命名合适的字体来修复此问题。

内容

安装程序: fluxbox, fbsetbg, fbsetroot, fluxbox-generate_menu, startfluxbox, fbrun, fluxbox-remote, 和 fluxbox-update_configs

安装库: None

安装目录: /usr/share/fluxbox 和 ~/.fluxbox

简要描述

fluxbox 是一个基于Blackbox 0.61.0的X11窗口管理器。

fbsetbg 是设置背景图像的实用程序。它在运行时需要以下选项之一: Esetroot, wmsetbg, feh, hsetroot, chbg, display, qiv, xv, xsri, xli, 或 xsetbg. 如果找到 Esetroot,它还需要 which

fbsetroot 是一个基于Blackbox应用程序bsetroot更改根窗口外观的实用程序。

fluxbox-generate_menu 是一个通过扫描你的PATH来生成菜单的工具。

startfluxbox 是一个会话启动脚本,允许在fluxbox启动之前执行命令。

fbrun 显示运行对话框窗口。

fluxbox-remote 提供对Fluxbox关键命令的命令行访问。

fluxbox-update_configs 用于管理配置文件(重新加载、更新、测试)。

27.2 IceWM-3.3.1


简介IceWM

IceWM是一个窗口管理器,其目标是速度快、简单、不妨碍用户。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

IceWM 依赖

必要

CMake-3.25.2, a graphical environment, 和 gdk-pixbuf-xlib-2.40.2

可选

asciidoc-10.2.0 (用于重新生成HTML文档), FriBidi-1.0.12 (对于从右向左书写的语言), imlib2-1.9.1, librsvg-2.54.5, libao-1.2.0, libsndfile-1.2.0, 和 alsa-lib-1.2.8 (用于实验冰声程序)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/icewm

安装IceWM

运行以下命令安装IceWM:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCFGDIR=/etc               \
      -DENABLE_LTO=ON             \
      -DCONFIG_GDK_PIXBUF_XLIB=ON \
      -DCONFIG_IMLIB2=OFF         \
      -DDOCDIR=/usr/share/doc/icewm-3.3.1  \
      .. &&
make

这个包没有一个工作的测试套件。

现在,作为root用户:

make install

这个包在/usr/share/xsessions/目录下创建了两个.desktop文件。两者在BLFS系统中都不需要,因此要防止额外的文件作为显示管理器中的选项显示。作为root用户:

rm -v /usr/share/xsessions/icewm.desktop

命令解释

-DENABLE_LTO=ON: 此选项启用链接时间优化,并且是此包所必需的。

配置 IceWM

配置文件

~/.icewm/keys~/.icewm/menu~/.icewm/preferences~/.icewm/toolbar~/.icewm/winoptions。默认版本安装在/usr/share/icewm/中,如果您没有将它们复制到~/.icewm,则使用默认版本。

配置信息

如果IceWM是你想要使用的唯一的窗口管理器,你可以在你的主文件夹中用一个.xinitrc文件启动它。在继续之前,请确保备份当前的.xinitrc

echo icewm-session > ~/.xinitrc

现在创建IceWM配置文件:

mkdir -pv ~/.icewm                                      &&
cp -v /usr/share/icewm/keys ~/.icewm/keys               &&
cp -v /usr/share/icewm/menu ~/.icewm/menu               &&
cp -v /usr/share/icewm/preferences ~/.icewm/preferences &&
cp -v /usr/share/icewm/toolbar ~/.icewm/toolbar         &&
cp -v /usr/share/icewm/winoptions ~/.icewm/winoptions

现在可以编辑这些文件以满足您的需求。特别是,查看preferences文件。您可以在主菜单上使用Logout -> Restart-IceWM来加载更改的首选项,但是对后台的更改仅在IceWM启动时生效。

此时,您可以修改传统的菜单文件以满足您的需求,也可以使用稍后描述的更新的icewm-menu-fdo

菜单的语法是在帮助文件中解释的,你可以通过从菜单中运行help来访问它,但是一些细节已经过时了,菜单中的默认选择(主菜单上的一些旧应用程序,Programs菜单上的其他所有内容)将从更新中受益,以满足你的需要。下面的例子是为了鼓励你思考如何组织你的菜单。请注意以下事项:

如果您希望使用这种传统方法,在本书的先前版本(例如BLFS-7.8)中有更多示例。

或者,您可以创建一个符合FDO桌面菜单规范的菜单,在其中可以找到程序,因为它们在XDG_DATA_HOME或XDG_DATA_DIR目录中有一个.desktop文件。与大多数窗口管理器不同,icewm在调用菜单时不会搜索程序,因此如果您采用此路径,则需要在安装或删除程序后重新运行以下命令:

icewm-menu-fdo >~/.icewm/menu

如果你想在桌面上放图标,你需要安装一个程序,比如Rox-Filer-2.11,它提供了一个针脚板。如果您这样做,您将无法再通过右键单击桌面来访问菜单,您将不得不使用IceWM按钮。为了确保rox引脚板正在运行,下面的命令将把它放在启动文件中:

cat > ~/.icewm/startup << "EOF"
rox -p Default &
EOF &&
chmod +x ~/.icewm/startup

提示

在IceWM中有许多快捷键:

内容

安装程序: icehelp, icesh, icesound, icewm, icewm-menu-fdo, icewm-menu-xrandr, icewm-session, icewm-set-gnomewm, icewmbg, 和 icewmhint

安装库: None

安装目录: /usr/share/doc/icewm-3.3.1, /usr/share/icewm 和 ~/.icewm

简短描述

icehelp 用于显示HTML手册。

icesh 是一个命令行窗口管理器,可以在~/.icewm/startup中使用。

icesound 在IceWM引发的GUI事件上播放音频文件。

icewm 是窗口管理器。

icewm-menu-fdo 可以创建一个适合IceWM菜单格式的文件,该菜单列出了当前以符合FDO桌面菜单规范的布局安装的程序。

icewm-menu-xrandr 是一个帮助程序,用于管理多屏幕配置。

icewm-session 运行icewmbg, icewm, icewmtray, startup, shutdown(即如果安装了启动和关闭脚本将运行)。

icewm-set-gnomewm 是一个脚本,用于使用gconftool将GNOME窗口管理器设置为icewm。

icewmbg 是用来设置背景,根据各种DesktopBackground的设置在首选项。

icewmhint 在内部用于向用户提供提示。

27.3 openbox-3.6.1


简介openbox

Openbox是一个高度可配置的桌面窗口管理器,具有广泛的标准支持。它允许您控制与桌面交互的几乎所有方面。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Openbox 依赖

必要

a graphical environmentPango-1.50.12 (编译支持libXft)

可选

dbus-1.14.6 (运行时), imlib2-1.9.1 (启用右键菜单中的图标), ImageMagick-7.1.0-61 (显示桌面背景,如下面的配置信息部分所示), PyXDG-0.28, startup-notification-0.12, 和 librsvg-2.54.5

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/openbox

安装Openbox

注意

如果XORG_PREFIX不是/usr,告诉gcc:

export LIBRARY_PATH=$XORG_PREFIX/lib

如果您只安装了Python 3 PyXDG模块,将其中一个脚本转换为Python 3:

2to3-3.11 -w data/autostart/openbox-xdg-autostart &&
sed 's/python/python3/' -i data/autostart/openbox-xdg-autostart

运行以下命令安装Openbox:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static  \
            --docdir=/usr/share/doc/openbox-3.6.1 &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

这个包在/usr/share/xsessions/目录下创建了三个.desktop文件。其中两个在BLFS系统中是不合适的,所以要防止额外的文件作为显示管理器中的选项显示。作为root用户:

rm -v /usr/share/xsessions/openbox-{gnome,kde}.desktop

命令解释

--sysconfdir=/etc: 这个选项将Openbox的配置文件放在/etc/xdg/openbox中,而不是/usr/etc/xdg/openbox。

--docdir=/usr/share/doc/openbox-3.6.1: 这将把一些文件放在/usr/share/doc的版本目录中。

--disable-static: 此开关防止安装库的静态版本。

配置 Openbox

配置文件

/etc/xdg/openbox/autostart, /etc/xdg/openbox/menu.xml, /etc/xdg/openbox/rc.xml, ~/.config/openbox/autostart, ~/.config/openbox/menu.xml~/.config/openbox/rc.xml

配置信息

Openbox的右键菜单可以用来启动程序。菜单本身配置了2个文件,/etc/xdg/openbox/menu.xml~/.config/openbox/menu.xml。要更改菜单,将/etc/xdg/openbox/menu.xml复制到~/.config/openbox/menu.xml并编辑:

cp -rf /etc/xdg/openbox ~/.config

~/.config/openbox/menu.xml可以用文本编辑器编辑,或者您可以安装Obmenu(需要pyxmlPyGTK-2.24.0)。

要在你的右键菜单中有图标需要在你安装Openbox之前安装imlib2-1.9.1。要为菜单中的条目设置图标,请编辑~/.config/openbox/menu.xml,并在标签是这样的:

        <item label="Mplayer" icon="/usr/share/pixmaps/mplayer.png">

Openbox行为的许多其他方面都是通过~/.config/openbox/rc.xml配置的,例如使用哪些键绑定来启动程序或哪个鼠标按钮启动主菜单。

Openbox应用于窗口装饰的主题的详细信息在~/.config/openbox/rc.xml中配置。你可以使用命令获取可用主题的列表:

ls -d /usr/share/themes/*/openbox-3 | sed 's#.*es/##;s#/o.*##'

启动 Openbox

在启动Xorg时自动启动openbox:

echo openbox > ~/.xinitrc

如果你想设置桌面背景图像,你可以使用display,然后在openbox之前从~/.xinitrc启动它:

cat > ~/.xinitrc << "EOF"
display -backdrop -window root /path/to/beautiful/picture.jpeg
exec openbox
EOF

或者,如果你喜欢一点变化,把一组图片放在一个文件夹里(在这个例子中,目录是~/.config/backgrounds),每次你xinit时随机选择一个:

cat > ~/.xinitrc << "EOF"
# make an array which lists the pictures:
picture_list=(~/.config/backgrounds/*)
# create a random integer between 0 and the number of pictures:
random_number=$(( ${RANDOM} % ${#picture_list[@]} ))
# display the chosen picture:
display -backdrop -window root "${picture_list[${random_number}]}"
exec openbox
EOF

如果您希望在启动Xorg时设置numlock键,请安装Numlockx并将其添加到xinitrc中。另一个有用的应用程序是dbus-1.14.6:

cat > ~/.xinitrc << "EOF"
. /etc/profile
picture_list=(~/.config/backgrounds/*)
random_number=$(( ${RANDOM} % ${#picture_list[*]} ))
display -backdrop -window root "${picture_list[${random_number}]}"
numlockx
eval $(dbus-launch --auto-syntax --exit-with-session)
lxpanel &
exec openbox
EOF

内容

安装程序: gdm-control, gnome-panel-control, obxprop, openbox, openbox-gnome-session, openbox-kde-session 和 openbox-session

安装库: libobrender.so 和 libobt.so

安装目录: /etc/xdg/openbox, /usr/include/openbox, /usr/share/doc/openbox-3.6.1 和 /usr/share/themes.

简短描述

gdm-control 是向GDM发送信号的命令行工具。

gnome-panel-control 是一个命令行实用程序,用于调用Gnome面板运行dialog/menu。

obxprop 是用于在x窗口上显示属性的工具。它具有与xprop类似的功能,但允许您将UTF-8字符串视为文本。

openbox 是一个符合标准的、高度可配置的窗口管理器。

openbox-gnome-session 是一个脚本启动一个Gnome会话与Openbox作为你的窗口管理器从你的~/.xinitrc

openbox-kde-session 是一个启动KDE会话的脚本,使用Openbox作为您的窗口管理器从您的~/.xinitrc启动。

openbox-session 是从你的~/.xinitrc启动一个Openbox会话的脚本。

libobrender.so 包含Openbox用于主题渲染的函数。

libobt.so 是Openbox工具箱库。

27.4 sawfish-1.13.0


简介sawfish

sawfish包包含一个窗口管理器。这对于组织和显示窗口非常有用,其中所有窗口装饰都是可配置的,所有用户界面策略都是通过扩展语言控制的。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

sawfish 依赖

必要

gdk-pixbuf-xlib-2.40.2, rep-gtk-0.90.8.3, 和 Which-2.21

可选

libnsl-2.0.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/sawfish

安装sawfish

运行以下命令安装sawfish:

./configure --prefix=/usr --with-pango  &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

这个包在/usr/share/xsessions/目录下创建了六个.desktop文件。BLFS系统中除了一个文件之外,其他文件都是必需的,因此要防止额外的文件作为显示管理器中的选项显示。作为root用户:

rm -v /usr/share/xsessions/sawfish-*.desktop

配置 sawfish

配置信息

在继续之前,请确保备份当前的.xinitrc

cat >> ~/.xinitrc << "EOF"
exec sawfish
EOF

您还可以选择使用显示管理器,例如 lxdm-0.5.3.

来自开发人员:“默认的菜单绑定有点模糊;你必须在背景上点击中键来调出菜单。(如果你的鼠标有两个按钮,请尝试同时点击两个按钮)”。你可以在sawfish’s FAQ上找到它。

内容

安装程序: sawfish, sawfish-about, sawfish-client, sawfish-config, sawfish-kde4-session, sawfish-kde5-session, sawfish-lumina-session, sawfish-mate-session, 和 sawfish-xfce-session

安装库: 在/usr/lib/sawfish tree下的几个内部模块。

安装目录: /usr/include/sawfish, /usr/lib/sawfish, /usr/lib/rep/sawfish, 和 /usr/share/sawfish

简短描述

sawfish 是使用基于lisp的脚本语言的可扩展窗口管理器。

sawfish-about 是sawfish的窗口。

sawfish-client 允许您连接到窗口管理器进程并计算任意的Lisp表单。

sawfish-config 是sawfish配置管理器。

sawfish-kde4-session 是使用sawfish运行KDE4的脚本。

sawfish-kde5-session 是一个使用sawfish运行Plasma 5的脚本。

sawfish-mate-session 是一个使用sawfish脚本运行mate。

sawfish-lumina-session 是使用sawfish运行Lumina的脚本。

sawfish-xfce-session 是使用sawfish运行xfce的脚本。

上一页      主目录      下一页