feat(core): overwrite modulo icon
This commit is contained in:
parent
0e5e308e9f
commit
a7c51fe803
|
@ -19,8 +19,9 @@
|
||||||
|
|
||||||
use clap::{ArgMatches};
|
use clap::{ArgMatches};
|
||||||
use espanso_modulo::form::*;
|
use espanso_modulo::form::*;
|
||||||
|
use crate::icon::IconPaths;
|
||||||
|
|
||||||
pub fn form_main(matches: &ArgMatches) -> i32 {
|
pub fn form_main(matches: &ArgMatches, _icon_paths: &IconPaths) -> i32 {
|
||||||
let as_json: bool = matches.is_present("json");
|
let as_json: bool = matches.is_present("json");
|
||||||
|
|
||||||
let input_file = matches
|
let input_file = matches
|
||||||
|
@ -42,6 +43,8 @@ pub fn form_main(matches: &ArgMatches) -> i32 {
|
||||||
} else {
|
} else {
|
||||||
serde_json::from_str(&data).expect("unable to parse form configuration")
|
serde_json::from_str(&data).expect("unable to parse form configuration")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// TODO: inject the icon on Windows
|
||||||
|
|
||||||
let form = generator::generate(config);
|
let form = generator::generate(config);
|
||||||
let values = show(form);
|
let values = show(form);
|
||||||
|
|
|
@ -39,13 +39,14 @@ pub fn new() -> CliModule {
|
||||||
fn modulo_main(args: CliModuleArgs) -> i32 {
|
fn modulo_main(args: CliModuleArgs) -> i32 {
|
||||||
let paths = args.paths.expect("missing paths in modulo main");
|
let paths = args.paths.expect("missing paths in modulo main");
|
||||||
let cli_args = args.cli_args.expect("missing cli_args in modulo main");
|
let cli_args = args.cli_args.expect("missing cli_args in modulo main");
|
||||||
|
let icon_paths = crate::icon::load_icon_paths(&paths.runtime).expect("unable to load icon paths");
|
||||||
|
|
||||||
if let Some(matches) = cli_args.subcommand_matches("form") {
|
if let Some(matches) = cli_args.subcommand_matches("form") {
|
||||||
return form::form_main(matches);
|
return form::form_main(matches, &icon_paths);
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(matches) = cli_args.subcommand_matches("search") {
|
if let Some(matches) = cli_args.subcommand_matches("search") {
|
||||||
return search::search_main(matches);
|
return search::search_main(matches, &icon_paths);
|
||||||
}
|
}
|
||||||
|
|
||||||
0
|
0
|
||||||
|
|
|
@ -20,8 +20,9 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use clap::{ArgMatches};
|
use clap::{ArgMatches};
|
||||||
use espanso_modulo::search::*;
|
use espanso_modulo::search::*;
|
||||||
|
use crate::icon::IconPaths;
|
||||||
|
|
||||||
pub fn search_main(matches: &ArgMatches) -> i32 {
|
pub fn search_main(matches: &ArgMatches, icon_paths: &IconPaths) -> i32 {
|
||||||
let as_json: bool = matches.is_present("json");
|
let as_json: bool = matches.is_present("json");
|
||||||
|
|
||||||
let input_file = matches
|
let input_file = matches
|
||||||
|
@ -38,12 +39,15 @@ pub fn search_main(matches: &ArgMatches) -> i32 {
|
||||||
std::fs::read_to_string(input_file).expect("unable to read input file")
|
std::fs::read_to_string(input_file).expect("unable to read input file")
|
||||||
};
|
};
|
||||||
|
|
||||||
let config: config::SearchConfig = if !as_json {
|
let mut config: config::SearchConfig = if !as_json {
|
||||||
serde_yaml::from_str(&data).expect("unable to parse search configuration")
|
serde_yaml::from_str(&data).expect("unable to parse search configuration")
|
||||||
} else {
|
} else {
|
||||||
serde_json::from_str(&data).expect("unable to parse search configuration")
|
serde_json::from_str(&data).expect("unable to parse search configuration")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Overwrite the icon
|
||||||
|
config.icon = icon_paths.logo.as_deref().map(|path| path.to_string_lossy().to_string());
|
||||||
|
|
||||||
let algorithm = algorithm::get_algorithm(&config.algorithm);
|
let algorithm = algorithm::get_algorithm(&config.algorithm);
|
||||||
|
|
||||||
let search = generator::generate(config);
|
let search = generator::generate(config);
|
||||||
|
|
|
@ -29,7 +29,7 @@ use ui::selector::MatchSelectorAdapter;
|
||||||
|
|
||||||
use crate::{cli::worker::engine::{matcher::regex::RegexMatcherAdapterOptions, path::PathProviderAdapter}, engine::event::ExitMode};
|
use crate::{cli::worker::engine::{matcher::regex::RegexMatcherAdapterOptions, path::PathProviderAdapter}, engine::event::ExitMode};
|
||||||
|
|
||||||
use super::ui::icon::IconPaths;
|
use crate::icon::IconPaths;
|
||||||
|
|
||||||
pub mod executor;
|
pub mod executor;
|
||||||
pub mod match_cache;
|
pub mod match_cache;
|
||||||
|
|
|
@ -69,7 +69,7 @@ fn worker_main(args: CliModuleArgs) -> i32 {
|
||||||
.expect("missing match store in worker main");
|
.expect("missing match store in worker main");
|
||||||
|
|
||||||
let icon_paths =
|
let icon_paths =
|
||||||
self::ui::icon::load_icon_paths(&paths.runtime).expect("unable to initialize icons");
|
crate::icon::load_icon_paths(&paths.runtime).expect("unable to initialize icons");
|
||||||
|
|
||||||
let (remote, mut eventloop) = espanso_ui::create_ui(espanso_ui::UIOptions {
|
let (remote, mut eventloop) = espanso_ui::create_ui(espanso_ui::UIOptions {
|
||||||
// TODO: handle show icon
|
// TODO: handle show icon
|
||||||
|
|
|
@ -17,5 +17,4 @@
|
||||||
* along with espanso. If not, see <https://www.gnu.org/licenses/>.
|
* along with espanso. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
pub mod icon;
|
|
||||||
pub mod util;
|
pub mod util;
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
use espanso_ui::icons::TrayIcon;
|
use espanso_ui::icons::TrayIcon;
|
||||||
|
|
||||||
use super::icon::IconPaths;
|
use crate::icon::IconPaths;
|
||||||
|
|
||||||
// TODO: test
|
// TODO: test
|
||||||
pub fn convert_icon_paths_to_tray_vec(icon_paths: &IconPaths) -> Vec<(TrayIcon, String)> {
|
pub fn convert_icon_paths_to_tray_vec(icon_paths: &IconPaths) -> Vec<(TrayIcon, String)> {
|
||||||
|
|
|
@ -21,20 +21,20 @@ use anyhow::Result;
|
||||||
use log::{debug, info};
|
use log::{debug, info};
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
const ICON_BINARY: &[u8] = include_bytes!("../../../res/icon.png");
|
const ICON_BINARY: &[u8] = include_bytes!("res/icon.png");
|
||||||
|
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
const WINDOWS_ICO_BINARY: &[u8] = include_bytes!("../../../res/windows/espanso.ico");
|
const WINDOWS_ICO_BINARY: &[u8] = include_bytes!("res/windows/espanso.ico");
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
const WINDOWS_RED_ICO_BINARY: &[u8] = include_bytes!("../../../res/windows/espansored.ico");
|
const WINDOWS_RED_ICO_BINARY: &[u8] = include_bytes!("res/windows/espansored.ico");
|
||||||
|
|
||||||
|
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
const MAC_BINARY: &[u8] = include_bytes!("../../../res/macos/icon.png");
|
const MAC_BINARY: &[u8] = include_bytes!("res/macos/icon.png");
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
const MAC_DISABLED_BINARY: &[u8] = include_bytes!("../../../res/macos/icondisabled.png");
|
const MAC_DISABLED_BINARY: &[u8] = include_bytes!("res/macos/icondisabled.png");
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
const MAC_SYSTEM_DISABLED_BINARY: &[u8] = include_bytes!("../../../res/macos/iconsystemdisabled.png");
|
const MAC_SYSTEM_DISABLED_BINARY: &[u8] = include_bytes!("res/macos/iconsystemdisabled.png");
|
||||||
|
|
||||||
#[derive(Debug, Default)]
|
#[derive(Debug, Default)]
|
||||||
pub struct IconPaths {
|
pub struct IconPaths {
|
|
@ -39,6 +39,7 @@ mod cli;
|
||||||
mod engine;
|
mod engine;
|
||||||
mod exit_code;
|
mod exit_code;
|
||||||
mod gui;
|
mod gui;
|
||||||
|
mod icon;
|
||||||
mod ipc;
|
mod ipc;
|
||||||
mod lock;
|
mod lock;
|
||||||
mod logging;
|
mod logging;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user