Add logging for niri events

This commit is contained in:
Gergő Sályi 2025-04-10 13:46:14 +02:00
parent bcb60ea839
commit 94fe622d44

View file

@ -1,7 +1,10 @@
use std::io; use std::io;
use super::{CompositorInterface, WorkspaceVisible, EventSender};
use log::debug;
use niri_ipc::{socket::Socket, Event, Request, Response, Workspace}; use niri_ipc::{socket::Socket, Event, Request, Response, Workspace};
use super::{CompositorInterface, WorkspaceVisible, EventSender};
pub struct NiriConnectionTask {} pub struct NiriConnectionTask {}
impl NiriConnectionTask { impl NiriConnectionTask {
@ -28,11 +31,13 @@ impl CompositorInterface for NiriConnectionTask {
while let Ok(event) = callback() { while let Ok(event) = callback() {
match event { match event {
Event::WorkspaceActivated { id, focused: _ } => { Event::WorkspaceActivated { id, focused: _ } => {
debug!("Niri event: workspace id {id} activated");
let visible_workspace = let visible_workspace =
find_workspace(&workspaces_state, id); find_workspace(&workspaces_state, id);
event_sender.send(visible_workspace); event_sender.send(visible_workspace);
}, },
Event::WorkspacesChanged { workspaces } => { Event::WorkspacesChanged { workspaces } => {
debug!("Niri event: workspaces changed: {workspaces:?}");
workspaces_state = workspaces workspaces_state = workspaces
}, },
_ => {}, _ => {},
@ -44,7 +49,7 @@ impl CompositorInterface for NiriConnectionTask {
fn find_workspace(workspaces: &[Workspace], id: u64) -> WorkspaceVisible { fn find_workspace(workspaces: &[Workspace], id: u64) -> WorkspaceVisible {
let workspace = workspaces.iter() let workspace = workspaces.iter()
.find(|workspace| workspace.id == id) .find(|workspace| workspace.id == id)
.expect("Unknown niri workspace id {id}"); .unwrap_or_else(|| panic!("Unknown niri workspace id {id}"));
let workspace_name = workspace.name.clone() let workspace_name = workspace.name.clone()
.unwrap_or_else(|| format!("{}", workspace.idx)); .unwrap_or_else(|| format!("{}", workspace.idx));
let output = workspace.output.clone().unwrap_or_default(); let output = workspace.output.clone().unwrap_or_default();