13 个版本
0.5.0 | 2024年3月6日 |
---|---|
0.4.4 | 2023年12月6日 |
0.4.3 | 2023年3月2日 |
0.4.1 | 2022年5月25日 |
0.2.0 | 2020年11月10日 |
#80 在 命令行界面
每月 13,329 次下载
用于 10 个 Crates (8 直接使用)
18KB
344 行
termbg
一个用于终端背景色检测的 Rust 库。检测到的颜色由 RGB 或主题(深色或浅色)提供。
支持终端
- Alacritty
- GNOME 终端
- GNU Screen
- kitty
- iTerm2
- macOS 终端
- MATE 终端
- mintty
- RLogin
- rxvt-unicode
- sakura
- PuTTY PRIVATE PATCHES
- Tera Term
- Terminator
- tmux
- Visual Studio Code
- xfce4-terminal
- xterm
- Win32 控制台
如果检查其他终端,请通过 问题 报告。
不支持终端
"Windows Terminal" 可能会在未来的版本中得到支持: https://github.com/microsoft/terminal/issues/3718.
用法
[dependencies]
termbg = "0.5.0"
示例
fn main() {
let timeout = std::time::Duration::from_millis(100);
println!("Check terminal background color");
let term = termbg::terminal();
let rgb = termbg::rgb(timeout);
let theme = termbg::theme(timeout);
println!(" Term : {:?}", term);
match rgb {
Ok(rgb) => {
println!(" Color: R={:x}, G={:x}, B={:x}", rgb.r, rgb.g, rgb.b);
}
Err(e) => {
println!(" Color: detection failed {:?}", e);
}
}
match theme {
Ok(theme) => {
println!(" Theme: {:?}", theme);
}
Err(e) => {
println!(" Theme: detection failed {:?}", e);
}
}
}
检查程序
此 crate 提供了一个简单的检查程序。
$ cargo run
Check terminal background color
Term : Tmux
Color: R=0, G=0, B=0
Theme: Dark
检测机制
如果终端是 win32 控制台,使用 WIN32API 进行检测。如果终端是 xterm 兼容的,使用 "Xterm Control Sequences"。如果这些方法失败,则使用 COLORFGBG
环境变量。
检测到的 RGB 转换为 YCbCr。如果 Y > 0.5,则检测到的主题为 "浅色",否则为 "深色"。
依赖关系
~5–15MB
~193K SLoC