linux-qubasis

linux oasis port as a qubes template

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

commit 4f6cc1e97328ffd2cc1c950d05c6ba03103d831c
parent 7f14bab1706dc0220bd09f27428e46f5e475867d
Author: Jul <jul@9o.is>
Date:   Thu, 31 Jul 2025 02:22:20 -0400

set dvtm key pending state on top of status

Diffstat:
Mpkg/dvtm/patches/0001-customize-personal-UI.patch | 49+++++++++++++++++++++++++------------------------
Mpkg/dvtm/patches/0002-allow-focusing-left-right-fullscreen.patch | 6+++---
Mpkg/dvtm/patches/0003-add-client-child-process-count-to-status-bar.patch | 16++++++++--------
3 files changed, 36 insertions(+), 35 deletions(-)

diff --git a/pkg/dvtm/patches/0001-customize-personal-UI.patch b/pkg/dvtm/patches/0001-customize-personal-UI.patch @@ -1,17 +1,17 @@ -From 460b3aa8833d93f5e9103fb49afe0673a34ba2ec Mon Sep 17 00:00:00 2001 +From e7e930091e3f251351f116acb076b9a7aba607de Mon Sep 17 00:00:00 2001 From: Jul <jul@qh.is> Date: Sat, 19 Jul 2025 14:05:33 -0400 Subject: [PATCH 1/3] customize personal UI --- - dvtm.c | 231 +++++++++++++++++++++++++++++++++++---------------------- - 1 file changed, 141 insertions(+), 90 deletions(-) + dvtm.c | 232 +++++++++++++++++++++++++++++++++++---------------------- + 1 file changed, 142 insertions(+), 90 deletions(-) diff --git a/dvtm.c b/dvtm.c -index 8382c83..3a5be5c 100644 +index 8382c83..6b5e641 100644 --- a/dvtm.c +++ b/dvtm.c -@@ -322,87 +322,153 @@ showbar(void) { +@@ -322,87 +322,154 @@ showbar(void) { bar.pos = bar.lastpos; } @@ -140,22 +140,6 @@ index 8382c83..3a5be5c 100644 + attrset(NORMAL_ATTR); + len_lhs += len_title; + -+ unsigned int len_keys = keys[0] ? MAX_KEYS : 0; -+ if (len_keys) { -+ move(bar.y, screen.w - len_rhs - MAX_KEYS); -+ len_rhs += len_keys + 1; -+ attrset(KEYS_STATUS_ATTR); -+ -+ for (unsigned int i = 0; i < MAX_KEYS - 1 && keys[i]; i++) { -+ if (keys[i] < ' ') -+ printw("^%c", 'A' - 1 + keys[i]); -+ else if (keys[i] <= '~') -+ printw("%c", keys[i]); -+ } -+ -+ attrset(NORMAL_ATTR); -+ } -+ + const char *abduco_env = getenv("ABDUCO_SESSION"); + if (abduco_env != NULL) { + unsigned int len_env = strlen(abduco_env) + 1; @@ -205,6 +189,23 @@ index 8382c83..3a5be5c 100644 + printw("%s", buffer_clients); + } + ++ unsigned int len_keys = keys[0] ? MAX_KEYS : 0; ++ if (len_keys) { ++ move(bar.y, screen.w - MAX_KEYS); ++ attrset(KEYS_STATUS_ATTR); ++ ++ for (unsigned int i = 0; i < MAX_KEYS - 1; i++) { ++ if (!keys[i]) ++ printw(" "); ++ else if (keys[i] < ' ') ++ printw("^%c", 'A' - 1 + keys[i]); ++ else if (keys[i] <= '~') ++ printw("%c", keys[i]); ++ } ++ ++ attrset(NORMAL_ATTR); ++ } ++ + move(bar.y, len_lhs + 1); + getyx(stdscr, y, x); + (void)y; @@ -238,7 +239,7 @@ index 8382c83..3a5be5c 100644 if (!show_border()) return; -@@ -414,20 +480,6 @@ draw_border(Client *c) { +@@ -414,20 +481,6 @@ draw_border(Client *c) { wattrset(c->window, attrs); getyx(c->window, y, x); mvwhline(c->window, 0, 0, ACS_HLINE, c->w); @@ -259,7 +260,7 @@ index 8382c83..3a5be5c 100644 wmove(c->window, y, x); } -@@ -482,7 +534,7 @@ arrange(void) { +@@ -482,7 +535,7 @@ arrange(void) { } erase(); attrset(NORMAL_ATTR); @@ -268,7 +269,7 @@ index 8382c83..3a5be5c 100644 if ((!clients || !clients->next) && n == 1) hidebar(); else -@@ -634,8 +686,7 @@ term_title_handler(Vt *term, const char *title) { +@@ -634,8 +687,7 @@ term_title_handler(Vt *term, const char *title) { strncpy(c->title, title, sizeof(c->title) - 1); c->title[title ? sizeof(c->title) - 1 : 0] = '\0'; settitle(c); diff --git a/pkg/dvtm/patches/0002-allow-focusing-left-right-fullscreen.patch b/pkg/dvtm/patches/0002-allow-focusing-left-right-fullscreen.patch @@ -1,4 +1,4 @@ -From e2af1e71395e1c9498bd07e6598b5d6833c43b9f Mon Sep 17 00:00:00 2001 +From ae1e6ddbe0b622e9690fccba948eb3012d0f0055 Mon Sep 17 00:00:00 2001 From: Jul <jul@qh.is> Date: Sat, 19 Jul 2025 20:49:03 -0400 Subject: [PATCH 2/3] allow focusing left/right fullscreen @@ -8,10 +8,10 @@ Subject: [PATCH 2/3] allow focusing left/right fullscreen 1 file changed, 2 deletions(-) diff --git a/dvtm.c b/dvtm.c -index 3a5be5c..dc59514 100644 +index 6b5e641..cacd32a 100644 --- a/dvtm.c +++ b/dvtm.c -@@ -745,8 +745,6 @@ static Client* +@@ -746,8 +746,6 @@ static Client* get_client_by_coord(unsigned int x, unsigned int y) { if (y < way || y >= way+wah) return NULL; diff --git a/pkg/dvtm/patches/0003-add-client-child-process-count-to-status-bar.patch b/pkg/dvtm/patches/0003-add-client-child-process-count-to-status-bar.patch @@ -1,4 +1,4 @@ -From 96cb8eba8dd033e70289f57fa4efee31683e493e Mon Sep 17 00:00:00 2001 +From a110da9032200e777d1015d9ea78f4235a3bbeaa Mon Sep 17 00:00:00 2001 From: Jul <jul@qh.is> Date: Wed, 30 Jul 2025 00:02:37 -0400 Subject: [PATCH 3/3] add client child process count to status bar @@ -8,7 +8,7 @@ Subject: [PATCH 3/3] add client child process count to status bar 1 file changed, 47 insertions(+) diff --git a/dvtm.c b/dvtm.c -index dc59514..5ded956 100644 +index cacd32a..1654930 100644 --- a/dvtm.c +++ b/dvtm.c @@ -33,6 +33,8 @@ @@ -62,10 +62,11 @@ index dc59514..5ded956 100644 static unsigned int total_visible_clients(void) { unsigned int total = 0; -@@ -441,6 +478,16 @@ drawbar(void) { +@@ -424,6 +461,16 @@ drawbar(void) { + len_rhs += len_clients + 1; printw("%s", buffer_clients); } - ++ + if (sel) { + int count = 1 + count_child_processes(sel->pid); + if (count > 1) { @@ -75,10 +76,9 @@ index dc59514..5ded956 100644 + printw("P%d", count); + } + } -+ - move(bar.y, len_lhs + 1); - getyx(stdscr, y, x); - (void)y; + + unsigned int len_keys = keys[0] ? MAX_KEYS : 0; + if (len_keys) { -- 2.50.1