commit 427895a7c2a3704bd8a0c1480a8620ee8507ea81
parent bcfa5b9b7f72ef7ef15ac3375bf6ef32b1f04fc2
Author: step <step-@users.noreply.github.com>
Date: Tue, 16 Aug 2022 16:49:10 +0200
Fix externalpipein patch (#78)
* fix externalpipein patch
don't close the slave fd, according to the original patch in
https://lists.suckless.org/hackers/2004/17218.html
* externalpipein patch: add example command
press S-C-M to set the terminal background green dynamically.
Replace `printf ...` with `dynamic-colors cycle` command mentioned in
https://lists.suckless.org/hackers/2004/17218.html to cycle though the
available dynamic color themes.
Diffstat:
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/config.def.h b/config.def.h
@@ -389,6 +389,12 @@ static MouseShortcut maltshortcuts[] = {
static char *openurlcmd[] = { "/bin/sh", "-c",
"xurls | dmenu -l 10 -w $WINDOWID | xargs -r open",
"externalpipe", NULL };
+
+#if EXTERNALPIPEIN_PATCH // example command
+static char *setbgcolorcmd[] = { "/bin/sh", "-c",
+ "printf '\033]11;#008000\007'",
+ "externalpipein", NULL };
+#endif // EXTERNALPIPEIN_PATCH
#endif // EXTERNALPIPE_PATCH
static Shortcut shortcuts[] = {
@@ -425,6 +431,9 @@ static Shortcut shortcuts[] = {
#endif // NEWTERM_PATCH
#if EXTERNALPIPE_PATCH
{ TERMMOD, XK_U, externalpipe, { .v = openurlcmd } },
+ #if EXTERNALPIPEIN_PATCH
+ { TERMMOD, XK_M, externalpipein, { .v = setbgcolorcmd } },
+ #endif // EXTERNALPIPEIN_PATCH
#endif // EXTERNALPIPE_PATCH
#if KEYBOARDSELECT_PATCH
{ TERMMOD, XK_Escape, keyboard_select, { 0 } },
diff --git a/st.c b/st.c
@@ -1090,15 +1090,16 @@ ttynew(const char *line, char *cmd, const char *out, char **args)
#endif // RIGHTCLICKTOPLUMB_PATCH
die("pledge\n");
#endif
- close(s);
- cmdfd = m;
#if EXTERNALPIPEIN_PATCH && EXTERNALPIPE_PATCH
csdfd = s;
+ cmdfd = m;
memset(&sa, 0, sizeof(sa));
sigemptyset(&sa.sa_mask);
sa.sa_handler = sigchld;
sigaction(SIGCHLD, &sa, NULL);
#else
+ close(s);
+ cmdfd = m;
signal(SIGCHLD, sigchld);
#endif // EXTERNALPIPEIN_PATCH
break;