mirror of
https://github.com/swaywm/sway.git
synced 2026-04-29 06:46:22 -04:00
swayidle: add ability to wait for command to finish
This commit is contained in:
parent
cab5449b1d
commit
9a6f4bc0d9
2 changed files with 18 additions and 3 deletions
|
|
@ -35,6 +35,7 @@ struct swayidle_state {
|
|||
struct wl_event_loop *event_loop;
|
||||
list_t *timeout_cmds; // struct swayidle_timeout_cmd *
|
||||
char *lock_cmd;
|
||||
bool wait;
|
||||
} state;
|
||||
|
||||
struct swayidle_timeout_cmd {
|
||||
|
|
@ -54,7 +55,9 @@ static void cmd_exec(char *param) {
|
|||
wlr_log(WLR_DEBUG, "Cmd exec %s", param);
|
||||
pid_t pid = fork();
|
||||
if (pid == 0) {
|
||||
pid = fork();
|
||||
if (!state.wait) {
|
||||
pid = fork();
|
||||
}
|
||||
if (pid == 0) {
|
||||
char *const cmd[] = { "sh", "-c", param, NULL, };
|
||||
execvp(cmd[0], cmd);
|
||||
|
|
@ -325,16 +328,20 @@ static int parse_args(int argc, char *argv[]) {
|
|||
bool debug = false;
|
||||
|
||||
int c;
|
||||
while ((c = getopt(argc, argv, "hd")) != -1) {
|
||||
while ((c = getopt(argc, argv, "hdw")) != -1) {
|
||||
switch (c) {
|
||||
case 'd':
|
||||
debug = true;
|
||||
break;
|
||||
case 'w':
|
||||
state.wait = true;
|
||||
break;
|
||||
case 'h':
|
||||
case '?':
|
||||
printf("Usage: %s [OPTIONS]\n", argv[0]);
|
||||
printf(" -d\tdebug\n");
|
||||
printf(" -h\tthis help menu\n");
|
||||
printf(" -d\tdebug\n");
|
||||
printf(" -w\twait for command to finish\n");
|
||||
return 1;
|
||||
default:
|
||||
return 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue