diff options
author | Christian Duerr <contact@christianduerr.com> | 2018-03-10 20:24:10 +0100 |
---|---|---|
committer | Joe Wilm <jwilm@users.noreply.github.com> | 2018-03-15 12:27:12 -0700 |
commit | e7a32b589f6701667bb7c0135491b6800f8716e6 (patch) | |
tree | 754efd9bf97f8fc13abc36af8722b2c2cfddd221 /src/input.rs | |
parent | d9be2d2d88689d31d08f9218f8493635d0724860 (diff) | |
download | alacritty-e7a32b589f6701667bb7c0135491b6800f8716e6.tar.gz alacritty-e7a32b589f6701667bb7c0135491b6800f8716e6.zip |
Add scrollback hotkeys
This offers a few additional hotkeys that can be used in combination
with scrollback. None of these are used by default yet.
This implements the following bindings:
- ScrollPageUp: Scroll exactly one screen height up
- ScrollPageDown: Scroll exactly one screen height down
- ScrollToTop: Scroll as far up as possible
- ScrollToBottom: Scroll as far down as possible
This fixes #1151.
Diffstat (limited to 'src/input.rs')
-rw-r--r-- | src/input.rs | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/input.rs b/src/input.rs index def20b4d..96c67db6 100644 --- a/src/input.rs +++ b/src/input.rs @@ -65,8 +65,11 @@ pub trait ActionContext { fn last_modifiers(&mut self) -> &mut ModifiersState; fn change_font_size(&mut self, delta: i8); fn reset_font_size(&mut self); - fn scroll(&mut self, count: isize) {} - fn reset_scroll(&mut self) {} + fn scroll(&mut self, count: isize); + fn reset_scroll(&mut self); + fn scroll_to_top(&mut self); + fn scroll_page_up(&mut self); + fn scroll_page_down(&mut self); } /// Describes a state and action to take in that state @@ -168,6 +171,18 @@ pub enum Action { /// Reset font size to the config value ResetFontSize, + /// Scroll exactly one page up + ScrollPageUp, + + /// Scroll exactly one page down + ScrollPageDown, + + /// Scroll all the way to the top + ScrollToTop, + + /// Scroll all the way to the bottom + ScrollToBottom, + /// Run given command Command(String, Vec<String>), @@ -233,7 +248,19 @@ impl Action { } Action::ResetFontSize => { ctx.reset_font_size(); - } + }, + Action::ScrollPageUp => { + ctx.scroll_page_up(); + }, + Action::ScrollPageDown => { + ctx.scroll_page_down(); + }, + Action::ScrollToTop => { + ctx.scroll_to_top(); + }, + Action::ScrollToBottom => { + ctx.reset_scroll(); + }, } } |