unity-greeter 主题文档

unity-greeter 主题文档

有很多很棒的 gtk 主题适用于 unity/gtk。但是,它们中只有极少数支持 unity-greeter。我想研究它们,但是我找不到有关如何操作的(官方)文档。我尝试对gtk.cssAdwaita 主题中的相应部分进行逆向工程,并且我能够完成大部分工作,但是我无法对一些特殊小部件进行主题化。

长话短说:是否有文档可以说明如何为 unity-greeter 设置主题?

只是为了澄清一下:我指的是这个文件https://github.com/umibps/KABURAGI/blob/master/share/themes/Moe-Pink3/gtk-3.0/apps/unity-greeter.css~

答案1

我没有找到文档,但我找到了源代码;)

apt-get source unity-greeter
tar xf unity-greeter_*.tar.xz
cd unity-greeter

正如文件名称gtk.css所示,这是一个包含类定义的 CSS 文件。让我们开始grep

% grep -r 'add_class' *
Binary file deb/usr/sbin/unity-greeter matches
Binary file dev/usr/sbin/unity-greeter matches
unity-greeter-15.10.1/tests/unity-greeter.vala:        ctx.add_class ("lightdm");
unity-greeter-15.10.1/src/toggle-box.vala:        selected_button.get_style_context ().add_class ("selected");
unity-greeter-15.10.1/src/toggle-box.vala:        item.get_style_context ().add_class ("toggle-button");
unity-greeter-15.10.1/src/unity-greeter.vala:        ctx.add_class ("lightdm");
unity-greeter-15.10.1/src/prompt-box.vala:        option_button.get_style_context ().add_class ("option-button");
unity-greeter-15.10.1/src/prompt-box.vala:        combo.get_style_context ().add_class ("lightdm-combo");
unity-greeter-15.10.1/src/prompt-box.vala:        combo.get_child ().get_style_context ().add_class ("lightdm-combo");

或更好

% grep -rlI 'add_class' * | xargs -I {} awk -F\" '/add_class/ {print $2}' {} | sort -u
lightdm
lightdm-combo
option-button
selected
toggle-button

现在我们有了支持的类。其他所有内容(例如、background-image等等)都是 CSS 定义。background-colorborder-color

深入源代码并学习CSS。那是最好的文档。


我的答案的先前版本可能对进一步的读者有帮助

您需要的只是/usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml。编辑此文件后执行:

glib-compile-schemas /usr/share/glib-2.0/schemas/

每个key标签都有一个summary标签来描述该键的作用。以下是一些示例:

  1. 背景图像

    <key name="background" type="s">
      <default>'/usr/share/backgrounds/warty-final-ubuntu.png'</default>
      <summary>Background file to use, either an image path or a color (e.g. #772953)</summary>
    </key>
    
    • type="s"意思是,我们需要一个标签字符串default
    • 该值是图像文件的绝对路径
  2. 背景颜色

    <key name="background-color" type="s">
      <default>'#2C001E'</default>
      <summary>Background color (e.g. #772953), set before wallpaper is seen</summary>
    </key>
    
    • type="s"意思是,我们需要一个标签字符串default
    • 该值是颜色代码
  3. 显示主机名

    <key name="show-hostname" type="b">
      <default>true</default>
      <summary>Whether to show the hostname in the menubar</summary>
    </key>
    
    • type="b"意思是,我们需要一个布尔值作为标签default
    • 有效值:true/false
  4. 分辨率设置

    <key name="xft-dpi" type="d">
      <default>96</default>
      <summary>Resolution for Xft in dots per inch</summary>
    </key>
    
    • type="d"意思是,我们需要标签的数值default
    • 用于xrdb -query | grep dpi确定正确的值或使用值来查看行为

部分来源

反复试验和阅读源代码是最好的文档=)

答案2

没有关于 Unity Greeter 主题的文档。Adwaita CSS 和 Unity Greeter 源代码是查看可设置主题的最佳位置。

相关内容