liwl
deepin
2022-04-02 02:03 哎我去,这个是真的好,收藏了
倘若能像utools,那该多好的啊
Reply Like 0 View the author
哎我去,这个是真的好,收藏了
倘若能像utools,那该多好的啊
相当赞啊!点赞+收藏,Git已经关注了
牛批!
mark! 感谢楼主分享
思路很轻啊👍
哎我去,这个是真的好,收藏了
倘若能像utools,那该多好的啊
官方、社区后续多整一些插件,就慢慢的像 utools 了
楼主牛逼啊,mark! 感谢楼主分享
Popular Ranking
ChangePopular Events
More
更加阅读体验请移步到我的博客:https://blog.hxgpark.com/posts/dde-grand-search-plugin-Tutorial/
截止到目前 2022-04-01 为止,github 上没有放出
dde-grand-search的代码仓库,但是可以通过apt source的方式下载到全部代码。因此目前没有官方文档展示其插件开发过程,但是当前 Deepin V20.5 版本下,dde-control-center的搜索效果是以插件形式集成到dde-grand-search中的,因此可以参照dde-control-center相关部分进行模仿开发。插件文件目录
按照软件设计的基本逻辑推断,再结合
dde-dock中的插件机制,可以推测得到dde-grand-search有很大概率也是通过插件的方式进行后续功能增加的,尤其是目前dde-grand-search的搜索项目太少,参考 MacOS 的聚焦功能,能够想象到的后续拓展功能就包括:字典、剪贴板、邮件以及其他各种 Deepin 全家桶功能的集成。因此只需要确定插件目录下有哪些以及存在的插件,然后去看对应部分的源码即可。插件目录在没有官方文档的情况下,最简单可靠的方法就是阅读源码,不过首先需要确保
/etc/apt/sources.list中deb-src一行没有被注释掉:解压代码,Clion 打开项目目录,通过文件名判断插件相关的主要类为
pluginmanager.cpp中的PluginManagerPrivate,其中的defaultPath即为插件路径。然后利用 Clion 的全局搜索功能,可以查到路径定义在
CMakeLists.txt中。最终得到路径:/usr/lib/x86_64-linux-gnu/dde-grand-search-daemon/plugins/searcher,同时发现已存在一个插件文件:com.deepin.dde-grand-search.dde-control-center-setting.conf,名称可知是设置中心的插件,内容如下:显然,是通过配置文件告诉
dde-grand-search对应插件的DBus Interface地址,然后统一调用的。Mode还有其它模式,现在是搜索时触发模式,其它可以直接搜索源码,对应文件中有着注释。接口及数据格式
由上一节可知,实现插件需要两步:
dde-grand-search插件的DBus接口但是需要实现哪些具体接口,在没有官方文档的情况下,直接参照
dde-control-center的源码,在官方 github 仓库里简单的搜索GrandSearch关键词,即可快速定位到相关内容,主要关键文件如下:src/frame/dbuscontrolcenterservice.hsrc/frame/dbuscontrolcenterservice.cppsrc/frame/window/mainwindow.cpp阅读源码后,可以发现几个关键的
DBus接口:接着只需明确输入的
json和返回的QString具体格式即可,参见MainWindow::GrandSearchSearch()。输入数据:
返回数据:
Stop
该部分此处不涉及,跳过。
Action
输入:
例子:
dde-top-panel支持搜索菜单插件配置文件
新建文件
/usr/lib/x86_64-linux-gnu/dde-grand-search-daemon/plugins/searcher/com.deepin.dde-grand-search.dde-top-panel-setting.conf:DBus接口实现实现效果