mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-04-02 07:15:31 -04:00
config: add scrollback.multiplier option
This option is used to multiply the mouse scroll amount for mouse and trackpad based scrollback scrolling. Closes #54.
This commit is contained in:
parent
93b03c91ed
commit
36468b0406
5 changed files with 22 additions and 2 deletions
|
|
@ -26,6 +26,8 @@
|
||||||
**pipe-scrollback**, but only pipes the currently selected text, if
|
**pipe-scrollback**, but only pipes the currently selected text, if
|
||||||
any (https://codeberg.org/dnkl/foot/issues/51).
|
any (https://codeberg.org/dnkl/foot/issues/51).
|
||||||
* **cursor.hide-when-typing** option to `footrc.
|
* **cursor.hide-when-typing** option to `footrc.
|
||||||
|
* **scrollback.multiplier** option to `footrc`
|
||||||
|
(https://codeberg.org/dnkl/foot/issues/54).
|
||||||
|
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
|
||||||
12
config.c
12
config.c
|
|
@ -439,6 +439,17 @@ parse_section_scrollback(const char *key, const char *value, struct config *conf
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if (strcmp(key, "multiplier") == 0) {
|
||||||
|
double multiplier;
|
||||||
|
if (!str_to_double(value, &multiplier)) {
|
||||||
|
LOG_AND_NOTIFY_ERR("%s:%d: [scrollback]: multiplier: "
|
||||||
|
"invalid value: %s", path, lineno, value);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
conf->scrollback.multiplier = multiplier;
|
||||||
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
LOG_AND_NOTIFY_ERR("%s:%u: [scrollback]: %s: invalid key", path, lineno, key);
|
LOG_AND_NOTIFY_ERR("%s:%u: [scrollback]: %s: invalid key", path, lineno, key);
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -1218,6 +1229,7 @@ config_load(struct config *conf, const char *conf_path, bool errors_are_fatal)
|
||||||
.format = SCROLLBACK_INDICATOR_FORMAT_TEXT,
|
.format = SCROLLBACK_INDICATOR_FORMAT_TEXT,
|
||||||
.text = wcsdup(L""),
|
.text = wcsdup(L""),
|
||||||
},
|
},
|
||||||
|
.multiplier = 1.,
|
||||||
},
|
},
|
||||||
.colors = {
|
.colors = {
|
||||||
.fg = default_foreground,
|
.fg = default_foreground,
|
||||||
|
|
|
||||||
1
config.h
1
config.h
|
|
@ -61,6 +61,7 @@ struct config {
|
||||||
|
|
||||||
wchar_t *text;
|
wchar_t *text;
|
||||||
} indicator;
|
} indicator;
|
||||||
|
double multiplier;
|
||||||
} scrollback;
|
} scrollback;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,10 @@ in this order:
|
||||||
*lines*
|
*lines*
|
||||||
Number of scrollback lines. Default: _1000_.
|
Number of scrollback lines. Default: _1000_.
|
||||||
|
|
||||||
|
*multiplier*
|
||||||
|
Amount to multiply mouse scrolling with. It is a decimal number,
|
||||||
|
i.e. fractions are allowed. Default: _1.0_.
|
||||||
|
|
||||||
*indicator-position*
|
*indicator-position*
|
||||||
Configures the style of the scrollback position indicator. One of
|
Configures the style of the scrollback position indicator. One of
|
||||||
*none*, *fixed* or *relative*. *none* disables the indicator
|
*none*, *fixed* or *relative*. *none* disables the indicator
|
||||||
|
|
|
||||||
5
input.c
5
input.c
|
|
@ -1544,7 +1544,8 @@ wl_pointer_axis(void *data, struct wl_pointer *wl_pointer,
|
||||||
* Without this, very slow scrolling will never actually scroll
|
* Without this, very slow scrolling will never actually scroll
|
||||||
* anything.
|
* anything.
|
||||||
*/
|
*/
|
||||||
seat->mouse.axis_aggregated += wl_fixed_to_double(value);
|
seat->mouse.axis_aggregated
|
||||||
|
+= seat->wayl->conf->scrollback.multiplier * wl_fixed_to_double(value);
|
||||||
|
|
||||||
if (fabs(seat->mouse.axis_aggregated) >= 1.) {
|
if (fabs(seat->mouse.axis_aggregated) >= 1.) {
|
||||||
mouse_scroll(seat, round(seat->mouse.axis_aggregated));
|
mouse_scroll(seat, round(seat->mouse.axis_aggregated));
|
||||||
|
|
@ -1561,7 +1562,7 @@ wl_pointer_axis_discrete(void *data, struct wl_pointer *wl_pointer,
|
||||||
|
|
||||||
struct seat *seat = data;
|
struct seat *seat = data;
|
||||||
seat->mouse.have_discrete = true;
|
seat->mouse.have_discrete = true;
|
||||||
mouse_scroll(seat, discrete);
|
mouse_scroll(seat, seat->wayl->conf->scrollback.multiplier * discrete);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue