#状态栏 #状态 # #dwm #遥控 #命令行 #suckless

bin+lib barista

具有缓存到期和远程控制的并发状态栏;聚合外部收集进程的输出

5 个不稳定版本

0.16.1 2024 年 7 月 11 日
0.16.0 2024 年 7 月 11 日
0.15.4 2024 年 7 月 10 日
0.15.3 2024 年 7 月 1 日
0.0.1 2017 年 10 月 7 日

#354命令行工具

Download history 138/week @ 2024-06-28 239/week @ 2024-07-05 117/week @ 2024-07-12 1/week @ 2024-07-19

252 每月下载量

自定义许可证CC-PDDC 许可证

165KB
2K SLoC

barista

screenshot

test status dependencies status

pista 更强大的继任者。

适用于与 dwm 一起使用,但也可以应用于任何具有文本状态区域的其他事物(如 tmux)。

运行 N 个 shell 命令(在配置文件中指定),异步读取它们并路由到条上的 N 个相应插槽

b +--------------+--------------+- ... ---+-------------+
a | slot_1       | slot_2       |         | slot_N      |
r +--------------+--------------+- ... ---+-------------+
    ^              ^                        ^
    |              |                        |
   +-+            +-+                      +-+
   | |            | |                      | |
   |S|            |S|                      |S|
   |T|            |T|                      |T|
   |D|            |D|                      |D|
   |O|            |O|                      |O|
   |U|            |U|                      |U|
   |T|            |T|                      |T|
   | |            | |                      | |
   |1|            |2|                      |N|
   | |            | |                      | |
   +-+            +-+                      +-+
    ^              ^                        ^
    |              |                        |
command_1      command_2           ...  command_N
    |              |                        |
    v              v                        v
   +-+            +-+                      +-+
   | |            | |                      | |
   |S|            |S|                      |S|
   |T|            |T|                      |T|
   |D|            |D|                      |D|
   |E|            |E|                      |E|
   |R|            |R|                      |R|
   |R|            |R|                      |R|
   | |            | |                      | |
   |1|            |2|                      |N|
   | |            | |                      | |
   +-+            +-+                      +-+
    |              |                        |
    v              v                        v
l +--------+     +--------+     ...       +--------+
o | file_1 |     | file_2 |               | file_N |
g +--------+     +--------+     ...       +--------+

每个插槽都有一个 TTL,在此之后,如果没有更新,则清除该插槽 - 帮助您发现损坏的命令,并避免使用过时的数据欺骗自己。

每个命令的 stderr 被重定向到 ~/.barista/feeds/$i-$name/log

安装

  1. cargo安装 barista
  2. 确保 ~/.cargo/bin/ 在您的 PATH
  3. barista help

使用

初始

  1. 在终端 A 中,运行 barista server,它将创建 ~/.barista/ 目录并初始化默认配置
  2. 在终端 B 中,编辑配置文件以符合您的喜好:~/.barista/conf.toml
  3. 在终端 B 中,运行 barista reload
  4. 有关更多功能,请参阅 barista help

正常

通常您会从 ~/.xinitrc(或类似)中运行 barista server &。这将运行您在配置中指定的命令,并按配置中指定的间隔设置条。

当 barista 服务器正在运行时,您可以从任何其他终端请求更改和状态(它们通过 Unix 域套接字通信:~/.barista/socket

  1. 使用 barista reload 在运行时更改配置后重新加载配置
  2. 使用 barista status 来查看每个命令的状态(最后更新等)
  3. 使用 barista off 来停止命令并清除条
  4. barista on 用于启动命令并开始更新酒吧

示例

状态

Yo Dawg,我们听说你喜欢状态,所以你现在可以检查你的状态^1

$ barista status
 POSITION  NAME        DIR                                      LAST_OUTPUTTED     LAST_LOGGED        LOG_SIZE  LOG_LINES  PID    PROC_STATE  PROC_DESCENDANTS
 1         upower      /home/xand/.barista/feeds/00-upower      7s                 3h 48m 35s         565.3 KB  6880       17424  S           17451:Z,17452:S
 2         eth         /home/xand/.barista/feeds/01-eth         0s                 8days 18h 37m 30s  4.1 MB    39819      17425  S           -
 3         wifi        /home/xand/.barista/feeds/02-wifi        0s                 8days 18h 37m 30s  4.1 MB    40508      17426  S           -
 4         bluetooth   /home/xand/.barista/feeds/03-bluetooth   0s                 8days 18h 37m 30s  4.1 MB    39537      17427  S           -
 5         memory      /home/xand/.barista/feeds/04-memory      0s                 8days 18h 37m 30s  8.2 MB    78508      17428  S           -
 6         disk        /home/xand/.barista/feeds/05-disk        3s                 8days 18h 37m 30s  1.7 MB    16210      17429  S           -
 7         backlight   /home/xand/.barista/feeds/06-backlight   4days 23h 20m 21s  8days 18h 37m 30s  39.0 KB   608        17430  S           -
 8         pulseaudio  /home/xand/.barista/feeds/07-pulseaudio  9m 16s             8days 18h 37m 30s  185.9 KB  2114       17431  S           17461:S
 9         mpd         /home/xand/.barista/feeds/08-mpd         0s                 8days 18h 37m 30s  7.9 MB    76463      17432  S           -
 10        weather     /home/xand/.barista/feeds/09-weather     15m 30s            35m 30s            185.5 KB  3146       17433  S           -
 11        time        /home/xand/.barista/feeds/10-time        0s                 8days 18h 37m 30s  10.6 MB   78515      17434  S           -
 12        keymap      /home/xand/.barista/feeds/11-keymap      0s                 8days 18h 37m 30s  8.2 MB    78491      17436  S           -

脚注

依赖关系

~19–28MB
~397K SLoC