Crates.io | hyprparser |
lib.rs | hyprparser |
version | 0.1.6 |
source | src |
created_at | 2024-10-29 16:56:05.616514 |
updated_at | 2024-11-24 04:28:55.581566 |
description | A parser for Hyprland's configuration file. |
homepage | |
repository | https://github.com/hyprutils/hyprparser.git |
max_upload_size | |
id | 1427307 |
size | 100,663 |
A parser for Hyprland's configuration files written in Rust 🚀🦀
HyprParser is available on Crates.io. It can be added as a dependency with:
$ cargo add hyprparser
Here's an example usage:
# Cargo.toml
[dependencies]
hyprparser = "0.1.2"
// main.rs
use hyprparser::parse_config;
use std::{env, fs, path::Path};
fn main() {
let config_path = Path::new(&env::var("XDG_CONFIG_HOME").unwrap_or_else(|_| {
let home = env::var("HOME").unwrap_or_else(|_| ".".to_string());
format!("{}/.config", home)
}))
.join("hypr/hyprland.conf");
let config_str = fs::read_to_string(&config_path).unwrap();
let mut parsed_config = parse_config(&config_str);
parsed_config.add_entry("decoration", "rounding = 10");
parsed_config.add_entry("decoration.blur", "enabled = true");
parsed_config.add_entry("decoration.blur", "size = 10");
parsed_config.add_entry_headless("$terminal", "kitty");
let updated_config_str = parsed_config.to_string();
fs::write(&config_path, updated_config_str).unwrap();
println!("Updated hyprland.conf with new configuration.");
}