24 lines
No EOL
899 B
Rust
24 lines
No EOL
899 B
Rust
use std::{fmt::Write};
|
|
use serde_json::json;
|
|
use swayipc::Node;
|
|
use crate::{config::Config, Cli};
|
|
|
|
//#[path = "../results.rs"]
|
|
mod results;
|
|
use results::WindowInfo;
|
|
|
|
pub fn print_window_title(window_node: Node,cli: &Cli,config: &Config) {
|
|
let mut window_title_display: String = window_node.name.unwrap();
|
|
for pair in &config.window_icons {
|
|
if window_title_display.contains(&pair.substring) {
|
|
window_title_display = pair.icon.clone() + " " + &window_title_display.replace(&pair.substring, "");
|
|
}
|
|
}
|
|
if !cli.no_truncate_title.unwrap() && window_title_display.len().gt(&config.title_length) {
|
|
window_title_display.truncate(config.title_length);
|
|
let _ = window_title_display.write_char('…');
|
|
}
|
|
let window_info = WindowInfo { title: window_title_display };
|
|
let window_output = json!(window_info);
|
|
println!("{}",window_output)
|
|
} |