跳转到主要内容

i3 的终极 DIY 状态行生成器

项目描述

i3-dstatus 是为 i3wm 提供的终极 DIY 状态行生成器。

关于

i3-dstatus 是一个用于 i3 的状态行生成器,您可以使用它来显示您可能感兴趣的系统信息。i3 自带 i3status,但它有很多限制。它没有插件接口。它没有对事件的支持,并依赖于轮询来获取所有信息,这使得它在资源消耗上出奇地高。它有一个奇怪的配置文件格式,使其难以配置。

其他项目已经出现,以弥补这些弱点,其中许多项目做得很好。i3-dstatus 是为那些想要通过编辑配置文件中的选项来获得更灵活的状态行的用户而设计的,而无需学习复杂的插件 api 来创建自定义状态行条目。

这是通过允许用户通过进程间通信使用 DBUS 来更新状态行的。i3-dstatus 提供了一个 DBUS 服务,您可以使用它以几乎任何编程语言和任何进程(甚至可能在 cron 中!)简单地更新状态行。

  • 无需配置文件

  • 从多个进程更新状态行

  • 从任何语言更新状态行(甚至是从命令行!)

  • 无需学习复杂的插件 api

安装

i3-dstatus 位于 PyPI

pip install i3-dstatus

使用方法

将 i3-dstatus 用作您的 bar block 中的状态命令,如下所示

bar {
    status_command i3-dstatus clock
}

将您想要运行的状态行生成脚本路径作为参数传递给i3-dstatus。传递相对路径将从i3-dstatus包含的生成器路径启动脚本。使用绝对路径或~/家目录相对路径将调用适当的路径。块将按照在命令行中给出的生成器顺序出现在i3bar上。

配置

生成器脚本将在~/.i3-dstatus.conf中查找配置选项。请参阅仓库中的i3-dstatus.conf以获取示例。配置文件应该是一个单一的YAML对象。(更多文档即将推出)。

更新状态行

DBus服务公开了用于更新状态行的show_block方法。此方法接受一个变体字典。传递一个符合i3bar输入协议的对象来显示一个块。

您可以通过省略“full_text”成员或将它设置为空字符串来清除一个块。

您可以从Python脚本中更新状态行。只需使用如下脚本

from dbus_next.aio import MessageBus
from dbus_next import Variant

bus = await MessageBus().connect()
introspection = await bus.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')
await i3dstatus.call_show_block({
    'name': Variant('s', 'test'),
    'full_text': Variant('s', 'hello world')
})

您可以使用具有DBus绑定的任何语言(几乎所有的语言)更新状态行。您甚至可以从命令行更新状态行!

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许可证下获得(请参阅LICENSE)。

版权所有 © 2014, Tony Crisci

版权所有。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

i3-dstatus-0.1.1.tar.gz (12.2 kB 查看散列)

上传时间

构建分布

i3_dstatus-0.1.1-py3-none-any.whl (18.4 kB 查看散列)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面