aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-09-03 13:25:43 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-09-03 13:25:43 +0400
commitdcc6a557774c8af0dc62839308130ee6a71fc629 (patch)
treea0b4ff5d064171da4cba46536876af844d018cc4 /src/main.rs
parent73d7a1d73dac14bcff43a1d595847b7c0bf14ec7 (diff)
downloadniri-dcc6a557774c8af0dc62839308130ee6a71fc629.tar.gz
niri-dcc6a557774c8af0dc62839308130ee6a71fc629.tar.bz2
niri-dcc6a557774c8af0dc62839308130ee6a71fc629.zip
Move LoopData into niri file
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs39
1 files changed, 2 insertions, 37 deletions
diff --git a/src/main.rs b/src/main.rs
index 2e77fd42..c5912c6f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -15,11 +15,9 @@ mod utils;
use std::env;
use std::ffi::OsString;
-use backend::{Backend, Tty, Winit};
use clap::Parser;
-use niri::Niri;
+use niri::{Data, Niri};
use smithay::reexports::calloop::EventLoop;
-use smithay::reexports::wayland_server::Display;
use tracing_subscriber::EnvFilter;
#[derive(Parser)]
@@ -30,15 +28,6 @@ struct Cli {
command: Vec<OsString>,
}
-pub struct LoopData {
- niri: Niri,
- backend: Backend,
-
- // Last so that it's dropped after the Smithay state in Niri and related state in Tty.
- // Otherwise it will segfault on quit.
- display: Display<Niri>,
-}
-
fn main() {
env::set_var("RUST_BACKTRACE", "1");
@@ -54,31 +43,7 @@ fn main() {
let _client = tracy_client::Client::start();
let mut event_loop = EventLoop::try_new().unwrap();
-
- let has_display = env::var_os("WAYLAND_DISPLAY").is_some() || env::var_os("DISPLAY").is_some();
-
- let backend = if has_display {
- Backend::Winit(Winit::new(event_loop.handle()))
- } else {
- Backend::Tty(Tty::new(event_loop.handle()))
- };
-
- let mut display = Display::new().unwrap();
- let niri = Niri::new(
- event_loop.handle(),
- event_loop.get_signal(),
- &mut display,
- backend.seat_name(),
- );
-
- let mut data = LoopData {
- niri,
- display,
-
- backend,
- };
-
- data.backend.init(&mut data.niri);
+ let mut data = Data::new(event_loop.handle(), event_loop.get_signal());
if let Some((command, args)) = cli.command.split_first() {
if let Err(err) = std::process::Command::new(command).args(args).spawn() {