我们将为创建一个简单的applet 肉桂。 首先,我们必须知道 肉桂 提供不同类型的小程序:
- 文本小程序 (在面板上显示标签)
- 图标小程序 (在面板上显示一个图标)
- 文本图标小程序 (在面板上同时显示图标和标签)
- 小程序 (对于铁杆开发人员,他们会显示一个空框,您可以自己填写)
在本教程中,我们只想在面板上显示一个图标,因此我们将使用“ IconApplet”。 为了将我们的小程序编程为 肉桂或地精 我们需要了解和了解一些有关Javascript编程的知识
我们代码的位置。
首先,让我们看看文件的位置。 我们的小程序的位置在以下地址中给出:
/.local/share/cinnamon/applets
Ø连接 /usr/share/cinnamon/applets
组成Applet的文件。
我们继续定义applet.js
现在让我们来看一下 小程序.js 并解释每个句子:
applet.js代码开始
让我们看看我们之前代码的每个句子
const Lang = imports.lang; / /我们调用Gtk和Lang库,它们是任何GNOME应用程序的基本组成部分,它们使我们能够创建窗口,小部件并链接它们。 / /我们调用Applet库,该库允许我们为Cinnamon和Gnome创建一个applet,并同时为其提供其属性和功能。/ / Const GLib = imports.gi.GLib; / * GLib是一个帮助程序库,它允许我们在GNOME中执行操作,例如说hellognome.html文件在哪里,它是负责信号的库。* / Const Gettext = imports.gettext.domain('cinnamon -applets'); const _ = Gettext.gettext; // Gettext库,使我们能够导入Cinnamon桌面的特征。 const PopupMenu = imports.ui.popupMenu; / * PopupMenu是一个使用菜单管理器的库,它使我们能够调用通常在applet中使用的popup-menu小部件。* / Function MyApplet(orientation){this._init(orientation); }
applet的构造函数在下面定义,让我们看一下Class或Class:
我们继续每个句子的定义
MyApplet.prototype = {__proto__:Applet.IconApplet.prototype,//我们定义我们的Class或Class _init:函数(方向){Applet.IconApplet.prototype._init.call(此方向); / *我们通过肉桂设置方向。 我们设置小程序的面板是在顶部还是在底部(这会影响小程序菜单的方向。)* /尝试{//做某事}捕获(e){//如果发生错误,会发生什么} / *我们使用try / catch来捕获applet中可能发生的任何错误,并确保将它们写入全局错误日志中。 这样,如果出现问题,您可以在Looking Glass中看到错误:按Alt F2,键入“ lg”,然后单击“错误”选项卡。* / This.menuManager = new PopupMenu.PopupMenuManager(this); //创建弹出菜单并设置菜单管理器this.menu = new Applet.AppletPopupMenu(this,方向); //我们创建一个菜单。 this.menuManager.addMenu(this.menu); //我们将菜单添加到弹出菜单。 this.makeMenu(); // menuitem makeMenu,我们创建一个名为makeMenu的菜单项。 this.buildContextMenu(); // buildContextMenu,我们创建一个名为buildContextMenu的菜单项。 this.set_applet_icon_name(“文件夹”); / *我们创建小程序,这种情况是唯一的,选择的图标是文件夹或文件夹,如果需要,我们也可以建立文本小程序。
例如,将“文件夹”的名称更改为“ terminal”,“ docky”以建立新名称,请参见地址中的Gnome或Cinnamon图标或任何其他图标主题的名称。
/usr/share/icons
this.set_applet_tooltip(_(“单击此处杀死一个窗口”)); //捕获以捕获我们的applet中可能发生的任何错误。 catch(e){global.logError(e); } makeMenu:function(){this.menu.addMenuItem(new PopupMenu.PopupMenuItem(“ Test Message”,{active:true}))); },/ *我们定义makeMenu菜单项的名称及其特征。 在这种情况下,标签为“测试消息”。我们将定义{reactive:true},我们确定当指针通过true越过menuitem时,如果它为false,则菜单项的背景将改变。* / BuildContextMenu:function (){this.menu .addMenuItem(new PopupMenu.PopupMenuItem(“ show”,{active:true}));},//我们定义makeMenu菜单项的名称及其特征。在这种情况下,标签为“ show “。on_applet_clicked:function(event){this.menu.toggle();} //小程序发出的信号,以调用弹出菜单功能main(元数据,方向){let myApplet = new MyApplet(orientation);返回myApplet;} / *最后,我们只需要添加一个“ main”函数,该函数在每个applet中可能都是相同的,它创建了applet的一个实例并将其返回给Cinnamon。* ///关闭循环返回myApplet;
我们继续定义metadata.json
“ last-edited”:“ 1331990905”,//上一版。 “ description”:“单击小程序以显示自定义的个人定义的gtk菜单”,//小程序描述。 “ icon”:“ docky”,//用于applet描述的图标。 例如,将“ docky”的名称更改为“ terminal”,“ folder”。 “ uuid”:“黑色” //包含我们的meta.json文件的文件夹“ name”:“自定义gtk菜单” // Applet名称。
注意: 要设置新名称,请参阅Gnome或Cinnamon图标的名称或任何其他图标主题,请转到文件系统地址。
/usr/share/icons
创建的小程序的图像
Qt,Gtk,Vala和其他语言用于为肉桂或Gnome创建小程序
让我们看看肉桂的小程序的位置
我们的小程序的位置在以下地址中给出:
/.local/share/cinnamon/applets
Ø连接
/usr/share/cinnamon/applets
小程序的组成
我们继续定义applet.js
启动applet.js代码
applet.js结束
现在,让我们继续查看applet.js代码并解释其语句。
编写的代码与之前用Javascript编写的示例几乎相同。
只有信号已更改,这将称为我们的自动可执行文件。
on_applet_clicked:函数(事件){GLib.spawn_command_line_async(GLib.get_home_dir()+'/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }
我们的自动可执行程序可以用Qt,Gtk,Gtkmm,wxWidget,Vala等编写。 可以创建可执行文件的语言我们的自动可执行文件称为Menu,它位于Qtmenu文件夹中。
我们还可以使用其他具有Gtk绑定的编程语言,例如PyGTK,Ruby Gtk,Perl Gtk等。 可以使用脚本来执行以这些语言编写的代码。 调用程序,根据我们的需求创建弹出菜单和弹出窗口的原理始终相同。
让我们看看用Qt编写的自动可执行代码
我们继续定义metadata.json
编写代码的方式与前面的示例相同
用Qt创建的Applet图像
使用Gtk 3.10创建的Applet图像
我为您提供了一个小应用程序小示例,它使用Gtk编写的可执行文件,在这种情况下,我们采用OpenBox中使用的myGtkMenu菜单。
这是一个自执行菜单。
有趣的文章...
谢谢 。 我的意思是我们每天都学一点点。
很好,我喜欢,我一直想知道这些小程序是如何制成的
小修正。 如文中所述,Gettext并不是Cinnamon所特有的,它是一个可以从模板进行自动翻译的库。
很好的教程以及所有重要的内容,但您没有把它放进去:链接到墙纸?
下载Linux Mint 16 Petra壁纸。
该程序包称为mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra
非常有趣的文章。 事实是,我一直想知道这些小程序是如何创建的。 也许我被鼓励为MPD或类似的东西创建一个迷你播放器applet。
感谢分享!
太好了,我只是想知道如何修改肉桂nm-applet(网络管理器),以便当我无法访问互联网时(我有wifi卡)它可以更改颜色,这有助于我调整方向。一点点。
好吧,玛丽安,我不知道你在这里发布。 问候。
当您走路时,Matute…..我总是在这些地方走动。 问候
好文章。
找不到文件因违反版权而被停用。
我的意思是,如果您在那里有,可以再次上传吗?
谢谢。