范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

优麒麟Linux发布任务栏新版托盘协议

  IT之家 7 月 29 日消息优麒麟官方今天带来了任务栏新版托盘协议(SNI)介绍。
  在 Linux 操作系统中,"系统托盘区域"是在给定的 X 屏幕上运行的应用程序,可以显示正在运行的应用程序提供的小图标。系统托盘是一个 X 客户端,在给定的屏幕上拥有一个特殊的管理器选择并提供了容器窗口。Windows 将此功能称为"通知区域",旧版托盘协议就是通过 X 服务直接获取应用信息,在开发上难度很大。
  新版托盘规范定义了可视项的管理,通常是用于向用户报告应用程序状态或提供对该应用程序执行的常见操作的快速访问的图标。它旨在作为 Freedesktop 的桌面通知规范的补充但不直接相关,旨在替代 Freedesktop 系统托盘规范,更加面向模型视图,为工作区提供更多自由,如何以图形方式表示与它的视觉风格语言,这种方式(SNI)是将 systemtray 的调用封装进 dbus 总线中,提升了开发者的开发效率。
  从用户角度来看新版托盘协议(SNI)从表面上看不出有什么太大的变化,在开发的角度上是将最上层的应用与下层基础库的分离。
  实现方式
  新版托盘协议主要是通过三个库来实现的:
  dbusmenu 是实现应用程序和面板(#5)之间传输协议的库。dbusmenu 已经被用于开发会话菜单,并且也是在 Lucid 中实现一些新系统菜单的构建块。
  indicator-applet 是将托管应用程序指示器区域的面板小程序。指示器小程序是作为消息菜单项目的一部分开发的,旨在成为面板指示器的通用容器 。libappindicator 是一个新的库,用于帮助应用程序端更改;它确实注册了图标和菜单,并在内部使用 dbusmenu 通过 dbus 发布上下文菜单。虽然它是 Gnome 桌面的新库,但它基于在 KDE 项目中设计的用于更新系统托盘协议的协议(上面的"信令协议"部分)。libappindicator 采用并扩展了该协议,并将其与 dbusmenu 连接以提供应用程序迁移其代码所需的全套服务 。SNI 工作流程
  3.1 托盘应用托盘封装
  通过 dbusmenu,indicator-applet,libappindicator 将托盘应用的属性,方法,以及信号注册到 dbus 总线上,在任务栏上进行 dbus 监听解析来实现与托盘应用交互。
  注册 item 的方法有:
  属性有:
  信号有:
  3.2 注册 dbus 服务
  当拿到了托盘应用的信息然后就需要对信息进行封装通过 dbus 的方式发送给任务栏,在任务栏上会注册一个 statusnotifierWatcher 的服务用来检测托盘信息的,每当托盘应用打开的时候都会调用 statusnotifierWatcher 的 RegisterStatusNotifierItem 方法在任务栏的托盘区域进行按钮的注册,当托盘应用关闭的时候会调用任务栏 unRegisterStatusNotifierItem 方法来取消在任务栏上的注册。
  3.3 调用 dbus 的方法
  当用户对托盘应用进行操作的时候,会调用相应 dbus 方法,并激活相关事件。例如左键点击会触发"激活窗口"的事件,右键单击会触发"显示右键菜单"的事件,悬浮会触发"显示提示语"的事件SNI 协议使用的方式
  4.1 注册 statusnotifierHost 的 dbus
  在一个桌面上为了防止托盘应用会在多个地方注册成托盘,用一个 dbus 来让托盘应用只能注册到一个托盘来确保不会出现功能上不稳定。
  4.2 注册 statusnotifierWatch 的 dbus
  用来检测托盘应用的打开和关闭,statusnotifierWatch 的 RegisterStatusNotifierItem 和 unRegisterStatusNotifierItem 是协议层与应用层来进行交互的信号,通过 RegisterStatusNotifierItem 方法来获取应用注册的 dbus 的服务名。
  4.3 对托盘应用的 dbus 进行调用
  上文说的鼠标事件点击调用槽函数是一部分,还可以监听托盘应用的 signal 如图标变换,提示信息变化等。如果需要托盘应用的窗口以及其他属性,还可以通过 dbus 来获取 properties。
  4.4 在优麒麟桌面环境下使用
  Qt 应用程序可以在自己的应用程序里创建一个 QSystemtrayIcon 类,并为这个类似设置图标和事件槽函数,在任务栏上会自动生成托盘图标。
  Gtk 程序通过
  来注册应用为托盘应用,即可实现在任务栏上显示托盘图标。注意事项
  5.1 在 dbus 调用的时候可能会出现延时,必要的话可以考虑多线程处理,避免界面阻塞。
  5.2 由于 dbus 调用是异步调用出现响应慢问题,在读取托盘应用信息是可能会需要添加延时读取,不然会出现信息读取不到的地方。

LibreOffice7。2更新原生适配苹果M1芯片,更好兼容微软Office文档IT之家8月21日消息外媒Neowin报道,TheDocumentFoundation(文档基金会)已经宣布推出LibreOffice7。2,这是办公套件的一个重要的新版本,带有大红旗Linux桌面操作系统v11alpha版(0831)发布修复网卡蓝牙无法加载的问题IT之家9月1日消息红旗Linux桌面操作系统v11alpha版(0831)已于昨日发布。IT之家获悉,较上一版本,红旗Linux桌面操作系统v11alpha版(0831)主要更新微信Windows3。3。5正式版发布群聊所有人,各种细节优化IT之家8月8日消息微信团队近日发布了微信3。3。5forWindows正式版,但最新的更新说明依然是解决了一些已知问题。从实际体验和网友反馈来看,Windows版的微信3。3。5内核30周年之际,Linux5。14版本发布IT之家8月30日消息Linux5。14版本已发布,LinusTorvalds本人在邮件中表达了LinuxKernel内核30周年纪念的喜悦之情,并表示期待下一个30年。IT之家了苹果M1芯片电脑成功运行原生Linux系统,仅剩GPU驱动没解决IT之家10月7日消息苹果自研的M1芯片于2020年正式发布,从产品发布起,一些开发者便开始了将Linux系统适配M1芯片的项目。根据外媒TomsHardware报道,目前LinuLinuxMint20。3宣布将在圣诞节前发布改进主题,官网焕然一新无广告IT之家10月4日消息据Neowin报道,LinuxMint项目负责人ClemLefebvre近期宣布,LinuxMint的下一个版本,即20。3版本,将在圣诞节前推出三种口味Ci国产Linux发行版CutefishOS0。5Beta发布,新增通知模块感谢IT之家网友chipo的线索投递!IT之家10月1日消息CutefishOS是一款国产的具有现代风格设计与实用的Linux桌面操作系统,基于Debian11底层基础软件包,搭载谷歌Chrome浏览器将于2023年彻底抛弃扩展程序旧规范IT之家9月26日消息谷歌在Chrome88版本时推出了ManifestV3扩展程序规范,为将来Chromium内核的浏览器奠定了扩展开发的新方向。近日,谷歌在官网公开了Manif最新版Chrome和Edge浏览器已修复关键内存UAF安全漏洞IT之家9月26日消息微软Edge和谷歌Google浏览器都已经发布了最新的稳定版本,修补了一个关键的基于Chromium的UseAfterFree(UAF)漏洞,该漏洞允许攻击者谷歌Chrome94新API引争议,苹果和Mozilla联合反对IT之家9月24日消息谷歌Chrome94浏览器于近日发布,带来了多个新API。然而,其中一个API受到了苹果和Mozilla的联合反对。出现争议的API名叫IdleDetecti谷歌Chrome浏览器将推出类似微软Edge的侧边栏搜索功能IT之家9月24日消息谷歌Chrome团队正在实验一个名为SideSearch(侧边栏搜索)的功能。尽管它还没有在任何Chrome分支中上线,但最近ChromeGerrit上的一个
统信UOSV20专业版(1050)正式发布,附更新内容大全感谢IT之家网友颓然芳草的线索投递!IT之家3月25日消息,据统信软件发布,今日,统信桌面操作系统V20专业版(1050)简称专业版(1050)正式发布。该版本在专业版(1043)Wine6。1正式版发布支持VKD3D1。2,优化M1MacRosetta内存布局感谢IT之家网友大药师的线索投递!IT之家2月2日消息据Wine官方博客,Wine6。1版本已正式发布。本次带来了针对VKD3D1。2版本的升级,还优化支持了在M1Mac上支持Ro鸿蒙HarmonyOS开发必备工具,华为DevEcoStudio3。0正式发布感谢IT之家网友littlewu的线索投递!IT之家9月30日消息感谢IT之家网友热心线索投递,华为昨日推出了DevEcoStudio3。0版本,现已提供Beta1版本下载,各位有微软VSCode是性能和体验最好的Python代码编辑器IT之家5月16日消息微软近日发布了VisualStudioCodePython扩展的2021年5月更新,本次更新引入了Pylance作为Python的默认语言服务器,以及用于PyExcel竟然还有这种操作自动同步网站数据有时我们需要从网站获取一些数据,传统方法是通过复制粘贴,直接粘到Excel里。不过由于网页结构不同,并非所有的复制都能有效。有时即便成功了,得到的也是死数据,一旦后期有更新,就要不微软正在EdgeDev中测试右键搜图功能,还有OCRIT之家5月3日消息据用户反馈,微软目前在最新的Edge浏览器开发者版本中加入了一个新的功能,如下图所示,当你右键图片时,会出现一个Bing搜图功能。从部分网友的截图来看,该功能似谷歌Chrome浏览器的默认播放器将支持调节播放速度IT之家5月3日消息据外媒WindowsLatest报道,采用Chromium内核的浏览器,如谷歌Chrome微软Edge都内置了一款基于HTML的视频播放器。而最近的代码提交显示Wine6。0正式版发布支持Linux运行Windows应用,PE格式核心模块共超8000项改变IT之家1月19日消息外媒WindowsCentral报道,Wine最近收到了更新,改善了在Linux系统上运行Windows应用的体验。该更新以Wine6。0的形式出现,根据其完今年最后一次微软Edge浏览器更新,下周支持苹果M1MacIT之家12月16日消息微软今日凌晨向开发者通道推送了最新的89。0。731。0版EdgeDev更新,并宣布将在本周晚些时候支持苹果新ARM芯片的Canary版本。但对于其他用户来手机混用闪存到底是真是假,教你查手机闪存型号最近,网上传言某手机混用闪存,将UFS3。0和UFS3。1的闪存混用在了同一型号的机器上,买不同容量的手机,闪存协议不一样。光从这个描述来看,这做法相当不厚道,消费者买手机等于抽奖华为首次推送HarmonyOS2。0手机开发者测试版,更新包体积为4。04GBIT之家12月26日消息12月16日,华为举行了HarmonyOS2。0手机开发者Beta活动。同时,HarmonyOS2。0手机开发者Beta公测招募线上开启。目前,华为Harm