linux-qubasis

linux oasis port as a qubes template

git clone https://9o.is/git/linux-qubasis.git

commit 51fdfc2b6444143bb0d624124fd9bfa56aaea0e4
parent bb3d1a87a8d10d7109264f7e1faf7296480f0c2a
Author: Jul <jul@9o.is>
Date:   Tue, 15 Jul 2025 16:02:31 -0400

add st scrollback mouse altscreen patch

Diffstat:
Mpkg/st/config.h | 4++--
Apkg/st/patches/0003-add-scrollback-mouse-altscreen.patch | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 78 insertions(+), 2 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, {.f = -0.2} }, - { XK_ANY_MOD, Button5, kscrolldown, {.f = -0.2} }, + { XK_ANY_MOD, Button4, kscrollup, {.f = -0.2}, 0, -1 }, + { XK_ANY_MOD, Button5, kscrolldown, {.f = -0.2}, 0, -1 }, { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, }; diff --git a/pkg/st/patches/0003-add-scrollback-mouse-altscreen.patch b/pkg/st/patches/0003-add-scrollback-mouse-altscreen.patch @@ -0,0 +1,76 @@ +From 31f8ee9440d36f65ff4ff71f0d59412602022bf2 Mon Sep 17 00:00:00 2001 +From: Jul <jul@qh.is> +Date: Tue, 15 Jul 2025 15:58:15 -0400 +Subject: [PATCH 3/3] add scrollback mouse altscreen + +--- + config.def.h | 2 ++ + st.c | 5 +++++ + st.h | 1 + + x.c | 2 ++ + 4 files changed, 10 insertions(+) + +diff --git a/config.def.h b/config.def.h +index 6769f99..1f7101e 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -176,6 +176,8 @@ static uint forcemousemod = ShiftMask; + */ + static MouseShortcut mshortcuts[] = { + /* mask button function argument release */ ++ { XK_ANY_MOD, Button4, kscrollup, {.i = 1}, 0, /* !alt */ -1 }, ++ { XK_ANY_MOD, Button5, kscrolldown, {.i = 1}, 0, /* !alt */ -1 }, + { XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 }, + { ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} }, + { XK_ANY_MOD, Button4, ttysend, {.s = "\031"} }, +diff --git a/st.c b/st.c +index f13120a..e179d74 100644 +--- a/st.c ++++ b/st.c +@@ -1077,6 +1077,11 @@ tnew(int col, int row) + treset(); + } + ++int tisaltscr(void) ++{ ++ return IS_SET(MODE_ALTSCREEN); ++} ++ + void + tswapscreen(void) + { +diff --git a/st.h b/st.h +index 3cea73b..952cb8e 100644 +--- a/st.h ++++ b/st.h +@@ -88,6 +88,7 @@ void sendbreak(const Arg *); + void toggleprinter(const Arg *); + + int tattrset(int); ++int tisaltscr(void); + void tnew(int, int); + void tresize(int, int); + void tsetdirtattr(int); +diff --git a/x.c b/x.c +index 1e4bdf5..0b23bb4 100644 +--- a/x.c ++++ b/x.c +@@ -34,6 +34,7 @@ typedef struct { + void (*func)(const Arg *); + const Arg arg; + uint release; ++ int altscrn; /* 0: don't care, -1: not alt screen, 1: alt screen */ + } MouseShortcut; + + typedef struct { +@@ -457,6 +458,7 @@ mouseaction(XEvent *e, uint release) + for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) { + if (ms->release == release && + ms->button == e->xbutton.button && ++ (!ms->altscrn || (ms->altscrn == (tisaltscr() ? 1 : -1))) && + (match(ms->mod, state) || /* exact or forced */ + match(ms->mod, state & ~forcemousemod))) { + ms->func(&(ms->arg)); +-- +2.50.0 +