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"