mirror of
https://codeberg.org/dwl/dwl-patches.git
synced 2025-09-08 12:14:50 +00:00
startargv: new patch
This commit is contained in:
parent
9a751e5020
commit
6a71cf9806
13
patches/startargv/README.md
Normal file
13
patches/startargv/README.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
### Description
|
||||||
|
allow passing startup command on argv
|
||||||
|
|
||||||
|
e.g. `dwl -s foot -s` launches `foot -s`
|
||||||
|
|
||||||
|
put `sh -c` right after `dwl -s` to emulate normal behaviour
|
||||||
|
|
||||||
|
### Download
|
||||||
|
- [git branch](https://codeberg.org/notchoc/dwl/src/branch/startargv)
|
||||||
|
- [2024-07-03](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/startargv/startargv.patch)
|
||||||
|
|
||||||
|
### Authors
|
||||||
|
- [notchoc](https://codeberg.org/notchoc)
|
58
patches/startargv/startargv.patch
Normal file
58
patches/startargv/startargv.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
From a823f7923f8d2006eedc013ca1c1ba7a496543d5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: choc <notchoc@disroot.org>
|
||||||
|
Date: Wed, 3 Jul 2024 11:21:33 +0800
|
||||||
|
Subject: [PATCH] startargv: allow passing startup command on argv
|
||||||
|
|
||||||
|
---
|
||||||
|
dwl.c | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dwl.c b/dwl.c
|
||||||
|
index 9fb50a7..43b1ac1 100644
|
||||||
|
--- a/dwl.c
|
||||||
|
+++ b/dwl.c
|
||||||
|
@@ -320,7 +320,7 @@ static void requestdecorationmode(struct wl_listener *listener, void *data);
|
||||||
|
static void requeststartdrag(struct wl_listener *listener, void *data);
|
||||||
|
static void requestmonstate(struct wl_listener *listener, void *data);
|
||||||
|
static void resize(Client *c, struct wlr_box geo, int interact);
|
||||||
|
-static void run(char *startup_cmd);
|
||||||
|
+static void run(char **startup_cmd);
|
||||||
|
static void setcursor(struct wl_listener *listener, void *data);
|
||||||
|
static void setcursorshape(struct wl_listener *listener, void *data);
|
||||||
|
static void setfloating(Client *c, int floating);
|
||||||
|
@@ -2158,7 +2158,7 @@ resize(Client *c, struct wlr_box geo, int interact)
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
-run(char *startup_cmd)
|
||||||
|
+run(char **startup_cmd)
|
||||||
|
{
|
||||||
|
/* Add a Unix socket to the Wayland display. */
|
||||||
|
const char *socket = wl_display_add_socket_auto(dpy);
|
||||||
|
@@ -2183,7 +2183,7 @@ run(char *startup_cmd)
|
||||||
|
dup2(piperw[0], STDIN_FILENO);
|
||||||
|
close(piperw[0]);
|
||||||
|
close(piperw[1]);
|
||||||
|
- execl("/bin/sh", "/bin/sh", "-c", startup_cmd, NULL);
|
||||||
|
+ execvp(startup_cmd[0], startup_cmd);
|
||||||
|
die("startup: execl:");
|
||||||
|
}
|
||||||
|
dup2(piperw[1], STDOUT_FILENO);
|
||||||
|
@@ -3124,12 +3124,12 @@ xwaylandready(struct wl_listener *listener, void *data)
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
- char *startup_cmd = NULL;
|
||||||
|
+ char **startup_cmd = NULL;
|
||||||
|
int c;
|
||||||
|
|
||||||
|
while ((c = getopt(argc, argv, "s:hdv")) != -1) {
|
||||||
|
if (c == 's')
|
||||||
|
- startup_cmd = optarg;
|
||||||
|
+ *(startup_cmd = &argv[optind-1]) = optarg, argc = 0;
|
||||||
|
else if (c == 'd')
|
||||||
|
log_level = WLR_DEBUG;
|
||||||
|
else if (c == 'v')
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user