summaryrefslogtreecommitdiffstats
path: root/src/event_exec.rs
diff options
context:
space:
mode:
authorqkzk <qu3nt1n@gmail.com>2023-09-27 15:26:38 +0200
committerqkzk <qu3nt1n@gmail.com>2023-09-27 15:26:38 +0200
commit49c02b3262cb51934e54c4727f77e72d82dc1ce2 (patch)
treea9fcbe191537a63e02c027681827633a45d3b3b8 /src/event_exec.rs
parent8ebe8ff18bd1174f0939ef4a0c2de93498ef69d0 (diff)
nitrogen must be installed to set a wallpaper
Diffstat (limited to 'src/event_exec.rs')
-rw-r--r--src/event_exec.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/event_exec.rs b/src/event_exec.rs
index 74fe95e..218c6d3 100644
--- a/src/event_exec.rs
+++ b/src/event_exec.rs
@@ -11,6 +11,7 @@ use which::which;
use crate::action_map::ActionMap;
use crate::completion::InputCompleted;
use crate::config::Colors;
+use crate::constant_strings_paths::NITROGEN;
use crate::constant_strings_paths::SSHFS_EXECUTABLE;
use crate::constant_strings_paths::{CONFIG_PATH, DEFAULT_DRAGNDROP};
use crate::cryptsetup::{lsblk_and_cryptsetup_installed, BlockDeviceAction};
@@ -26,6 +27,7 @@ use crate::opener::{
execute_in_child_without_output_with_path, InternalVariant,
};
use crate::password::{PasswordKind, PasswordUsage};
+use crate::preview::is_ext_image;
use crate::preview::Preview;
use crate::selectable_content::SelectableContent;
use crate::shell_parser::ShellCommandParser;
@@ -989,10 +991,20 @@ impl EventAction {
/// Set the current selected file as wallpaper with `nitrogen`.
/// Requires `nitrogen` to be installed.
pub fn set_wallpaper(tab: &Tab) -> Result<()> {
+ if !is_program_in_path(NITROGEN) {
+ write_log_line("nitrogen must be installed".to_owned());
+ return Ok(());
+ }
+ let Some(fileinfo) = tab.path_content.selected() else {
+ return Ok(());
+ };
+ if !is_ext_image(&fileinfo.extension) {
+ return Ok(());
+ }
let Some(path_str) = tab.path_content.selected_path_string() else {
return Ok(());
};
- let _ = execute_in_child("nitrogen", &["--set-zoom-fill", "--save", &path_str]);
+ let _ = execute_in_child(NITROGEN, &["--set-zoom-fill", "--save", &path_str]);
Ok(())
}