aboutsummaryrefslogtreecommitdiff
path: root/src/input
diff options
context:
space:
mode:
Diffstat (limited to 'src/input')
-rw-r--r--src/input/mod.rs68
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