diff --git a/src/config/mod.rs b/src/config/mod.rs index 0fb7875..4960d7d 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -44,9 +44,11 @@ use crate::modules::workspaces::WorkspacesModule; use crate::modules::{AnyModuleFactory, ModuleFactory, ModuleInfo}; use cfg_if::cfg_if; -use color_eyre::Result; +use color_eyre::{Help, Report, Result}; use serde::Deserialize; use std::collections::HashMap; +use std::process::{Command, Stdio}; +use tracing::error; #[cfg(feature = "schema")] use schemars::JsonSchema; @@ -435,3 +437,25 @@ pub const fn default_false() -> bool { pub const fn default_true() -> bool { true } + +pub fn default_launch_command() -> String { + String::from("gtk-launch") +} + +pub fn launch_command(file_name: &str, str: &str) { + let launch_command_parts: Vec<&str> = str.split_whitespace().collect(); + if let Err(err) = Command::new(&launch_command_parts[0]) + .args(&launch_command_parts[1..]) + .arg(file_name) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .spawn() + { + error!( + "{:?}", + Report::new(err) + .wrap_err("Failed to run launch command.") + .suggestion("Perhaps the applications file is invalid?") + ); + } +} diff --git a/src/modules/launcher/mod.rs b/src/modules/launcher/mod.rs index e7cd9d9..5b6694e 100644 --- a/src/modules/launcher/mod.rs +++ b/src/modules/launcher/mod.rs @@ -7,17 +7,18 @@ use self::open_state::OpenState; use super::{Module, ModuleInfo, ModuleParts, ModulePopup, ModuleUpdateEvent, WidgetContext}; use crate::channels::{AsyncSenderExt, BroadcastReceiverExt}; use crate::clients::wayland::{self, ToplevelEvent}; -use crate::config::{CommonConfig, EllipsizeMode, LayoutConfig, TruncateMode}; +use crate::config::{ + CommonConfig, EllipsizeMode, LayoutConfig, TruncateMode, default_launch_command, launch_command, +}; use crate::gtk_helpers::{IronbarGtkExt, IronbarLabelExt}; use crate::modules::launcher::item::ImageTextButton; use crate::modules::launcher::pagination::{IconContext, Pagination}; use crate::{arc_mut, lock, module_impl, spawn, write_lock}; -use color_eyre::{Help, Report}; +use color_eyre::Report; use gtk::prelude::*; use gtk::{Button, Orientation}; use indexmap::IndexMap; use serde::Deserialize; -use std::process::{Command, Stdio}; use std::sync::Arc; use tokio::sync::mpsc; use tracing::{debug, error, trace, warn}; @@ -164,25 +165,6 @@ fn default_icon_page_forward() -> String { String::from("󰅂") } -pub(crate) fn default_launch_command() -> String { String::from("gtk-launch") } -pub fn launch_command(file_name: &String, str: &String) { - let launch_command_parts: Vec<&str> = str.split_whitespace().collect(); - if let Err(err) = Command::new(&launch_command_parts[0]) - .args(&launch_command_parts[1..]) - .arg(file_name) - .stdout(Stdio::null()) - .stderr(Stdio::null()) - .spawn() - { - error!( - "{:?}", - Report::new(err) - .wrap_err("Failed to run launch command.") - .suggestion("Perhaps the applications file is invalid?") - ); - } -} - const fn default_truncate_popup() -> TruncateMode { TruncateMode::Length { mode: EllipsizeMode::Middle, diff --git a/src/modules/menu/config.rs b/src/modules/menu/config.rs index 1b84ae3..1d72386 100644 --- a/src/modules/menu/config.rs +++ b/src/modules/menu/config.rs @@ -1,6 +1,6 @@ +use crate::config::default_launch_command; use crate::config::{CommonConfig, TruncateMode}; use crate::modules::menu::{MenuEntry, XdgSection}; -use crate::modules::launcher::default_launch_command; use indexmap::IndexMap; use serde::Deserialize; diff --git a/src/modules/menu/mod.rs b/src/modules/menu/mod.rs index 6c9e2d7..2c58526 100644 --- a/src/modules/menu/mod.rs +++ b/src/modules/menu/mod.rs @@ -262,8 +262,13 @@ impl Module