@@ -374,9 +374,9 @@ wintypes: |
| 374 | 374 | // picom will be started by write_picom_config -> reload_picom |
| 375 | 375 | } |
| 376 | 376 | "garchomp" => { |
| 377 | | - // Kill any existing compositor first |
| 378 | | - let _ = Command::new("pkill").arg("picom").status(); |
| 379 | | - let _ = Command::new("pkill").arg("garchomp").status(); |
| 377 | + // Kill any existing compositor first (use -f for NixOS wrappers) |
| 378 | + let _ = Command::new("pkill").args(["-f", "picom"]).status(); |
| 379 | + let _ = Command::new("pkill").args(["-f", "garchomp"]).status(); |
| 380 | 380 | |
| 381 | 381 | std::thread::sleep(std::time::Duration::from_millis(100)); |
| 382 | 382 | |
@@ -395,9 +395,9 @@ wintypes: |
| 395 | 395 | } |
| 396 | 396 | "none" => { |
| 397 | 397 | tracing::info!("Compositor disabled (compositor=none)"); |
| 398 | | - // Kill any running compositor |
| 399 | | - let _ = Command::new("pkill").arg("picom").status(); |
| 400 | | - let _ = Command::new("pkill").arg("garchomp").status(); |
| 398 | + // Kill any running compositor (use -f for NixOS wrappers) |
| 399 | + let _ = Command::new("pkill").args(["-f", "picom"]).status(); |
| 400 | + let _ = Command::new("pkill").args(["-f", "garchomp"]).status(); |
| 401 | 401 | } |
| 402 | 402 | _ => { |
| 403 | 403 | tracing::warn!("Unknown compositor '{}', defaulting to picom", self.compositor); |
@@ -411,8 +411,9 @@ wintypes: |
| 411 | 411 | /// Stop any running compositor. |
| 412 | 412 | pub fn stop_compositor() { |
| 413 | 413 | use std::process::Command; |
| 414 | | - let _ = Command::new("pkill").arg("picom").status(); |
| 415 | | - let _ = Command::new("pkill").arg("garchomp").status(); |
| 414 | + // Use -f to match full command line (needed for NixOS wrappers) |
| 415 | + let _ = Command::new("pkill").args(["-f", "picom"]).status(); |
| 416 | + let _ = Command::new("pkill").args(["-f", "garchomp"]).status(); |
| 416 | 417 | } |
| 417 | 418 | |
| 418 | 419 | /// Apply screen timeout/DPMS settings using xset |