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