summaryrefslogtreecommitdiffstats
path: root/src/config/clean
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/clean')
-rw-r--r--src/config/clean/app/config.rs11
-rw-r--r--src/config/clean/app/mod.rs4
-rw-r--r--src/config/clean/app/preview/config.rs12
-rw-r--r--src/config/clean/bookmarks.rs10
-rw-r--r--src/config/clean/icon/config.rs8
-rw-r--r--src/config/clean/icon/mod.rs5
-rw-r--r--src/config/clean/keymap/config.rs8
-rw-r--r--src/config/clean/keymap/mod.rs4
-rw-r--r--src/config/clean/mimetype/config.rs10
-rw-r--r--src/config/clean/mimetype/entry.rs22
-rw-r--r--src/config/clean/preview/config.rs8
-rw-r--r--src/config/clean/theme/config.rs18
-rw-r--r--src/config/clean/theme/mod.rs4
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");