pause/unpause via SIGUSR1/SIGUSR2
This commit is contained in:
parent
d53ad1b376
commit
a378aa9b19
@ -148,7 +148,14 @@ The progress value can be set with a hint, too.
|
|||||||
=head1 MISCELLANEOUS
|
=head1 MISCELLANEOUS
|
||||||
|
|
||||||
Dunst can be paused by sending a notification with a summary of "DUNST_COMMAND_PAUSE"
|
Dunst can be paused by sending a notification with a summary of "DUNST_COMMAND_PAUSE"
|
||||||
and resumed with a summary of "DUNST_COMMAND_RESUME".
|
and resumed with a summary of "DUNST_COMMAND_RESUME". Alternatively you can send SIGUSR1 and SIGUSR2 to pause and unpause respectivly. For Example:
|
||||||
|
|
||||||
|
=item killall -SIGUSR1 dunst # pause
|
||||||
|
|
||||||
|
=item killall -SIGUSR2 dunst # resume
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
When paused dunst will not display any notifications but keep all notifications in a queue.
|
When paused dunst will not display any notifications but keep all notifications in a queue.
|
||||||
This can for example be wrapped around a screen locker (i3lock, slock) to prevent flickering
|
This can for example be wrapped around a screen locker (i3lock, slock) to prevent flickering
|
||||||
of notifications through the lock and to read all missed notifications after returning to the computer.
|
of notifications through the lock and to read all missed notifications after returning to the computer.
|
||||||
|
15
dunst.c
15
dunst.c
@ -12,6 +12,7 @@
|
|||||||
#include <fnmatch.h>
|
#include <fnmatch.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <signal.h>
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <X11/XKBlib.h>
|
#include <X11/XKBlib.h>
|
||||||
#include <X11/Xatom.h>
|
#include <X11/Xatom.h>
|
||||||
@ -108,6 +109,18 @@ void warn(const char *text, int urg);
|
|||||||
void init_shortcut(keyboard_shortcut * shortcut);
|
void init_shortcut(keyboard_shortcut * shortcut);
|
||||||
KeySym string_to_mask(char *str);
|
KeySym string_to_mask(char *str);
|
||||||
|
|
||||||
|
void pause_signal_handler(int sig)
|
||||||
|
{
|
||||||
|
if (sig == SIGUSR1) {
|
||||||
|
pause_display = true;
|
||||||
|
}
|
||||||
|
if (sig == SIGUSR2) {
|
||||||
|
pause_display = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
signal (sig, pause_signal_handler);
|
||||||
|
}
|
||||||
|
|
||||||
static void print_notification(notification * n)
|
static void print_notification(notification * n)
|
||||||
{
|
{
|
||||||
printf("{\n");
|
printf("{\n");
|
||||||
@ -1714,6 +1727,8 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
initdbus();
|
initdbus();
|
||||||
setup();
|
setup();
|
||||||
|
signal (SIGUSR1, pause_signal_handler);
|
||||||
|
signal (SIGUSR2, pause_signal_handler);
|
||||||
|
|
||||||
if (deprecated_mod)
|
if (deprecated_mod)
|
||||||
warn("-mod is deprecated. Use \"-key mod+key\" instead\n",
|
warn("-mod is deprecated. Use \"-key mod+key\" instead\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user