diff options
Diffstat (limited to 'src/config/clean')
-rw-r--r-- | src/config/clean/app/config.rs | 11 | ||||
-rw-r--r-- | src/config/clean/app/mod.rs | 4 | ||||
-rw-r--r-- | src/config/clean/app/preview/config.rs | 12 | ||||
-rw-r--r-- | src/config/clean/bookmarks.rs | 10 | ||||
-rw-r--r-- | src/config/clean/icon/config.rs | 8 | ||||
-rw-r--r-- | src/config/clean/icon/mod.rs | 5 | ||||
-rw-r--r-- | src/config/clean/keymap/config.rs | 8 | ||||
-rw-r--r-- | src/config/clean/keymap/mod.rs | 4 | ||||
-rw-r--r-- | src/config/clean/mimetype/config.rs | 10 | ||||
-rw-r--r-- | src/config/clean/mimetype/entry.rs | 22 | ||||
-rw-r--r-- | src/config/clean/preview/config.rs | 8 | ||||
-rw-r--r-- | src/config/clean/theme/config.rs | 18 | ||||
-rw-r--r-- | src/config/clean/theme/mod.rs | 4 |
13 files changed, 71 insertions, 53 deletions
diff --git a/src/config/clean/app/config.rs b/src/config/clean/app/config.rs index 0995e8d..ee3a24b 100644 --- a/src/config/clean/app/config.rs +++ b/src/config/clean/app/config.rs @@ -2,9 +2,8 @@ use std::collections::HashMap; use crate::{ config::{ - parse_config_or_default, raw::app::{AppConfigRaw, CustomCommand}, - TomlConfigFile, + ConfigType, TomlConfigFile, }, error::AppResult, }; @@ -22,6 +21,7 @@ pub struct AppConfig { pub watch_files: bool, pub custom_commands: Vec<CustomCommand>, pub focus_on_create: bool, + pub mouse_support: bool, pub cmd_aliases: HashMap<String, String>, pub _display_options: DisplayOption, pub _preview_options: PreviewOption, @@ -71,8 +71,10 @@ impl std::default::Default for AppConfig { } impl TomlConfigFile for AppConfig { - fn get_config(file_name: &str) -> Self { - parse_config_or_default::<AppConfigRaw, AppConfig>(file_name) + type Raw = AppConfigRaw; + + fn get_type() -> ConfigType { + ConfigType::App } } @@ -85,6 +87,7 @@ impl From<AppConfigRaw> for AppConfig { watch_files: raw.watch_files, cmd_aliases: raw.cmd_aliases, focus_on_create: raw.focus_on_create, + mouse_support: raw.mouse_support, _display_options: DisplayOption::from(raw.display_options), _preview_options: PreviewOption::from(raw.preview_options), _search_options: SearchOption::from(raw.search_options), diff --git a/src/config/clean/app/mod.rs b/src/config/clean/app/mod.rs index 11fb46a..d517b31 100644 --- a/src/config/clean/app/mod.rs +++ b/src/config/clean/app/mod.rs @@ -7,7 +7,7 @@ pub mod tab; pub use config::*; #[cfg(not(target_os = "windows"))] -const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("../../../../config/joshuto.toml"); +pub const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("../../../../config/joshuto.toml"); #[cfg(target_os = "windows")] -const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("..\\..\\..\\..\\config\\joshuto.toml"); +pub const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("..\\..\\..\\..\\config\\joshuto.toml"); diff --git a/src/config/clean/app/preview/config.rs b/src/config/clean/app/preview/config.rs index 2fd50e5..e14407e 100644 --- a/src/config/clean/app/preview/config.rs +++ b/src/config/clean/app/preview/config.rs @@ -1,18 +1,18 @@ use std::path; use crate::{ - config::{raw::app::display::preview::PreviewOptionRaw, search_directories}, + config::{ + raw::app::display::preview::{default_max_preview_size, PreviewOptionRaw, PreviewProtocol}, + search_directories, + }, util::unix, CONFIG_HIERARCHY, }; -const fn default_max_preview_size() -> u64 { - 2 * 1024 * 1024 // 2 MB -} - #[derive(Clone, Debug)] pub struct PreviewOption { pub max_preview_size: u64, + pub preview_protocol: PreviewProtocol, pub preview_script: Option<path::PathBuf>, pub preview_shown_hook_script: Option<path::PathBuf>, pub preview_removed_hook_script: Option<path::PathBuf>, @@ -22,6 +22,7 @@ impl std::default::Default for PreviewOption { fn default() -> Self { Self { max_preview_size: default_max_preview_size(), + preview_protocol: PreviewProtocol::Auto, preview_script: None, preview_shown_hook_script: None, preview_removed_hook_script: None, @@ -46,6 +47,7 @@ impl From<PreviewOptionRaw> for PreviewOption { Self { max_preview_size: raw.max_preview_size, + preview_protocol: raw.preview_protocol, preview_script, preview_shown_hook_script, preview_removed_hook_script, diff --git a/src/config/clean/bookmarks.rs b/src/config/clean/bookmarks.rs index 370fef2..155755d 100644 --- a/src/config/clean/bookmarks.rs +++ b/src/config/clean/bookmarks.rs @@ -3,16 +3,16 @@ use termion::event::Event; use std::collections::HashMap; use crate::config::raw::bookmarks::BookmarksRaw; -use crate::config::TomlConfigFile; +use crate::config::{ConfigType, TomlConfigFile}; use crate::util::keyparse; -use crate::config::parse_config_or_default; - pub type Bookmarks = HashMap<Event, String>; impl TomlConfigFile for Bookmarks { - fn get_config(file_name: &str) -> Self { - parse_config_or_default::<BookmarksRaw, Bookmarks>(file_name) + type Raw = BookmarksRaw; + + fn get_type() -> ConfigType { + ConfigType::Bookmarks } } diff --git a/src/config/clean/icon/config.rs b/src/config/clean/icon/config.rs index 02a80c3..a0c25af 100644 --- a/src/config/clean/icon/config.rs +++ b/src/config/clean/icon/config.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use crate::{ - config::{parse_config_or_default, raw::icon::IconsRaw, TomlConfigFile}, + config::{raw::icon::IconsRaw, ConfigType, TomlConfigFile}, error::AppResult, }; @@ -30,8 +30,10 @@ impl std::default::Default for Icons { } impl TomlConfigFile for Icons { - fn get_config(file_name: &str) -> Self { - parse_config_or_default::<IconsRaw, Icons>(file_name) + type Raw = IconsRaw; + + fn get_type() -> ConfigType { + ConfigType::Icons } } diff --git a/src/config/clean/icon/mod.rs b/src/config/clean/icon/mod.rs index ac4a11a..e23656d 100644 --- a/src/config/clean/icon/mod.rs +++ b/src/config/clean/icon/mod.rs @@ -2,7 +2,8 @@ mod config; pub use config::*; -const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("../../../../config/icons.toml"); +#[cfg(not(target_os = "windows"))] +pub const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("../../../../config/icons.toml"); #[cfg(target_os = "windows")] -const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("..\\..\\..\\..\\config\\icons.toml"); +pub const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("..\\..\\..\\..\\config\\icons.toml"); diff --git a/src/config/clean/keymap/config.rs b/src/config/clean/keymap/config.rs index 55e1bf9..c51721a 100644 --- a/src/config/clean/keymap/config.rs +++ b/src/config/clean/keymap/config.rs @@ -5,7 +5,7 @@ use std::str::FromStr; use termion::event::Event; use crate::config::raw::keymap::{AppKeyMappingRaw, CommandKeymap}; -use crate::config::{parse_config_or_default, TomlConfigFile}; +use crate::config::{ConfigType, TomlConfigFile}; use crate::error::AppResult; use crate::key_command::{Command, CommandKeybind}; use crate::traits::ToString; @@ -113,8 +113,10 @@ impl From<AppKeyMappingRaw> for AppKeyMapping { } impl TomlConfigFile for AppKeyMapping { - fn get_config(file_name: &str) -> Self { - parse_config_or_default::<AppKeyMappingRaw, AppKeyMapping>(file_name) + type Raw = AppKeyMappingRaw; + + fn get_type() -> ConfigType { + ConfigType::Keymap } } diff --git a/src/config/clean/keymap/mod.rs b/src/config/clean/keymap/mod.rs index f68fbef..4398f8d 100644 --- a/src/config/clean/keymap/mod.rs +++ b/src/config/clean/keymap/mod.rs @@ -3,7 +3,7 @@ mod config; pub use self::config::*; #[cfg(not(target_os = "windows"))] -const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("../../../../config/keymap.toml"); +pub const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("../../../../config/keymap.toml"); #[cfg(target_os = "windows")] -const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("..\\..\\..\\..\\config\\keymap.toml"); +pub const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("..\\..\\..\\..\\config\\keymap.toml"); diff --git a/src/config/clean/mimetype/config.rs b/src/config/clean/mimetype/config.rs index 166e7e2..2419f88 100644 --- a/src/config/clean/mimetype/config.rs +++ b/src/config/clean/mimetype/config.rs @@ -1,8 +1,6 @@ use std::collections::HashMap; -use crate::config::{ - parse_config_or_default, raw::mimetype::AppProgramRegistryRaw, TomlConfigFile, -}; +use crate::config::{raw::mimetype::AppProgramRegistryRaw, ConfigType, TomlConfigFile}; use super::{ExtensionAppList, MimetypeAppList}; @@ -69,7 +67,9 @@ impl From<AppProgramRegistryRaw> for AppProgramRegistry { } impl TomlConfigFile for AppProgramRegistry { - fn get_config(file_name: &str) -> Self { - parse_config_or_default::<AppProgramRegistryRaw, AppProgramRegistry>(file_name) + type Raw = AppProgramRegistryRaw; + + fn get_type() -> ConfigType { + ConfigType::Mimetype } } diff --git a/src/config/clean/mimetype/entry.rs b/src/config/clean/mimetype/entry.rs index 790fe7c..ee18998 100644 --- a/src/config/clean/mimetype/entry.rs +++ b/src/config/clean/mimetype/entry.rs @@ -12,8 +12,8 @@ pub struct ProgramEntry { _fork: bool, #[serde(default, rename = "silent")] _silent: bool, - #[serde(default, rename = "confirm_exit")] - _confirm_exit: bool, + #[serde(default, rename = "pager")] + _pager: bool, } impl ProgramEntry { @@ -23,7 +23,7 @@ impl ProgramEntry { _args: Vec::new(), _fork: false, _silent: false, - _confirm_exit: false, + _pager: false, } } @@ -54,12 +54,6 @@ impl ProgramEntry { self } - #[allow(dead_code)] - pub fn confirm_exit(&mut self, confirm_exit: bool) -> &mut Self { - self._confirm_exit = confirm_exit; - self - } - pub fn get_command(&self) -> &str { self._command.as_str() } @@ -76,8 +70,8 @@ impl ProgramEntry { self._silent } - pub fn get_confirm_exit(&self) -> bool { - self._confirm_exit + pub fn get_pager(&self) -> bool { + self._pager } // TODO: Windows support @@ -96,7 +90,7 @@ impl std::default::Default for ProgramEntry { _args: Vec::new(), _fork: false, _silent: false, - _confirm_exit: false, + _pager: false, } } } @@ -115,8 +109,8 @@ impl std::fmt::Display for ProgramEntry { if self.get_silent() { f.write_str("[silent]").unwrap(); } - if self.get_confirm_exit() { - f.write_str("[confirm-exit]").unwrap(); + if self.get_pager() { + f.write_str("[pager]").unwrap(); } f.write_str("") } diff --git a/src/config/clean/preview/config.rs b/src/config/clean/preview/config.rs index 0588c5f..1490cb3 100644 --- a/src/config/clean/preview/config.rs +++ b/src/config/clean/preview/config.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use serde::Deserialize; -use crate::config::{parse_config_or_default, raw::preview::FileEntryPreviewRaw, TomlConfigFile}; +use crate::config::{raw::preview::FileEntryPreviewRaw, ConfigType, TomlConfigFile}; #[derive(Debug, Deserialize)] pub struct FileEntryPreviewEntry { @@ -17,8 +17,10 @@ pub struct FileEntryPreview { } impl TomlConfigFile for FileEntryPreview { - fn get_config(file_name: &str) -> Self { - parse_config_or_default::<FileEntryPreviewRaw, FileEntryPreview>(file_name) + type Raw = FileEntryPreviewRaw; + + fn get_type() -> ConfigType { + ConfigType::Preview } } diff --git a/src/config/clean/theme/config.rs b/src/config/clean/theme/config.rs index 9028490..7fd25cd 100644 --- a/src/config/clean/theme/config.rs +++ b/src/config/clean/theme/config.rs @@ -1,7 +1,8 @@ +use lscolors::LsColors; use std::collections::HashMap; use crate::config::raw::theme::AppThemeRaw; -use crate::config::{parse_config_or_default, TomlConfigFile}; +use crate::config::{ConfigType, TomlConfigFile}; use crate::error::AppResult; use super::style::AppStyle; @@ -20,6 +21,7 @@ pub struct AppTheme { pub link_invalid: AppStyle, pub socket: AppStyle, pub ext: HashMap<String, AppStyle>, + pub lscolors: Option<LsColors>, } impl AppTheme { @@ -30,8 +32,10 @@ impl AppTheme { } impl TomlConfigFile for AppTheme { - fn get_config(file_name: &str) -> Self { - parse_config_or_default::<AppThemeRaw, AppTheme>(file_name) + type Raw = AppThemeRaw; + + fn get_type() -> ConfigType { + ConfigType::Theme } } @@ -62,6 +66,13 @@ impl From<AppThemeRaw> for AppTheme { (k.clone(), style) }) .collect(); + let lscolors = if raw.lscolors_enabled { + let lscolors = LsColors::from_env(); + let default = Some(LsColors::default()); + lscolors.or(default) + } else { + None + }; Self { selection, @@ -74,6 +85,7 @@ impl From<AppThemeRaw> for AppTheme { socket, ext, tabs: TabTheme::from(tabs), + lscolors, } } } diff --git a/src/config/clean/theme/mod.rs b/src/config/clean/theme/mod.rs index a9f7cbb..a6694c9 100644 --- a/src/config/clean/theme/mod.rs +++ b/src/config/clean/theme/mod.rs @@ -5,7 +5,7 @@ pub mod tab; pub use config::*; #[cfg(not(target_os = "windows"))] -const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("../../../../config/theme.toml"); +pub const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("../../../../config/theme.toml"); #[cfg(target_os = "windows")] -const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("..\\..\\..\\..\\config\\theme.toml"); +pub const DEFAULT_CONFIG_FILE_PATH: &str = include_str!("..\\..\\..\\..\\config\\theme.toml"); |