linux-qubasis
linux oasis port as a qubes template
git clone https://9o.is/git/linux-qubasis.git
commit bb3d1a87a8d10d7109264f7e1faf7296480f0c2a parent 207e4ffdcc2d22b7f8dc760bb26fb6214a3b76ef Author: Jul <jul@9o.is> Date: Tue, 15 Jul 2025 15:38:53 -0400 add st scrollback floating point patch Diffstat:
| M | pkg/st/config.h | | | 8 | ++++---- |
| A | pkg/st/patches/0002-adjust-scrollback-with-floating-point.patch | | | 65 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
2 files changed, 69 insertions(+), 4 deletions(-)
diff --git a/pkg/st/config.h b/pkg/st/config.h @@ -172,8 +172,8 @@ static uint forcemousemod = ShiftMask; */ static MouseShortcut mshortcuts[] = { /* mask button function argument release */ - { XK_ANY_MOD, Button4, kscrollup, {.i = -1} }, - { XK_ANY_MOD, Button5, kscrolldown, {.i = -1} }, + { XK_ANY_MOD, Button4, kscrollup, {.f = -0.2} }, + { XK_ANY_MOD, Button5, kscrolldown, {.f = -0.2} }, { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, }; @@ -195,8 +195,8 @@ static Shortcut shortcuts[] = { { TERMMOD, XK_Y, selpaste, {.i = 0} }, { ShiftMask, XK_Insert, selpaste, {.i = 0} }, { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, - { XK_ANY_MOD, XK_Page_Up, kscrollup, {.i = -1} }, - { XK_ANY_MOD, XK_Page_Down, kscrolldown, {.i = -1} }, + { XK_ANY_MOD, XK_Page_Up, kscrollup, {.f = -0.2} }, + { XK_ANY_MOD, XK_Page_Down, kscrolldown, {.f = -0.2} }, }; /* diff --git a/pkg/st/patches/0002-adjust-scrollback-with-floating-point.patch b/pkg/st/patches/0002-adjust-scrollback-with-floating-point.patch @@ -0,0 +1,65 @@ +From 02eac3563c1c374491909483a4f1c3b158243daf Mon Sep 17 00:00:00 2001 +From: Jul <jul@qh.is> +Date: Tue, 15 Jul 2025 15:19:38 -0400 +Subject: [PATCH 2/2] adjust scrollback with floating point + +--- + config.def.h | 4 ++-- + st.c | 10 +++++----- + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 8b25d40..6769f99 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -201,8 +201,8 @@ static Shortcut shortcuts[] = { + { TERMMOD, XK_Y, selpaste, {.i = 0} }, + { ShiftMask, XK_Insert, selpaste, {.i = 0} }, + { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, +- { ShiftMask, XK_Page_Up, kscrollup, {.i = -1} }, +- { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1} }, ++ { ShiftMask, XK_Page_Up, kscrollup, {.f = -0.1} }, ++ { ShiftMask, XK_Page_Down, kscrolldown, {.f = -0.1} }, + }; + + /* +diff --git a/st.c b/st.c +index 0cb5c56..f13120a 100644 +--- a/st.c ++++ b/st.c +@@ -1087,14 +1087,14 @@ tswapscreen(void) + void + kscrollup(const Arg *a) + { +- int n = a->i; ++ float n = a->f; + + if (IS_SET(MODE_ALTSCREEN)) + return; + +- if (n < 0) n = (-n) * term.row; ++ if (n < 0) n = MAX((-n) * term.row, 1); + if (n > TSCREEN.size - term.row - TSCREEN.off) n = TSCREEN.size - term.row - TSCREEN.off; +- while (!TLINE(-n)) --n; ++ while (!TLINE((int)-n)) --n; + TSCREEN.off += n; + selscroll(0, n); + tfulldirt(); +@@ -1104,12 +1104,12 @@ void + kscrolldown(const Arg *a) + { + +- int n = a->i; ++ float n = a->f; + + if (IS_SET(MODE_ALTSCREEN)) + return; + +- if (n < 0) n = (-n) * term.row; ++ if (n < 0) n = MAX((-n) * term.row, 1); + if (n > TSCREEN.off) n = TSCREEN.off; + TSCREEN.off -= n; + selscroll(0, -n); +-- +2.50.0 +