GNOME-Shell-Extensions开发经验(一)Hello,world!

本文分享了作者在开发GNOME Shell扩展时遇到的问题及解决过程,包括主要函数的变化,从main()到init(), enable(), disable()。文章强调了JavaScript和GObject知识的重要性,并提供了调试扩展的困难与解决方法,帮助开发者避免常见陷阱,快速入门GNOME Shell扩展开发。" 118038051,10793182,Java开发者:我的阿里面试经验与资料分享,"['Java', '面试经验', '技术面试', '阿里集团', '数据库']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近想自己写个gnome-shell扩展找到了下面两个教程
GNOME 3.0 and 3.1 Shell Extensions
More GNOME Shell Customization
这是两篇2011年的 gnome3.0 和 3.1 的教程,相信很多开发 gnome-shell 扩展的朋友也看见过这两篇教程吧,我现在用的是3.18,我想差不了太多的,毕竟都是 gnome 3,我便照着这两个教程开发,没想到这就是我开发 gnome-shell 扩展噩梦的开始。。。。。

为什么我的扩展就运行不起来呢,只好又在 github 上看了好多扩展的代码,终于发现了

main( ) 函数不再是程序入口了!!!
main( ) 函数不再是程序入口了!!!
main( ) 函数不再是程序入口了!!!

于是只能按照模板提供的方式开发扩展,上面的教程的代码根本运行不起来,求我心理阴影面积。。。


好了,吐槽完了开始正式讲讲 gnome 现在开发的基本结构,其实变化也没用太大只是把以前的 main( ) 拆成了三个函数分别是 init( ),enable( ),disable( ),上面两篇教程还是很值得学习的,只要会 JavaScript 和 GObject 五分钟就能学会开发 gnome-shell 扩展

另外我的/usr/share/gnome-shell/里为什么死活找不到./js/ui这个文件夹呀,连./js都没有。。。。如果你也找不到请移步这里,找各个组件的名字属性什么的就全靠它了

首先创建一个 gnome-shell-extension 模板,输入如下命令

# gnome-shell-extension-tool -c

就会在$HOME/.local/share/gnome-shell/extensions下创建一个模板扩展,里面有三个文件

  • extension.js 这是 gnome-shell 扩展最核心的代码,init( ),enable( ),disable( ) 三个函数就在这里面
  • stylesheet.css 这时扩展中所使用的 css 样式
  • metadata.json 这是扩展的元信息

先上 extension.js 的代码

const St = imports.gi.St;
const Main = imports.ui.main;
const Tweener = imports.ui.tweener;

let text, button;

function _hideHello() {
   
   
    Main.uiGroup.remove_actor(text);
    text = null;
}

function _showHello
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值