LinuxMint Cinnamon桌面环境开发文档使用指南
文档体系概述
Cinnamon桌面环境的开发文档分为四个主要部分(如果算上Muffin则是五个部分):
-
Cinnamon教程:即本文档所在部分,包含Cinnamon开发的总体概述和基础教程,适合初学者入门。
-
JavaScript参考手册:详细描述Cinnamon中JavaScript部分的功能和对象,主要面向applet/扩展开发者以及Cinnamon核心开发者。
-
C参考手册:涵盖Cinnamon底层C语言实现的文档。
-
Shell工具包(St)文档:描述用于绘制屏幕控件的图形工具包(类似于GTK)。
文档模块对应关系:
imports.ui.*和imports.misc.*:JavaScript文档global对象和imports.gi.Cinnamon:C文档imports.gi.St:St文档imports.gi.Meta:Muffin文档- 其他如
imports.gi.Gio等:第三方库文档
文档访问方式
在线访问
Cinnamon文档可通过网页浏览器在线查阅。
本地访问
- 安装
devhelp文档查看工具 - 安装
cinnamon-doc文档包(不同发行版可能名称不同) - 运行
devhelp程序即可查看所有已安装的文档
JavaScript文档使用详解
模块导入与引用
JavaScript文档按源文件组织,每个部分的标题就是导入路径。例如:
const Applet = imports.ui.applet;
这样可以通过Applet.IconApplet访问IconApplet对象。
构造函数
- 每个对象的
_init函数是其构造函数 - 调用
new Applet.Applet()时会自动执行_init - 构造函数文档主要说明各参数的作用
私有成员
- 以下划线
_开头的变量/函数(如_showPanel)是私有成员 - 在applet/desklet开发中应避免使用
- 仅在Cinnamon核心开发中必要时使用
继承体系
- 每个对象都有继承关系说明
- 子类可以访问父类的所有功能
- 文档不会在每个子类中重复父类内容
C文档使用技巧
对象命名转换
C语言没有对象概念,GObject模拟了对象行为。转换规则:
- JavaScript中的
St.Bin对应C文档中的StBin - 例外:
Gio和GLib对象保留G前缀- 例如:C中的
GSettings对应JS中的Gio.Settings
- 例如:C中的
函数调用转换
C函数名通常很长且包含对象名前缀,如st_bin_get_child。在JS中:
- 不需要传入对象本身作为第一个参数
- 直接使用对象方法形式:
actor.get_child() - 不是所有C函数都可在JS中使用
属性访问
GObject属性通常可以直接访问:
actor.x_fill // 注意将"-"转换为"_"
如果直接访问失败,可以使用:
actor.get_property("x-fill")
actor.set_property("x-fill", false)
枚举类型使用
枚举是最复杂的部分。例如C中的:
ST_BUTTON_ONE // 按钮1(左键)
ST_BUTTON_TWO // 按钮2(中键)
ST_BUTTON_THREE // 按钮3(右键)
在JS中应转换为:
St.ButtonMask.ONE
St.ButtonMask.TWO
St.ButtonMask.THREE
转换规则:
- 去掉
ST_BUTTON_前缀 - 保留剩余部分并转为大写形式
- 可通过Looking Glass工具查看可用枚举值
最佳实践建议
- 文档查阅顺序:先查JavaScript文档,再查C文档,最后查St文档
- 代码提示工具:使用Looking Glass实时查看对象结构和可用方法
- 命名规范:
- 对象和枚举名使用CamelCase
- 枚举成员使用CAPS_WITH_UNDERSCORE
- 调试技巧:遇到问题时先尝试简单调用,根据错误信息调整
通过掌握这些文档使用技巧,开发者可以更高效地进行Cinnamon桌面环境的定制和扩展开发。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



