# xfce4 组件介绍 [Gtk+] libffi libmount glib pixman freetype harfbuzz fontconfig cairo fribidi pango gdkpixbuf libeproxy graphene wayland-protocols gettext( libintl ) gtk+ [xfce] libwnck xfce4-dev-tools xlibxfce4util xfconf libxfce4ui garcon exo xfce4-panel thunar xfce4-settings xfce4-session xfwm4 xfdesktop thunar-volman tumbler xfce4-power-manager xfce4-appfinder # Cairo cairo is a vector graphics library with cross-device output support cairo能够做各种复杂的点线图案绘制、填充、文字渲染、图像变换、剪切、层混合等等操作。但是他没有涉及到用户交互,如鼠标、touch、事件处理,交互窗口,这些统统没有,他只有专一的绘图。他有surface可以理解为画布,这个surface可以是基于内存(image surface,必选的surface)也可以基于某种backend(和操作系统或驱动接口对接),使用过程是创建一个surface,然后在surface里做各种绘图,最后使用Painting类的functions时图像就显示在了surface上。当然surface也是一块image,可以把image通过png(源码有对接libpng库)图像压缩输出png文件 # harfbuzz HarfBuzz 是一个文本整形引擎。它主要支持OpenType,但也 支持Apple Advanced Typography。HarfBuzz 用于 Android、Chrome、ChromeOS、Firefox、GNOME、GTK+、KDE、LibreOffice、OpenJDK、PlayStation、Qt、XeTeX 等地方。 # xfce 运行黑屏怎么办 比如黑屏,我们由屏幕想到可能是 xfdesktop 这个应用负责渲屏,黑屏可能是 xfdesktop 未能正确运行,这个就需要我们手工调试跟踪了,通常情况下我们会这么做: ```shell # 设置屏幕,这个是 xfce 默认的值 10 export DISPLAY=:10 # 执行这个,正常执行理论上就不会黑屏,不能执行,可能是依赖库路径不对,版本不对,配置不对,逐步根据提示解决问题 xfdesktop ``` # xfce4-session 每个客户建立一个屏幕,具体动作的执行在下面配置文件 /usr/local/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml 其实就是执行的 xfdesktop startxfce4 ---> xinitrc ---> xfce4-session ---> xfdesktop