mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-21 02:01:55 +07:00
add {toggle,set,unset}-urgent cli actions
This commit is contained in:
committed by
Ivan Molodetskikh
parent
398bc78ea0
commit
9d3d7cb0e9
@@ -1874,6 +1874,12 @@ pub enum Action {
|
||||
ToggleOverview,
|
||||
OpenOverview,
|
||||
CloseOverview,
|
||||
#[knuffel(skip)]
|
||||
ToggleUrgent(u64),
|
||||
#[knuffel(skip)]
|
||||
SetUrgent(u64),
|
||||
#[knuffel(skip)]
|
||||
UnsetUrgent(u64),
|
||||
}
|
||||
|
||||
impl From<niri_ipc::Action> for Action {
|
||||
@@ -2145,6 +2151,9 @@ impl From<niri_ipc::Action> for Action {
|
||||
niri_ipc::Action::ToggleOverview {} => Self::ToggleOverview,
|
||||
niri_ipc::Action::OpenOverview {} => Self::OpenOverview,
|
||||
niri_ipc::Action::CloseOverview {} => Self::CloseOverview,
|
||||
niri_ipc::Action::ToggleUrgent { id } => Self::ToggleUrgent(id),
|
||||
niri_ipc::Action::SetUrgent { id } => Self::SetUrgent(id),
|
||||
niri_ipc::Action::UnsetUrgent { id } => Self::UnsetUrgent(id),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -803,6 +803,24 @@ pub enum Action {
|
||||
OpenOverview {},
|
||||
/// Close the Overview.
|
||||
CloseOverview {},
|
||||
/// Toggle urgent status of a window.
|
||||
ToggleUrgent {
|
||||
/// Id of the window to toggle urgent.
|
||||
#[cfg_attr(feature = "clap", arg(long))]
|
||||
id: u64,
|
||||
},
|
||||
/// Set urgent status of a window.
|
||||
SetUrgent {
|
||||
/// Id of the window to set urgent.
|
||||
#[cfg_attr(feature = "clap", arg(long))]
|
||||
id: u64,
|
||||
},
|
||||
/// Unset urgent status of a window.
|
||||
UnsetUrgent {
|
||||
/// Id of the window to unset urgent.
|
||||
#[cfg_attr(feature = "clap", arg(long))]
|
||||
id: u64,
|
||||
},
|
||||
}
|
||||
|
||||
/// Change in window or column size.
|
||||
|
||||
@@ -1971,6 +1971,37 @@ impl State {
|
||||
self.niri.queue_redraw_all();
|
||||
}
|
||||
}
|
||||
Action::ToggleUrgent(id) => {
|
||||
let window = self
|
||||
.niri
|
||||
.layout
|
||||
.workspaces_mut()
|
||||
.find_map(|ws| ws.windows_mut().find(|w| w.id().get() == id));
|
||||
if let Some(window) = window {
|
||||
let urgent = window.is_urgent();
|
||||
window.set_urgent(!urgent);
|
||||
}
|
||||
}
|
||||
Action::SetUrgent(id) => {
|
||||
let window = self
|
||||
.niri
|
||||
.layout
|
||||
.workspaces_mut()
|
||||
.find_map(|ws| ws.windows_mut().find(|w| w.id().get() == id));
|
||||
if let Some(window) = window {
|
||||
window.set_urgent(true);
|
||||
}
|
||||
}
|
||||
Action::UnsetUrgent(id) => {
|
||||
let window = self
|
||||
.niri
|
||||
.layout
|
||||
.workspaces_mut()
|
||||
.find_map(|ws| ws.windows_mut().find(|w| w.id().get() == id));
|
||||
if let Some(window) = window {
|
||||
window.set_urgent(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user