LXDM wiki 上关于主题开发的内容比较少,只有默认主题中的gtkrc和greeter.ui文件的简单介绍。
相关的文件
LXDM中的主题/usr/share/lxdm/themes下。下面是/usr/share/lxdm文件夹的介绍(其中省略了一些无关的图片文件):
.
├── config.ui
├── lxdm.glade
└── themes
├── greeter.ui
├── gtk.css
├── gtkrc
├── index.theme
└── imgs
config.ui: 配置工具lxdm-config的界面布局文件
lxdm.glade: 没有找到相关的说明,根据内容猜测,可能是备用(设置的主题未找到)的布局文件。
themes: 用于存放所有的主题。
Industrial: 某个主题的目录,包含了主题相关的文件。
greeter-gtk3.ui: 主界面的布局文件。针对GTK+ 3
greeter.ui: 主界面的布局文件。针对GTK+ 2
gtk.css: 样式表,定义了一些样式
gtkrc: 包含了样式定义和控件创建命令
index.theme: 主题描述说明信息
imgs: 图片文件
greeter.ui
https://wiki.lxde.org/en/Greeter.ui
greeter.ui文件定义了LXDM界面的布局及其包含的小部件。
gtkrc
https://wiki.lxde.org/en/Gtkrc
gtkrc 文件由两部分组成:
1)样式定义
2)gtk小部件创建命令
样式定义
第一个部分的样式,描述了LXDM如何绘制背景。通过修改file=attribute来修改背景图:
style "back" { engine "pixmap" { image { function = FLAT_BOX shadow=NONE state = NORMAL file="wave.svg" stretch=TRUE detail = "base" } } }
本小节,通过描述time显示格式和登录/密码prompt来定义time和prompt的样式(在greeter.ui文件中建立为对象):
# 编辑fg[normal]=attribute来更改相应的文本颜色。 # 编辑font_name=attribute来更改字体/大小 style "time" { fg[NORMAL]="#ffffff" font_name="Sans 12" } style "prompt" { fg[NORMAL]="#000000" font_name="Sans Bold 14" }
本小节,定义底部event bar的样式,并描述sessions, language, exit功能的格式。编辑font_name=property来更改为sessions, language, keyboard layout, exit的字体及大小。编辑fg[NORMAL]=property来更改这些元素的显示文本的颜色。 image元素属性file=shade.png是一个完全透明的图像。不建议改变它,除非它适合一些特定的目的。
# Normally this won't paint an invisible event box, but we did some hacks in greeter.c. style "bottom" { font_name="Sans 12" fg[NORMAL] = "#9E9D9B" engine "pixmap" { image { function = FLAT_BOX file="shade.png" stretch=TRUE detail="eventbox" } } }
gtk小部件创建命令
这个部分中,创建小控件,并使用上述的样式:
widget "lxdm" style "back" widget "lxdm.*.time" style "time" widget "lxdm.*.prompt" style "prompt" widget "lxdm.*.bottom_pane" style "bottom" widget_class "GtkWindow.*.GtkEventBox.*.<GtkLabel>" style "bottom"