diff --git a/suckless/st/config.h b/suckless/st/config.h index 4f90bf69..b150dc5a 100644 --- a/suckless/st/config.h +++ b/suckless/st/config.h @@ -214,8 +214,8 @@ static Shortcut shortcuts[] = { { TERMMOD, XK_V, clippaste, {.i = 0} }, { TERMMOD, XK_Y, selpaste, {.i = 0} }, { ShiftMask, XK_Insert, selpaste, {.i = 0} }, - { ALTMOD, XK_Num_Lock, numlock, {.i = 0} }, - { ALTMOD, XK_I, iso14755, {.i = 0} }, + { TERMMOD, XK_Num_Lock, numlock, {.i = 0} }, + { TERMMOD, XK_I, iso14755, {.i = 0} }, { ALTMOD, XK_Up, zoom, {.f = +1} }, { ALTMOD, XK_Down, zoom, {.f = -1} }, { ALTMOD, XK_K, zoom, {.f = +1} }, diff --git a/suckless/st/st.c b/suckless/st/st.c index 9a5e00f1..bfda5c5b 100644 --- a/suckless/st/st.c +++ b/suckless/st/st.c @@ -724,10 +724,11 @@ sigchld(int a) die("waiting for pid %hd failed: %s\n", pid, strerror(errno)); if (pid != p) { - if (p == 0 && wait(&stat) < 0) + if (p == 0 && waitpid(-1 ,&stat, WNOHANG) < 0) + /* Changed from wait(&stat) to waitpid(-1, &stat, WNOHANG) */ + /* Otherwise the terminal would hang after calling iso4755 */ die("wait: %s\n", strerror(errno)); - /* reinstall sigchld handler */ signal(SIGCHLD, sigchld); return; }