diff --git a/src/interactive/app/eventloop.rs b/src/interactive/app/eventloop.rs index cfe199f0..6cc91967 100644 --- a/src/interactive/app/eventloop.rs +++ b/src/interactive/app/eventloop.rs @@ -77,7 +77,7 @@ impl TerminalApp { B: Backend, R: io::Read + TermReadEventsAndRaw, { - use termion::event::Key::{Char, Ctrl}; + use termion::event::Key::{Char, Ctrl, Down, Esc, PageDown, PageUp, Up}; use FocussedPane::*; self.draw(terminal)?; @@ -89,7 +89,7 @@ impl TerminalApp { self.cycle_focus(); } Ctrl('c') => break, - Char('q') => match self.state.focussed { + Char('q') | Esc => match self.state.focussed { Main => break, Help => { self.state.focussed = Main; @@ -101,10 +101,10 @@ impl TerminalApp { match self.state.focussed { FocussedPane::Help => match key { - Ctrl('u') => self.scroll_help(CursorDirection::PageUp), - Char('k') => self.scroll_help(CursorDirection::Up), - Char('j') => self.scroll_help(CursorDirection::Down), - Ctrl('d') => self.scroll_help(CursorDirection::PageDown), + Ctrl('u') | PageUp => self.scroll_help(CursorDirection::PageUp), + Char('k') | Up => self.scroll_help(CursorDirection::Up), + Char('j') | Down => self.scroll_help(CursorDirection::Down), + Ctrl('d') | PageDown => self.scroll_help(CursorDirection::PageDown), _ => {} }, FocussedPane::Main => match key { @@ -115,7 +115,7 @@ impl TerminalApp { Char('k') => self.change_entry_selection(CursorDirection::Up), Char('j') => self.change_entry_selection(CursorDirection::Down), Ctrl('d') => self.change_entry_selection(CursorDirection::PageDown), - Char('s') => self.state.sorting.toggle_size(), + Char('s') => self.cycle_sorting(), Char('g') => self.display.byte_vis.cycle(), _ => {} }, diff --git a/src/interactive/app/handlers.rs b/src/interactive/app/handlers.rs index 82b64e36..b9f2c132 100644 --- a/src/interactive/app/handlers.rs +++ b/src/interactive/app/handlers.rs @@ -114,4 +114,10 @@ impl TerminalApp { .map(|b| b.index) .or(self.state.selected) } + + pub fn cycle_sorting(&mut self) { + self.state.sorting.toggle_size(); + self.state.entries = + sorted_entries(&self.traversal.tree, self.state.root, self.state.sorting); + } } diff --git a/src/interactive/widgets/help.rs b/src/interactive/widgets/help.rs index 5f074bf2..0afff129 100644 --- a/src/interactive/widgets/help.rs +++ b/src/interactive/widgets/help.rs @@ -44,7 +44,7 @@ impl ToplevelComponent for ReactHelpPane { let hotkey = |keys, description| { count(1); lines.borrow_mut().push(Text::Styled( - format!("{:>10}", keys).into(), + format!("{:>11}", keys).into(), Style { fg: Color::Green, ..Default::default() @@ -59,7 +59,7 @@ impl ToplevelComponent for ReactHelpPane { title("Keys for pane control"); { hotkey( - "q", + "q/", "close the current pane. Closes the application if no pane is open.", ); hotkey("", "Cycle between all open panes"); @@ -68,12 +68,14 @@ impl ToplevelComponent for ReactHelpPane { } title("Keys for Navigation"); { - hotkey("j", "move down an entry"); - hotkey("k", "move up an entry"); + hotkey("j/", "move down an entry"); + hotkey("k/", "move up an entry"); hotkey("o", "descent into the selected directory"); hotkey("u", "ascent one level into the parent directory"); hotkey("Ctrl + d", "move down 10 entries at once"); + hotkey("", "^"); hotkey("Ctrl + u", "move up 10 entries at once"); + hotkey("", "^"); spacer(); } title("Keys for display");