mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-23 02:05:33 +07:00
handle SIGINT, SIGTERM, SIGHUP
This commit is contained in:
committed by
Ivan Molodetskikh
parent
7a2379ad35
commit
22e43193e0
Generated
+1
@@ -494,6 +494,7 @@ dependencies = [
|
|||||||
"async-task",
|
"async-task",
|
||||||
"bitflags 2.9.1",
|
"bitflags 2.9.1",
|
||||||
"futures-io",
|
"futures-io",
|
||||||
|
"nix 0.29.0",
|
||||||
"polling",
|
"polling",
|
||||||
"rustix 0.38.44",
|
"rustix 0.38.44",
|
||||||
"slab",
|
"slab",
|
||||||
|
|||||||
+1
-1
@@ -57,7 +57,7 @@ async-io = { version = "2.4.1", optional = true }
|
|||||||
atomic = "0.6.1"
|
atomic = "0.6.1"
|
||||||
bitflags.workspace = true
|
bitflags.workspace = true
|
||||||
bytemuck = { version = "1.23.1", features = ["derive"] }
|
bytemuck = { version = "1.23.1", features = ["derive"] }
|
||||||
calloop = { version = "0.14.2", features = ["executor", "futures-io"] }
|
calloop = { version = "0.14.2", features = ["executor", "futures-io", "signals"] }
|
||||||
clap = { workspace = true, features = ["string"] }
|
clap = { workspace = true, features = ["string"] }
|
||||||
clap_complete = "4.5.55"
|
clap_complete = "4.5.55"
|
||||||
clap_complete_nushell = "4.5.8"
|
clap_complete_nushell = "4.5.8"
|
||||||
|
|||||||
+15
-1
@@ -9,6 +9,7 @@ use std::path::{Path, PathBuf};
|
|||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
use std::{env, mem};
|
use std::{env, mem};
|
||||||
|
|
||||||
|
use calloop::signals::{Signal, Signals};
|
||||||
use calloop::EventLoop;
|
use calloop::EventLoop;
|
||||||
use clap::{CommandFactory, Parser};
|
use clap::{CommandFactory, Parser};
|
||||||
use clap_complete::Shell;
|
use clap_complete::Shell;
|
||||||
@@ -192,8 +193,21 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
|
|
||||||
store_and_increase_nofile_rlimit();
|
store_and_increase_nofile_rlimit();
|
||||||
|
|
||||||
|
// Create the main event loop.
|
||||||
|
let mut event_loop = EventLoop::<State>::try_new().unwrap();
|
||||||
|
|
||||||
|
// Handle Ctrl+C and other signals.
|
||||||
|
event_loop
|
||||||
|
.handle()
|
||||||
|
.insert_source(
|
||||||
|
Signals::new(&[Signal::SIGINT, Signal::SIGTERM, Signal::SIGHUP]).unwrap(),
|
||||||
|
|_, _, state| {
|
||||||
|
state.niri.stop_signal.stop();
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
// Create the compositor.
|
// Create the compositor.
|
||||||
let mut event_loop = EventLoop::try_new().unwrap();
|
|
||||||
let display = Display::new().unwrap();
|
let display = Display::new().unwrap();
|
||||||
let mut state = State::new(
|
let mut state = State::new(
|
||||||
config,
|
config,
|
||||||
|
|||||||
Reference in New Issue
Block a user