Reload on SIGHUP
This patch makes surf reload its pages when it receives a SIGHUP signal. This makes it easier for shell scripts to trigger surf to reload. I'm aware of using xdotool to trigger ctrl+r keypresses for reloading [1] but I wasn't able to get that to work in a general way. I'm sending this here in case surf maintainers and users would like to include this in core - if not I will submit it to the wiki. Regards, Charles [1] http://surf.suckless.org/files/autorefresh Signed-off-by: Christoph Lohmann <20h@r-36.net>
This commit is contained in:
parent
3d81a0f0b7
commit
0ac6bf5a97
1 changed files with 13 additions and 0 deletions
13
surf.c
13
surf.c
|
@ -197,6 +197,7 @@ static void scroll(GtkAdjustment *a, const Arg *arg);
|
|||
static void setatom(Client *c, int a, const char *v);
|
||||
static void setup(void);
|
||||
static void sigchld(int unused);
|
||||
static void sighup(int unused);
|
||||
static void source(Client *c, const Arg *arg);
|
||||
static void spawn(Client *c, const Arg *arg);
|
||||
static void stop(Client *c, const Arg *arg);
|
||||
|
@ -1300,6 +1301,8 @@ setup(void)
|
|||
|
||||
/* clean up any zombies immediately */
|
||||
sigchld(0);
|
||||
if (signal(SIGHUP, sighup) == SIG_ERR)
|
||||
die("Can't install SIGHUP handler");
|
||||
gtk_init(NULL, NULL);
|
||||
|
||||
dpy = GDK_DISPLAY();
|
||||
|
@ -1394,6 +1397,16 @@ sigchld(int unused)
|
|||
while (0 < waitpid(-1, NULL, WNOHANG));
|
||||
}
|
||||
|
||||
void
|
||||
sighup(int unused)
|
||||
{
|
||||
Arg a = { .b = FALSE };
|
||||
Client *c;
|
||||
|
||||
for (c = clients; c; c = c->next)
|
||||
reload(c, &a);
|
||||
}
|
||||
|
||||
void
|
||||
source(Client *c, const Arg *arg)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue