From 23cd5aa78a26ccf57c6a7993313e42a5c39d43d8 Mon Sep 17 00:00:00 2001 From: Lin Xianyi Date: Sun, 19 Oct 2025 11:22:31 +0000 Subject: Add --path argument for niri msg screenshot* commands (#2126) * Check for empty screenshot parent before creating Avoids a warning. * Add --path argument for niri msg screenshot* commands * fix --------- Co-authored-by: Ivan Molodetskikh --- src/input/mod.rs | 47 ++++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) (limited to 'src/input/mod.rs') diff --git a/src/input/mod.rs b/src/input/mod.rs index 876295a2..23ea4b29 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -605,14 +605,17 @@ impl State { self.niri.do_screen_transition(renderer, delay_ms); }); } - Action::ScreenshotScreen(write_to_disk, show_pointer) => { + Action::ScreenshotScreen(write_to_disk, show_pointer, path) => { let active = self.niri.layout.active_output().cloned(); if let Some(active) = active { self.backend.with_primary_renderer(|renderer| { - if let Err(err) = - self.niri - .screenshot(renderer, &active, write_to_disk, show_pointer) - { + if let Err(err) = self.niri.screenshot( + renderer, + &active, + write_to_disk, + show_pointer, + path, + ) { warn!("error taking screenshot: {err:?}"); } }); @@ -636,32 +639,42 @@ impl State { self.niri.screenshot_ui.toggle_pointer(); self.niri.queue_redraw_all(); } - Action::Screenshot(show_cursor) => { - self.open_screenshot_ui(show_cursor); + Action::Screenshot(show_cursor, path) => { + self.open_screenshot_ui(show_cursor, path); } - Action::ScreenshotWindow(write_to_disk) => { + Action::ScreenshotWindow(write_to_disk, path) => { let focus = self.niri.layout.focus_with_output(); if let Some((mapped, output)) = focus { self.backend.with_primary_renderer(|renderer| { - if let Err(err) = - self.niri - .screenshot_window(renderer, output, mapped, write_to_disk) - { + if let Err(err) = self.niri.screenshot_window( + renderer, + output, + mapped, + write_to_disk, + path, + ) { warn!("error taking screenshot: {err:?}"); } }); } } - Action::ScreenshotWindowById { id, write_to_disk } => { + Action::ScreenshotWindowById { + id, + write_to_disk, + path, + } => { let mut windows = self.niri.layout.windows(); let window = windows.find(|(_, m)| m.id().get() == id); if let Some((Some(monitor), mapped)) = window { let output = monitor.output(); self.backend.with_primary_renderer(|renderer| { - if let Err(err) = - self.niri - .screenshot_window(renderer, output, mapped, write_to_disk) - { + if let Err(err) = self.niri.screenshot_window( + renderer, + output, + mapped, + write_to_disk, + path, + ) { warn!("error taking screenshot: {err:?}"); } }); -- cgit