1
0
mirror of https://github.com/emersion/kanshi synced 2024-09-18 09:51:36 +02:00
Commit Graph

23 Commits

Author SHA1 Message Date
Jason Francis
afab6397ed Add optional varlink interface.
We don't want to fallback to libwayland's defaults, so WAYLAND_DISPLAY
needs to be set in env. Since IPC in the future is going to use
XDG_RUNTIME_DIR, we also require it.

Because these functions will be used in other parts of the code as well,
we rework the build system slightly to accommodate it.

Co-authored-by: Érico Nogueira <erico.erc@gmail.com>
2021-07-24 08:34:35 +02:00
Jason Francis
123a2f43f3 Add signal handlers to reload the config.
Signaling kanshi with SIGHUP will now reload the config.

Co-authored-by: Érico Nogueira <erico.erc@gmail.com>
2021-07-24 08:34:35 +02:00
Jason Francis
bec47f49e3 Factor out event loop.
This rework is necessary because it will allow us to add signal handlers
via signalfd and a varlink interface for IPC.

Co-authored-by: Érico Nogueira <erico.erc@gmail.com>
2021-07-24 08:34:35 +02:00
Érico Nogueira
dd3f91fbd3 Clean up exec_command.
Rename pid_t variables "pid", "child" to "child" and "grandchild", since
we were using "child" in comments to refer to the PID stored in "pid".

Use _exit(2) whenever exiting from a forked child; calling exit(3)
should't be done in such a context.

Add missing new lines to error messages. Arguably using stdio in this
context isn't safe either, but we aren't a threaded program and stderr
is always flushed when this function is called, so it won't ouput
previous buffer contents or deadlock.

Fix one _exit(2) call to return 1 as status code, since it should be
indicating a failure.

Add error message in case waitpid(2) fails.
2021-06-30 22:23:08 +02:00
Érico Nogueira
b6613c2eac Don't strdup command line arguments.
They live forever, so there's no need to manage them with dynamic
memory.
2021-06-30 22:23:08 +02:00
Kenny Levinsen
7095bedd25 Accept user-specified config path
Adds a -c,--config command line option that allows the user to specify
an arbitrary config path.
2020-10-08 19:31:03 +02:00
Guillaume Maudoux
acfad026c5
Properly reap children to avoid zombies 2020-09-14 15:29:15 +02:00
Jan Beich
846b725637 Add missing header after 5a30abdf0b
../main.c:82:3: error: use of undeclared identifier 'sigset_t'
                sigset_t set;
                ^
../main.c:83:3: error: implicit declaration of function 'sigemptyset' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                sigemptyset(&set);
                ^
../main.c:83:16: error: use of undeclared identifier 'set'
                sigemptyset(&set);
                             ^
../main.c:84:3: error: implicit declaration of function 'sigprocmask' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                sigprocmask(SIG_SETMASK, &set, NULL);
                ^
../main.c:84:15: error: use of undeclared identifier 'SIG_SETMASK'
                sigprocmask(SIG_SETMASK, &set, NULL);
                            ^
../main.c:84:29: error: use of undeclared identifier 'set'
                sigprocmask(SIG_SETMASK, &set, NULL);
                                          ^
2020-04-02 23:22:55 +02:00
James Walmsley
86d6aff25f Select highest refresh rate for selected mode when none is specified. 2020-01-13 22:41:20 +01:00
James Walmsley
3d6b62ff0d Be tolerant to matching refresh rates that are a few points off. 2020-01-11 10:11:53 +01:00
Guillaume Maudoux
5a30abdf0b Add exec to execute commands when a configuration is matched 2019-09-20 12:59:04 +03:00
Guillaume Maudoux
15029bd28b Allow names to distinguish configurations 2019-09-20 12:59:04 +03:00
Simon Ser
38d27474b6 Fix head matches indexing
The `matches` array contained heads *and* was indexed by head. This didn't
make a lot of sense.

Instead, make it contain profile outputs and indexed by head.
2019-06-07 23:03:16 +03:00
Simon Ser
32666e0f58
Fix index in apply_profile loop
Closes: https://github.com/emersion/kanshi/issues/32
2019-06-06 08:35:47 +03:00
Simon Ser
72498b95dc
Fix index in match_profile 2019-06-06 08:33:58 +03:00
Simon Ser
46d1b9feb8
Make match_profile_output more strict
If "DP-1" is specified in the config, it could match a connected "eDP-1" head.
2019-06-06 08:29:28 +03:00
Simon Ser
a348c8e875
Print profile output <-> head matching 2019-06-06 08:26:54 +03:00
Simon Ser
3a845a04ec Apply profile 2019-06-01 13:25:09 +03:00
Simon Ser
3de4464f23 Match profiles 2019-06-01 13:25:09 +03:00
Simon Ser
7ded2ed05c Extract config file logic into read_config 2019-06-01 13:25:09 +03:00
Simon Ser
7952a0b691 Listen to output-management events 2019-06-01 13:25:09 +03:00
Simon Ser
4f0ee6a165 Use XDG_CONFIG_HOME 2019-06-01 13:25:09 +03:00
Simon Ser
ddb8682b9e Add basic parser 2019-06-01 13:25:09 +03:00