mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-22 02:01:55 +07:00
Add move-column-to-{first,last}
This commit is contained in:
@@ -205,6 +205,8 @@ binds {
|
||||
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
|
||||
Mod+Shift+H { focus-monitor-left; }
|
||||
Mod+Shift+J { focus-monitor-down; }
|
||||
|
||||
@@ -321,6 +321,8 @@ pub enum Action {
|
||||
FocusWindowOrWorkspaceUp,
|
||||
MoveColumnLeft,
|
||||
MoveColumnRight,
|
||||
MoveColumnToFirst,
|
||||
MoveColumnToLast,
|
||||
MoveWindowDown,
|
||||
MoveWindowUp,
|
||||
MoveWindowDownOrToWorkspaceDown,
|
||||
|
||||
@@ -331,6 +331,16 @@ impl State {
|
||||
// FIXME: granular
|
||||
self.niri.queue_redraw_all();
|
||||
}
|
||||
Action::MoveColumnToFirst => {
|
||||
self.niri.layout.move_column_to_first();
|
||||
// FIXME: granular
|
||||
self.niri.queue_redraw_all();
|
||||
}
|
||||
Action::MoveColumnToLast => {
|
||||
self.niri.layout.move_column_to_last();
|
||||
// FIXME: granular
|
||||
self.niri.queue_redraw_all();
|
||||
}
|
||||
Action::MoveWindowDown => {
|
||||
self.niri.layout.move_down();
|
||||
// FIXME: granular
|
||||
|
||||
@@ -774,6 +774,20 @@ impl<W: LayoutElement> Layout<W> {
|
||||
monitor.move_right();
|
||||
}
|
||||
|
||||
pub fn move_column_to_first(&mut self) {
|
||||
let Some(monitor) = self.active_monitor() else {
|
||||
return;
|
||||
};
|
||||
monitor.move_column_to_first();
|
||||
}
|
||||
|
||||
pub fn move_column_to_last(&mut self) {
|
||||
let Some(monitor) = self.active_monitor() else {
|
||||
return;
|
||||
};
|
||||
monitor.move_column_to_last();
|
||||
}
|
||||
|
||||
pub fn move_down(&mut self) {
|
||||
let Some(monitor) = self.active_monitor() else {
|
||||
return;
|
||||
@@ -1546,6 +1560,8 @@ mod tests {
|
||||
FocusWindowOrWorkspaceUp,
|
||||
MoveColumnLeft,
|
||||
MoveColumnRight,
|
||||
MoveColumnToFirst,
|
||||
MoveColumnToLast,
|
||||
MoveWindowDown,
|
||||
MoveWindowUp,
|
||||
MoveWindowDownOrToWorkspaceDown,
|
||||
@@ -1659,6 +1675,8 @@ mod tests {
|
||||
Op::FocusWindowOrWorkspaceUp => layout.focus_window_or_workspace_up(),
|
||||
Op::MoveColumnLeft => layout.move_left(),
|
||||
Op::MoveColumnRight => layout.move_right(),
|
||||
Op::MoveColumnToFirst => layout.move_column_to_first(),
|
||||
Op::MoveColumnToLast => layout.move_column_to_last(),
|
||||
Op::MoveWindowDown => layout.move_down(),
|
||||
Op::MoveWindowUp => layout.move_up(),
|
||||
Op::MoveWindowDownOrToWorkspaceDown => layout.move_down_or_to_workspace_down(),
|
||||
|
||||
@@ -152,6 +152,14 @@ impl<W: LayoutElement> Monitor<W> {
|
||||
self.active_workspace().move_right();
|
||||
}
|
||||
|
||||
pub fn move_column_to_first(&mut self) {
|
||||
self.active_workspace().move_column_to_first();
|
||||
}
|
||||
|
||||
pub fn move_column_to_last(&mut self) {
|
||||
self.active_workspace().move_column_to_last();
|
||||
}
|
||||
|
||||
pub fn move_down(&mut self) {
|
||||
self.active_workspace().move_down();
|
||||
}
|
||||
|
||||
@@ -674,6 +674,19 @@ impl<W: LayoutElement> Workspace<W> {
|
||||
self.move_column_to(new_idx);
|
||||
}
|
||||
|
||||
pub fn move_column_to_first(&mut self) {
|
||||
self.move_column_to(0);
|
||||
}
|
||||
|
||||
pub fn move_column_to_last(&mut self) {
|
||||
if self.columns.is_empty() {
|
||||
return;
|
||||
}
|
||||
|
||||
let new_idx = self.columns.len() - 1;
|
||||
self.move_column_to(new_idx);
|
||||
}
|
||||
|
||||
pub fn move_down(&mut self) {
|
||||
if self.columns.is_empty() {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user