all repos — st @ fbc589d50603e8b0de9239e4800e227ab5d0ea69

st (suckless terminal) config

Remove long text being cropped/wrapped to standard 80x24 on launch.

To be more specific, now tty creation is delayed until X window is
actually mapped; last ConfigureNotify before mapping determines
initial tty size.
Please report problems if there are any.
Alexander Sedov alex0player@gmail.com
commit

fbc589d50603e8b0de9239e4800e227ab5d0ea69

parent

6fc471ccc660b305cf836dcb8d57cdbffb4ed017

2 files changed, 18 insertions(+), 7 deletions(-)

jump to
M TODOTODO

@@ -26,10 +26,6 @@ * fix selection paste for xatom STRING

* fix rows and column definition in fixed geometry * fix -e handling * remove DEC test sequence when appropriate -* When some application outputting long text is run in the shell init scripts, - then this text might be stripped to the standard 80x25 due to st running the - virtual terminal at first priority. Maybe the vt initialisation could be - moved somewhere after knowing the right window size. misc ----
M st.cst.c

@@ -3520,9 +3520,27 @@

void run(void) { XEvent ev; + int w = xw.w, h = xw.h; fd_set rfd; int xfd = XConnectionNumber(xw.dpy), xev, blinkset = 0, dodraw = 0; struct timeval drawtimeout, *tv = NULL, now, last, lastblink; + + /* Waiting for window mapping */ + while(1) { + XNextEvent(xw.dpy, &ev); + if(ev.type == ConfigureNotify) { + w = ev.xconfigure.width; + h = ev.xconfigure.height; + } else if(ev.type == MapNotify) { + break; + } + } + + if(!xw.isfixed) + cresize(w, h); + else + cresize(xw.fw, xw.fh); + ttynew(); gettimeofday(&lastblink, NULL); gettimeofday(&last, NULL);

@@ -3673,10 +3691,7 @@ setlocale(LC_CTYPE, "");

XSetLocaleModifiers(""); tnew(80, 24); xinit(); - ttynew(); selinit(); - if(xw.isfixed) - cresize(xw.h, xw.w); run(); return 0;