From 7144e922373168b81c06cb6d60138e89dc6a2d9e Mon Sep 17 00:00:00 2001 From: Benjamyn Love Date: Wed, 2 Jul 2025 11:10:23 +1000 Subject: [PATCH] Get hyprland session at runtime --- src/handlers/hyprpaper.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/handlers/hyprpaper.rs b/src/handlers/hyprpaper.rs index 002bf76..b1c5687 100644 --- a/src/handlers/hyprpaper.rs +++ b/src/handlers/hyprpaper.rs @@ -2,8 +2,15 @@ use std::fmt::Write as _; use crate::lib::ipc; use crate::Wallpapers; +use std::env; + pub fn change_wallpapers(wallpapers: &Wallpapers) { - let ipc = ipc::IPC::new(String::from("/run/user/1000/hypr/9958d297641b5c84dcff93f9039d80a5ad37ab00_1751412591_2000702590/.hyprpaper.sock")); + let hypr_session = env::var("HYPRLAND_INSTANCE_SIGNATURE").unwrap(); + let xdg_path = env::var("XDG_RUNTIME_DIR").unwrap(); + + let mut socket_path = String::new(); + write!(&mut socket_path, "{}/hypr/{}/.hyprpaper.sock", xdg_path, hypr_session).unwrap(); + let ipc = ipc::IPC::new(socket_path); for monitor in wallpapers.config.monitors.monitors.iter() { let mut buf = String::new();