i3的最终diy状态线生成器
i3-dstatus的Python项目详细描述
i3wm的最终diy状态行生成器。
关于
i3 dstatus是i3的状态行生成器,您可以使用它来显示 您可能感兴趣的系统信息。i3附带i3status 这有很多限制。它没有插件接口。它没有 对事件的支持,并依赖于对其所有信息的轮询 使它在资源上出奇的繁重。它有一个奇怪的配置文件 使其难以配置的格式。
其他项目已经出现,以弥补这些弱点和许多 他们中的一个做得很好。I3dStand是用户想要更灵活的 可通过编辑配置中的选项实现的状态行 但是不需要学习复杂的插件api就可以创建 自定义状态行条目。
这是通过允许用户通过 进程间通信使用 DBUS。I3数据状态 公开一个dbus服务,您可以使用它简单地更新statusline 在几乎任何编程语言和任何过程中(甚至 在一个cron中!).
- 不需要配置文件
- 从多个进程更新状态行
- 从任何语言更新statusline(甚至从命令行!)
- 没有复杂的插件api可供学习
用法
在条形图块中使用i3 dstatus作为状态命令,如下所示:
bar { status_command i3-dstatus clock }
传递要作为运行方式运行的statusline生成器脚本的路径 I3数据状态的参数。传递相对路径将启动脚本 来自发电机路径的I3数据状态中包含的发电机。 使用绝对路径或a~/home相对路径将调用 合适的路径。块将按 发电机是在命令行上发出的。
配置
生成器脚本将查找配置的~/.i3-dstatus.conf。 选项。有关示例,请参见repo中的i3-dstatus.conf。这个 配置文件应该是单个yaml对象。(更多文档 来吧)。
更新状态行
dbus服务公开方法show_block,以更新 状态行。这个方法包含了大量的变体。传递一个对象 符合i3bar input protocol来显示块。
可以通过省略或设置“全文”成员来清除块 到空字符串。
可以从python脚本更新statusline。只需使用脚本 像这样:
fromdbus_next.aioimportMessageBusfromdbus_nextimportVariantbus=awaitMessageBus().connect()introspection=awaitbus.introspect('com.dubstepdish.i3dstatus','/com/dubstepdish/i3dstatus')obj=bus.get_proxy_object('com.dubstepdish.i3dstatus','/com/dubstepdish/i3dstatus')i3dstatus=obj.get_interface('com.dubstepdish.i3dstatus')awaiti3dstatus.call_show_block({'name':Variant('s','test'),'full_text':Variant('s','hello world')})
可以使用dbus绑定从任何语言更新statusline (几乎都是这样)。你甚至可以更新statusline 从命令行!
dbus-send --session \ --dest=com.dubstepdish.i3dstatus \ --type=method_call \ /com/dubstepdish/i3dstatus \ com.dubstepdish.i3dstatus.show_block \ dict:string:string:name,test,full_text,'hello world'
贡献
请报告错误、请求功能、编写文档和添加 到i3dstatus/generators目录的生成器。i3 dstatus是一个社区 项目所以欢迎反馈!
许可证
此工作在FreeBSD许可证下可用(请参阅许可证)。
版权所有©2014,Tony Crisi
保留所有权利。