server/client: add support for sending SIGUSR to footclient

This patch adds the IPC infrastructure necessary to propagate
SIGUSR1/SIGUSR2 from a footclient process to the server process.

By targeting a particular footclient instance, only that particular
instance changes theme. This is different from when targeting the
server process, where all instances change theme.

Closes #2156
This commit is contained in:
Daniel Eklöf 2025-07-31 17:37:19 +02:00
parent 70d99a8051
commit b13a8f12d2
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
6 changed files with 151 additions and 12 deletions

View file

@ -694,14 +694,14 @@ variables to unset may be defined in *foot.ini*(5).
The following signals have special meaning in foot:
- SIGUSR1: switch to color theme 1 (i.e. use the *[colors]* section).
- SIGUSR2: switch to color theme 2 (i.e. use the *[colors2]* section)-
- SIGUSR2: switch to color theme 2 (i.e. use the *[colors2]* section).
Note: you can send SIGUSR1/SIGUSR2 to a *foot --server* process too,
in which case all client instances will switch theme. Furthermore, all
future client instances will also use the selected theme.
Sending SIGUSR1/SIGUSR2 to a footclient instance is currently not
supported.
You can also send SIGUSR1/SIGUSR2 to a footclient instance, see
*footclient*(1) for details.
# BUGS

View file

@ -189,6 +189,21 @@ variables may be defined in *foot.ini*(5).
In addition to the variables listed above, custom environment
variables to unset may be defined in *foot.ini*(5).
# Signals
The following signals have special meaning in footclient:
- SIGUSR1: switch to color theme 1 (i.e. use the *[colors]* section).
- SIGUSR2: switch to color theme 2 (i.e. use the *[colors2]* section).
When sending SIGUSR1/SIGUSR2 to a footclient instance, the theme is
changed in that instance only. This is different from when you send
SIGUSR1/SIGUSR2 to the server process, where all instances change the
theme.
Note: for obvious reasons, this is not supported when footclient is
started with *--no-wait*.
# SEE ALSO
*foot*(1)