Implement focus-monitor to focus a specific monitor by output.

This commit is contained in:
Annika Hannig
2025-02-20 20:25:43 +01:00
committed by Ivan Molodetskikh
parent 47dd338340
commit 993c5ce8af
3 changed files with 36 additions and 0 deletions
+21
View File
@@ -1568,6 +1568,7 @@ pub enum Action {
FocusMonitorUp,
FocusMonitorPrevious,
FocusMonitorNext,
FocusMonitor(#[knuffel(argument)] String),
MoveWindowToMonitorLeft,
MoveWindowToMonitorRight,
MoveWindowToMonitorDown,
@@ -1770,6 +1771,7 @@ impl From<niri_ipc::Action> for Action {
niri_ipc::Action::FocusMonitorUp {} => Self::FocusMonitorUp,
niri_ipc::Action::FocusMonitorPrevious {} => Self::FocusMonitorPrevious,
niri_ipc::Action::FocusMonitorNext {} => Self::FocusMonitorNext,
niri_ipc::Action::FocusMonitor { output } => Self::FocusMonitor(output),
niri_ipc::Action::MoveWindowToMonitorLeft {} => Self::MoveWindowToMonitorLeft,
niri_ipc::Action::MoveWindowToMonitorRight {} => Self::MoveWindowToMonitorRight,
niri_ipc::Action::MoveWindowToMonitorDown {} => Self::MoveWindowToMonitorDown,
@@ -3770,6 +3772,7 @@ mod tests {
Mod+T allow-when-locked=true { spawn "alacritty"; }
Mod+Q hotkey-overlay-title=null { close-window; }
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+O { focus-monitor "eDP-1"; }
Mod+Ctrl+Shift+L { move-window-to-monitor-right; }
Mod+Comma { consume-window-into-column; }
Mod+1 { focus-workspace 1; }
@@ -4606,6 +4609,24 @@ mod tests {
allow_inhibiting: true,
hotkey_overlay_title: None,
},
Bind {
key: Key {
trigger: Keysym(
XK_o,
),
modifiers: Modifiers(
SHIFT | COMPOSITOR,
),
},
action: FocusMonitor(
"eDP-1",
),
repeat: true,
cooldown: None,
allow_when_locked: false,
allow_inhibiting: true,
hotkey_overlay_title: None,
},
Bind {
key: Key {
trigger: Keysym(