diff options
Diffstat (limited to 'src/input.rs')
| -rw-r--r-- | src/input.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/input.rs b/src/input.rs index b57c4c20..83f186fd 100644 --- a/src/input.rs +++ b/src/input.rs @@ -17,7 +17,7 @@ use smithay::input::pointer::{ use smithay::utils::SERIAL_COUNTER; use smithay::wayland::tablet_manager::{TabletDescriptor, TabletSeatTrait}; -use crate::config::{Action, Binds, Modifiers}; +use crate::config::{Action, Binds, LayoutAction, Modifiers}; use crate::niri::State; use crate::screenshot_ui::ScreenshotUi; use crate::utils::{center, get_monotonic_time, spawn}; @@ -90,6 +90,7 @@ impl State { | Action::ChangeVt(_) | Action::Suspend | Action::PowerOffMonitors + | Action::SwitchLayout(_) ) { return; @@ -186,6 +187,16 @@ impl State { self.niri.layout.toggle_fullscreen(&window); } } + Action::SwitchLayout(action) => { + self.niri + .seat + .get_keyboard() + .unwrap() + .with_kkb_state(self, |mut state| match action { + LayoutAction::Next => state.cycle_next_layout(), + LayoutAction::Prev => state.cycle_prev_layout(), + }); + } Action::MoveColumnLeft => { self.niri.layout.move_left(); // FIXME: granular |
