diff options
| author | Julian Schuler <julianschuler@users.noreply.github.com> | 2024-12-15 16:04:42 +0100 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-01-02 15:15:23 +0300 |
| commit | c17d4dc050327c974535369b0b70726b269fd82b (patch) | |
| tree | bbaf75157b6cd20826bde16a67f60f3484746c3e /src/input | |
| parent | 4e33f4552226fbadb156ca16b483cda10d04b433 (diff) | |
| download | niri-c17d4dc050327c974535369b0b70726b269fd82b.tar.gz niri-c17d4dc050327c974535369b0b70726b269fd82b.tar.bz2 niri-c17d4dc050327c974535369b0b70726b269fd82b.zip | |
Add actions to focus/move to next/previous monitor
Diffstat (limited to 'src/input')
| -rw-r--r-- | src/input/mod.rs | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/input/mod.rs b/src/input/mod.rs index c86e1467..f30bf168 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -1186,6 +1186,22 @@ impl State { } } } + Action::FocusMonitorPrevious => { + if let Some(output) = self.niri.output_previous() { + self.niri.layout.focus_output(&output); + if !self.maybe_warp_cursor_to_focus_centered() { + self.move_cursor_to_output(&output); + } + } + } + Action::FocusMonitorNext => { + if let Some(output) = self.niri.output_next() { + self.niri.layout.focus_output(&output); + if !self.maybe_warp_cursor_to_focus_centered() { + self.move_cursor_to_output(&output); + } + } + } Action::MoveWindowToMonitorLeft => { if let Some(output) = self.niri.output_left() { self.niri.layout.move_to_output(None, &output, None); @@ -1222,6 +1238,24 @@ impl State { } } } + Action::MoveWindowToMonitorPrevious => { + if let Some(output) = self.niri.output_previous() { + self.niri.layout.move_to_output(None, &output, None); + self.niri.layout.focus_output(&output); + if !self.maybe_warp_cursor_to_focus_centered() { + self.move_cursor_to_output(&output); + } + } + } + Action::MoveWindowToMonitorNext => { + if let Some(output) = self.niri.output_next() { + self.niri.layout.move_to_output(None, &output, None); + self.niri.layout.focus_output(&output); + if !self.maybe_warp_cursor_to_focus_centered() { + self.move_cursor_to_output(&output); + } + } + } Action::MoveColumnToMonitorLeft => { if let Some(output) = self.niri.output_left() { self.niri.layout.move_column_to_output(&output); @@ -1258,6 +1292,24 @@ impl State { } } } + Action::MoveColumnToMonitorPrevious => { + if let Some(output) = self.niri.output_previous() { + self.niri.layout.move_column_to_output(&output); + self.niri.layout.focus_output(&output); + if !self.maybe_warp_cursor_to_focus_centered() { + self.move_cursor_to_output(&output); + } + } + } + Action::MoveColumnToMonitorNext => { + if let Some(output) = self.niri.output_next() { + self.niri.layout.move_column_to_output(&output); + self.niri.layout.focus_output(&output); + if !self.maybe_warp_cursor_to_focus_centered() { + self.move_cursor_to_output(&output); + } + } + } Action::SetColumnWidth(change) => { self.niri.layout.set_column_width(change); } @@ -1328,6 +1380,22 @@ impl State { } } } + Action::MoveWorkspaceToMonitorPrevious => { + if let Some(output) = self.niri.output_previous() { + self.niri.layout.move_workspace_to_output(&output); + if !self.maybe_warp_cursor_to_focus_centered() { + self.move_cursor_to_output(&output); + } + } + } + Action::MoveWorkspaceToMonitorNext => { + if let Some(output) = self.niri.output_next() { + self.niri.layout.move_workspace_to_output(&output); + if !self.maybe_warp_cursor_to_focus_centered() { + self.move_cursor_to_output(&output); + } + } + } Action::ToggleWindowFloating => { self.niri.layout.toggle_window_floating(None); // FIXME: granular |
