aboutsummaryrefslogtreecommitdiff
path: root/src/niri.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-12-20 08:49:18 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-12-22 15:19:46 +0300
commitfbb0054232fb859636ea7e32bdc45c71e185f0c6 (patch)
tree0a36a33a9b38c91423854c17eb96ace9bd10f14a /src/niri.rs
parent2d3c36edae2cbce10ec57995c5a4418fb2424bd2 (diff)
downloadniri-fbb0054232fb859636ea7e32bdc45c71e185f0c6.tar.gz
niri-fbb0054232fb859636ea7e32bdc45c71e185f0c6.tar.bz2
niri-fbb0054232fb859636ea7e32bdc45c71e185f0c6.zip
Add a Headless backend for tests
Rendering and stuff is unimplemented.
Diffstat (limited to 'src/niri.rs')
-rw-r--r--src/niri.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/niri.rs b/src/niri.rs
index d5cb5fdb..f9a21efb 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -102,7 +102,7 @@ use smithay::wayland::xdg_foreign::XdgForeignState;
use crate::animation::Clock;
use crate::backend::tty::SurfaceDmabufFeedback;
-use crate::backend::{Backend, RenderResult, Tty, Winit};
+use crate::backend::{Backend, Headless, RenderResult, Tty, Winit};
use crate::cursor::{CursorManager, CursorTextureCache, RenderCursor, XCursor};
#[cfg(feature = "dbus")]
use crate::dbus::gnome_shell_introspect::{self, IntrospectToNiri, NiriToIntrospect};
@@ -520,6 +520,7 @@ impl State {
event_loop: LoopHandle<'static, State>,
stop_signal: LoopSignal,
display: Display<State>,
+ headless: bool,
) -> Result<Self, Box<dyn std::error::Error>> {
let _span = tracy_client::span!("State::new");
@@ -528,7 +529,10 @@ impl State {
let has_display =
env::var_os("WAYLAND_DISPLAY").is_some() || env::var_os("DISPLAY").is_some();
- let mut backend = if has_display {
+ let mut backend = if headless {
+ let headless = Headless::new();
+ Backend::Headless(headless)
+ } else if has_display {
let winit = Winit::new(config.clone(), event_loop.clone())?;
Backend::Winit(winit)
} else {