#状态栏 #Wayland 组件 #窗口管理器 #端口 #river #切换 #i3bar

应用程序 i3bar-river

基于 wlroots 的合成器的 i3bar 的端口

7 个版本

0.1.9 2024 年 5 月 7 日
0.1.8 2024 年 5 月 6 日
0.1.7 2024 年 3 月 30 日
0.1.6 2023 年 11 月 27 日
0.1.1 2023 年 4 月 7 日

GUI 中排名第 217

Download history 251/week @ 2024-05-03 25/week @ 2024-05-10 7/week @ 2024-05-17 1/week @ 2024-05-24 2/week @ 2024-06-07 2/week @ 2024-06-14 3/week @ 2024-07-05

每月下载量 452

GPL-3.0-only

90KB
2.5K SLoC

i3bar-river

这是为基于 wlroots 的窗口管理器(例如 river 和 hyprland)移植的 i3bar。为 river 和 hyprland 实现了标签/工作空间。

i3bar 兼容性

我已经测试了 i3status-rsbumblebee-statuspy3status,一切似乎都可以使用。

(目前)缺少的功能列表

  • 边框[_top|_right|_bottom|_left]
  • 点击事件缺少一些信息(不知道是否有人实际依赖 xywidth 等。)
  • 托盘图标

功能

安装

Packaging status

从源代码安装

外部依赖项:libpango1.0-dev

cargo install --locked i3bar-river

配置

将此添加到 river 初始化脚本的末尾

riverctl spawn i3bar-river

配置文件应存储在 $XDG_CONFIG_HOME/i3bar-river/config.toml~/.config/i3bar-river/config.toml

默认配置(所有参数都是可选的)

# The status generator command.
# Optional: with no status generator the bar will display only tags and layout name.
# command = "your command here"

# Colors
background = "#282828ff"
color = "#ffffffff"
separator = "#9a8a62ff"
tag_fg = "#d79921ff"
tag_bg = "#282828ff"
tag_focused_fg = "#1d2021ff"
tag_focused_bg = "#689d68ff"
tag_urgent_fg = "#282828ff"
tag_urgent_bg = "#cc241dff"
tag_inactive_fg = "#d79921ff"
tag_inactive_bg = "#282828ff"

# The font and various sizes
font = "monospace 10"
height = 24
margin_top = 0
margin_bottom = 0
margin_left = 0
margin_right = 0
separator_width = 2.0
tags_r = 0.0
tags_padding = 25.0
blocks_r = 0.0
blocks_overlap = 0.0

# Misc
position = "top" # either "top" or "bottom"
hide_inactive_tags = true
invert_touchpad_scrolling = true
show_layout_name = true
blend = true # whether tags/blocks colors should blend with bar's background
show_mode = true

# WM-specific options
[wm.river]
max_tag = 9 # Show only the first nine tags

# Per output overrides
# [output.your-output-name]
# right now only "enable" option is available
# enable = false
#
# You can have any number of overrides
# [output.eDP-1]
# enable = false

渐进式短模式和圆角显示如何工作

一些状态栏生成器(例如 i3status-rs)使用多个“json 块”来执行单个逻辑块的实现,例如按钮。

短文本管理和圆角显示是在每个逻辑块的基础上进行的。

i3bar-river 定义了一个逻辑块,作为一个具有相同 name 的连续的“json块”序列。此外,只有最后一个“json块”可以具有非零(或不存在)的 separator_block_width,其他所有“json块”应明确将其设置为零。如果您认为这个定义不是最好的,请随时在github上创建一个新问题。

blocks_overlap 选项

有时 pango 会在“powerline分隔符”和块之间留有间隙(见 https://github.com/greshake/i3status-rust/issues/246#issuecomment-1086753440)。在这种情况下,您可以将 blocks_overlap 选项设置为希望块重叠的像素数。通常,1 是一个好的选择。

展示(使用 i3status-rs)

原生分隔符

Native separators demo

i3bar-river

font = "JetBrainsMono Nerd Font 10"
height = 20
command = "i3status-rs"

i3status-rs

[theme]
theme = "native"
[theme.overrides]
idle_fg = "#ebdbb2"
info_fg = "#458588"
good_fg = "#8ec07c"
warning_fg = "#fabd2f"
critical_fg = "#fb4934"

Powerline分隔符

Powerline separators demo

i3bar-river

font = "JetBrainsMono Nerd Font 10"
height = 20
command = "i3status-rs"

i3status-rs

[theme]
theme = "slick"

圆角

Rounded corners demo

i3bar-river

font = "JetBrainsMono Nerd Font 10"
height = 20
separator_width = 0
tags_r = 6
blocks_r = 6
command = "i3status-rs"

i3status-rs

[theme]
theme = "slick"
[theme.overrides]
separator = "native"
alternating_tint_bg = "none"
alternating_tint_fg = "none"

依赖项

~12–20MB
~312K SLoC