From 84d77732058f06aad0cc2c8afb08258a5f9cb5f5 Mon Sep 17 00:00:00 2001 From: rabite Date: Tue, 18 Feb 2020 00:51:08 +0100 Subject: add option to separate icon and file name with a space --- src/config.rs | 4 ++++ src/listview.rs | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/config.rs b/src/config.rs index ddcb068..c4e7049 100644 --- a/src/config.rs +++ b/src/config.rs @@ -88,6 +88,7 @@ pub struct Config { pub select_cmd: String, pub cd_cmd: String, pub icons: bool, + pub icons_space: bool, pub media_autoplay: bool, pub media_mute: bool, pub media_previewer: String, @@ -113,6 +114,7 @@ impl Config { select_cmd: "find -type f | fzf -m".to_string(), cd_cmd: "find -type d | fzf".to_string(), icons: false, + icons_space: false, media_autoplay: false, media_mute: false, media_previewer: "hunter-media".to_string(), @@ -146,6 +148,8 @@ impl Config { Ok(("show_hidden", "off")) => config.show_hidden = false, Ok(("icons", "on")) => config.icons = true, Ok(("icons", "off")) => config.icons = false, + Ok(("icons_space", "on")) => config.icons_space = true, + Ok(("icons_space", "off")) => config.icons_space = false, Ok(("select_cmd", cmd)) => { let cmd = cmd.to_string(); config.select_cmd = cmd; diff --git a/src/listview.rs b/src/listview.rs index 3a40289..b260b6a 100644 --- a/src/listview.rs +++ b/src/listview.rs @@ -744,14 +744,17 @@ impl ListView use crate::files::FileError; let xsize = self.get_coordinates().unwrap().xsize(); - let icons = self.core.config().icons; + let config = self.core.config(); + let icons = config.icons; + let icons_space = config.icons_space; move |file| -> String { let mut line = String::with_capacity(500); - let icon = match icons { - true => file.icon(), - false => "" + let (icon, icon_space) = match (icons, icons_space) { + (true, true) => (file.icon(), " "), + (true, false) => (file.icon(), ""), + _ => ("", "") }; let name = &file.name; @@ -805,27 +808,30 @@ impl ListView let padding = xsize - padding as u16; let padding = padding - tag_len; let padding = padding - icon.width() as u16; + let padding = padding - icon_space.len() as u16; write!(&mut line, "{}", termion::cursor::Save).unwrap(); match file.get_color() { Some(color) => write!(&mut line, - "{}{}{}{}{}{:padding$}{}", + "{}{}{}{}{}{}{:padding$}{}", tag, &color, selection_color, selection_gap, icon, + icon_space, &sized_string, term::normal_color(), padding = padding as usize), _ => write!(&mut line, - "{}{}{}{}{}{:padding$}{}", + "{}{}{}{}{}{}{:padding$}{}", tag, term::normal_color(), selection_color, selection_gap, icon, + icon_space , &sized_string, term::normal_color(), padding = padding as usize), -- cgit v1.2.3