summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Duerr <contact@christianduerr.com>2017-12-29 18:37:46 +0100
committerJoe Wilm <jwilm@users.noreply.github.com>2018-01-02 08:24:03 -0800
commitb01dc062c704ae3163ca6272dab5d4ec193430a6 (patch)
treea19aa6586dd5fd364be51c57192030703b1b42bc
parent9797bd72bca6ee496561714dc1cda4071bebf045 (diff)
Address feedback
The config documentation has been changed to make it clear which part of the documentation is related to which setting. The faux scrollback part of the `scroll_terminal` method has been cleaned up by making use of the fact that the `codepoint + 1` can be used in the escape sequence which is used for scrolling.
-rw-r--r--alacritty.yml25
-rw-r--r--alacritty_macos.yml25
-rw-r--r--src/input.rs23
3 files changed, 37 insertions, 36 deletions
diff --git a/alacritty.yml b/alacritty.yml
index 0901b7fe..07e0bfc5 100644
--- a/alacritty.yml
+++ b/alacritty.yml
@@ -197,20 +197,23 @@ background_opacity: 1.0
mouse_bindings:
- { mouse: Middle, action: PasteSelection }
-# Mouse settings
-#
-# The `faux_scrollback_lines` setting controls the number
-# of lines the terminal should scroll when the alternate
-# screen buffer is active. This is used to allow mouse
-# scrolling for applications like `man`.
-# To disable this completely, set `faux_scrollback_lines` to 0.
-#
-# The `double_click` and `triple_click` settings control the time
-# alacritty should wait for accepting multiple clicks as one double
-# or triple click.
mouse:
+ # Click settings
+ #
+ # The `double_click` and `triple_click` settings control the time
+ # alacritty should wait for accepting multiple clicks as one double
+ # or triple click.
double_click: { threshold: 300 }
triple_click: { threshold: 300 }
+
+ # Faux Scrollback
+ #
+ # The `faux_scrollback_lines` setting controls the number
+ # of lines the terminal should scroll when the alternate
+ # screen buffer is active. This is used to allow mouse
+ # scrolling for applications like `man`.
+ #
+ # To disable this completely, set `faux_scrollback_lines` to 0.
faux_scrollback_lines: 1
selection:
diff --git a/alacritty_macos.yml b/alacritty_macos.yml
index 4b44b3f4..aaa38d21 100644
--- a/alacritty_macos.yml
+++ b/alacritty_macos.yml
@@ -178,20 +178,23 @@ background_opacity: 1.0
mouse_bindings:
- { mouse: Middle, action: PasteSelection }
-# Mouse settings
-#
-# The `faux_scrollback_lines` setting controls the number
-# of lines the terminal should scroll when the alternate
-# screen buffer is active. This is used to allow mouse
-# scrolling for applications like `man`.
-# To disable this completely, set `faux_scrollback_lines` to 0.
-#
-# The `double_click` and `triple_click` settings control the time
-# alacritty should wait for accepting multiple clicks as one double
-# or triple click.
mouse:
+ # Click settings
+ #
+ # The `double_click` and `triple_click` settings control the time
+ # alacritty should wait for accepting multiple clicks as one double
+ # or triple click.
double_click: { threshold: 300 }
triple_click: { threshold: 300 }
+
+ # Faux Scrollback
+ #
+ # The `faux_scrollback_lines` setting controls the number
+ # of lines the terminal should scroll when the alternate
+ # screen buffer is active. This is used to allow mouse
+ # scrolling for applications like `man`.
+ #
+ # To disable this completely, set `faux_scrollback_lines` to 0.
faux_scrollback_lines: 1
selection:
diff --git a/src/input.rs b/src/input.rs
index 8b66cb61..fa1ce385 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -424,26 +424,21 @@ impl<'a, A: ActionContext + 'a> Processor<'a, A> {
}
fn scroll_terminal(&mut self, mouse_modes: TermMode, code: u8) {
+ debug_assert!(code == 64 || code == 65);
+
let faux_scrollback_lines = self.mouse_config.faux_scrollback_lines;
if self.ctx.terminal_mode().intersects(mouse_modes) {
self.normal_mouse_report(code);
} else if faux_scrollback_lines > 0 {
// Faux scrolling
- if code == 64 {
- // Scroll up by `faux_scrollback_lines`
- let mut content = String::with_capacity(faux_scrollback_lines * 3);
- for _ in 0..faux_scrollback_lines {
- content = content + "\x1bOA";
- }
- self.ctx.write_to_pty(content.into_bytes());
- } else {
- // Scroll down by `faux_scrollback_lines`
- let mut content = String::with_capacity(faux_scrollback_lines * 3);
- for _ in 0..faux_scrollback_lines {
- content = content + "\x1bOB";
- }
- self.ctx.write_to_pty(content.into_bytes());
+ let cmd = code + 1; // 64 + 1 = A, 65 + 1 = B
+ let mut content = Vec::with_capacity(faux_scrollback_lines * 3);
+ for _ in 0..faux_scrollback_lines {
+ content.push(0x1b);
+ content.push('O' as u8);
+ content.push(cmd);
}
+ self.ctx.write_to_pty(content);
}
}