From 9124c231f426318e970c62647c1ddabed3c9a389 Mon Sep 17 00:00:00 2001 From: Karsten Gebbert Date: Mon, 3 Oct 2022 17:08:32 +0200 Subject: [PATCH] respond to SIGUSR1 by reloading config (#3952) * respond to SIGUSR1 by reloading config * document USR1 signal handling --- book/src/configuration.md | 4 ++++ helix-term/src/application.rs | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/book/src/configuration.md b/book/src/configuration.md index 276bd7d4a97a..a5092b9d6342 100644 --- a/book/src/configuration.md +++ b/book/src/configuration.md @@ -28,6 +28,10 @@ hidden = false You may also specify a file to use for configuration with the `-c` or `--config` CLI argument: `hx -c path/to/custom-config.toml`. +It is also possible to trigger configuration file reloading by sending the `USR1` +signal to the helix process, e.g. via `pkill -USR1 hx`. This is only supported +on unix operating systems. + ## Editor ### `[editor]` Section diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index cd499f1c3d11..ee0e08efd96c 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -224,8 +224,8 @@ impl Application { #[cfg(windows)] let signals = futures_util::stream::empty(); #[cfg(not(windows))] - let signals = - Signals::new(&[signal::SIGTSTP, signal::SIGCONT]).context("build signal handler")?; + let signals = Signals::new(&[signal::SIGTSTP, signal::SIGCONT, signal::SIGUSR1]) + .context("build signal handler")?; let app = Self { compositor, @@ -426,6 +426,10 @@ impl Application { self.compositor.load_cursor(); self.render(); } + signal::SIGUSR1 => { + self.refresh_config(); + self.render(); + } _ => unreachable!(), } }