mwgg/i3phtatus

使用PHP编写的简单易扩展的i3status替代品

dev-master 2017-07-04 06:26 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:35:22 UTC


README

i3phtatus是一个易于扩展的i3status替代品,旨在用于i3bar,用PHP编写。

i3phtatus

用法

~/.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();
   ...

发音指南

Phtatus