summaryrefslogtreecommitdiffstats
path: root/include/sway/swaynag.h
blob: ac0086a167f5fe3efb024f5a88fe2bd2093e4568 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef _SWAY_SWAYNAG_H
#define _SWAY_SWAYNAG_H

struct swaynag_instance {
	const char *args;
	pid_t pid;
	int fd[2];
	bool detailed;
};

// Copy all fields of one instance to another
void swaynag_clone(struct swaynag_instance *dest,
		struct swaynag_instance *src);

// Spawn swaynag. If swaynag->detailed, then swaynag->fd[1] will left open
// so it can be written to. Call swaynag_show when done writing. This will
// be automatically called by swaynag_log if the instance is not spawned and
// swaynag->detailed is true.
bool swaynag_spawn(const char *swaynag_command,
		struct swaynag_instance *swaynag);

// Kill the swaynag instance
void swaynag_kill(struct swaynag_instance *swaynag);

// Write a log message to swaynag->fd[1]. This will fail when swaynag->detailed
// is false.
void swaynag_log(const char *swaynag_command, struct swaynag_instance *swaynag,
		const char *fmt, ...);

// If swaynag->detailed, close swaynag->fd[1] so swaynag displays
void swaynag_show(struct swaynag_instance *swaynag);

#endif