aboutsummaryrefslogtreecommitdiff
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)
downloadalacritty-b01dc062c704ae3163ca6272dab5d4ec193430a6.tar.gz
alacritty-b01dc062c704ae3163ca6272dab5d4ec193430a6.zip
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);
}
}