diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-11-20 11:17:31 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-11-21 07:14:27 +0300 |
| commit | cb47caba1101f6c0e718f02e1a1b9d8e579de70f (patch) | |
| tree | 080156fbe9c6e66e9b1768a821090dc2f7a6134b /src/backend | |
| parent | 6fcdb9242e65ed5825e7fda2a7935b412588b63a (diff) | |
| download | niri-cb47caba1101f6c0e718f02e1a1b9d8e579de70f.tar.gz niri-cb47caba1101f6c0e718f02e1a1b9d8e579de70f.tar.bz2 niri-cb47caba1101f6c0e718f02e1a1b9d8e579de70f.zip | |
tty: Initialize primary node before others
Co-authored-by: Christian Meissl <meissl.christian@gmail.com>
Co-authored-by: Scott McKendry <39483124+scottmckendry@users.noreply.github.com>
Diffstat (limited to 'src/backend')
| -rw-r--r-- | src/backend/tty.rs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/backend/tty.rs b/src/backend/tty.rs index daf2d532..1abbc2a2 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -507,7 +507,29 @@ impl Tty { } pub fn init(&mut self, niri: &mut Niri) { - for (device_id, path) in self.udev_dispatcher.clone().as_source_ref().device_list() { + let udev = self.udev_dispatcher.clone(); + let udev = udev.as_source_ref(); + + // Initialize the primary node first as later nodes might depend on the primary render node + // being available. + if let Some((primary_device_id, primary_device_path)) = udev + .device_list() + .find(|&(device_id, _)| device_id == self.primary_node.dev_id()) + { + if let Err(err) = self.device_added(primary_device_id, primary_device_path, niri) { + warn!( + "error adding primary node device, display-only devices may not work: {err:?}" + ); + } + } else { + warn!("primary node is missing, display-only devices may not work"); + }; + + for (device_id, path) in udev.device_list() { + if device_id == self.primary_node.dev_id() { + continue; + } + if let Err(err) = self.device_added(device_id, path, niri) { warn!("error adding device: {err:?}"); } |
