mwgg / i3phtatus
使用PHP编写的简单易扩展的i3status替代品
This package is not auto-updated.
Last update: 2024-09-28 18:35:22 UTC
README
i3phtatus是一个易于扩展的i3status替代品,旨在用于i3bar,用PHP编写。
用法
将~/.i3/config
中的当前"status_command"设置替换为i3phtatus
status_command php /opt/i3phtatus/i3phtatus.php
默认情况下,i3phtatus将期望配置文件位于~/.i3/i3phtatus.conf.php
。如果您希望指定不同的位置,请使用-c
标志
status_command php /opt/i3phtatus/i3phtatus.php -c ~/my_i3phtatus.conf.php
配置
配置存储在PHP数组中。在那里您可以配置刷新率(在信息更新前的毫秒数)、需要彩色输出的模块的“好”、“坏”和“警告”颜色,以及各个模块的选项。
模块的显示顺序与配置中的顺序相同。不必要的模块可以简单地将其注释掉或从配置文件中删除。
"amixer_volume" => array( "module" => "amixer_volume", "mode" => "percent", "label" => "VOL: " ), "amixer_volume_bar" => array( "module" => "amixer_volume", "mode" => "bar", "width" => 10 )
上面的示例将输出|VOL: 68%|-|||||| -|
特定模块的“键”可以是任何东西,只要它们都是唯一的。每个模块配置部分必须至少有一个module
参数,该参数对应于特定模块的函数名。一些模块需要额外的参数。
模块配置中的可选label
参数将在输出前添加一个标签。
编写模块
模块是PHP函数,它们的名称必须以module_
为前缀,并且它们会自动从modules子文件夹中加载。每个模块函数应接受一个参数,包含模块选项,如配置文件中指定。
function module_uname($module_options) { return array( "full_text" => php_uname($module_options["mode"]) ); }
所有模块必须返回一个至少包含一个full_text
元素的数组,包含所需的输出。如果需要着色输出,应添加一个包含十六进制值的color
元素。标准“好”、“坏”和“警告”颜色在配置文件中定义,可以通过将$config
变量添加到函数作用域中引用。
function module_awesome_stuff($module_options) { global $config; return array( "full_text" => "my awesome module", "color" => $config["color_good"] ); }
如果模块需要存储临时数据(例如,对于不需要每秒都拉取远程数据的模块,如上次刷新时间),可以使用全局数组$module_tmp
。
... global $module_tmp; $module_tmp["awesome_stuff"]["last_update"] = time(); ...