diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2018-11-27 23:27:44 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2018-11-27 23:27:44 -0500 |
| commit | e7f0d57b0bc909789f2e3b341d0cc338da45c17d (patch) | |
| tree | 1546629686b2afe4c7dbae18eb4233cbf0f0b4c6 /swaynag/swaynag.c | |
| parent | 12e7e5c5b3a5d15f2cce95fa3a6b38f3ce416db9 (diff) | |
Implement swaynag -B/--button-no-terminal
In `i3 4.16`, `i3-nagbar` introduces the flags `-B/--button-no-terminal`
to run the action directly instead of inside a terminal. This implements
the flags for swaynag for compatibility.
Since swaynag does not use an equivalent to `i3-sensible-terminal`, the
flags `-b/--button` only uses a terminal when the environment variable
`TERMINAL` is set, otherwise it acts the same as these new flags.
Diffstat (limited to 'swaynag/swaynag.c')
| -rw-r--r-- | swaynag/swaynag.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/swaynag/swaynag.c b/swaynag/swaynag.c index 74e127b6..a2a0b412 100644 --- a/swaynag/swaynag.c +++ b/swaynag/swaynag.c @@ -49,14 +49,17 @@ static void swaynag_button_execute(struct swaynag *swaynag, if (fork() == 0) { // Child of the child. Will be reparented to the init process char *terminal = getenv("TERMINAL"); - if (terminal && strlen(terminal)) { + if (button->terminal && terminal && strlen(terminal)) { wlr_log(WLR_DEBUG, "Found $TERMINAL: %s", terminal); if (!terminal_execute(terminal, button->action)) { swaynag_destroy(swaynag); exit(EXIT_FAILURE); } } else { - wlr_log(WLR_DEBUG, "$TERMINAL not found. Running directly"); + if (button->terminal) { + wlr_log(WLR_DEBUG, + "$TERMINAL not found. Running directly"); + } execl("/bin/sh", "/bin/sh", "-c", button->action, NULL); } } |
