diff options
| author | FluxTape <fluxtape.contact@gmail.com> | 2024-03-19 14:27:52 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-19 07:27:52 -0700 |
| commit | 23ac3d73232f307186212293713d6801d37cff2a (patch) | |
| tree | 68d4e721a3c3e88cae2157a27cd28944d1eb3ea4 /niri-config/src | |
| parent | c3327d36da25f37e86eb8f89bd74f2a4bc1ea744 (diff) | |
| download | niri-23ac3d73232f307186212293713d6801d37cff2a.tar.gz niri-23ac3d73232f307186212293713d6801d37cff2a.tar.bz2 niri-23ac3d73232f307186212293713d6801d37cff2a.zip | |
Workspace back and forth (#253)
* implement workspace back and forth
* Make our own ID counter instead of SerialCounter, use a newtype
* Rename FocusWorkspaceBackAndForth to FocusWorkspacePrevious
* Add focus-workspace-previous to tests
* Don't special case in switch_workspace_previous
* Minor clean up
* Add switch_workspace_auto_back_and_forth to tests
* Skip animation on switch_workspace_previous
* Preserve previous_workspace_id on workspace movement
* Make Workspace::id private with a getter
Reduce the chance it gets overwritten.
* Add test for workspace ID uniqueness
* Update previous workspace ID upon moving workspace across monitors
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
Diffstat (limited to 'niri-config/src')
| -rw-r--r-- | niri-config/src/lib.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index 5ae57b46..9a20f91a 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -73,6 +73,8 @@ pub struct Input { pub warp_mouse_to_focus: bool, #[knuffel(child)] pub focus_follows_mouse: bool, + #[knuffel(child)] + pub workspace_auto_back_and_forth: bool, } #[derive(knuffel::Decode, Debug, Default, PartialEq, Eq)] @@ -766,6 +768,7 @@ pub enum Action { FocusWorkspaceDown, FocusWorkspaceUp, FocusWorkspace(#[knuffel(argument)] u8), + FocusWorkspacePrevious, MoveWindowToWorkspaceDown, MoveWindowToWorkspaceUp, MoveWindowToWorkspace(#[knuffel(argument)] u8), @@ -835,6 +838,7 @@ impl From<niri_ipc::Action> for Action { niri_ipc::Action::FocusWorkspaceDown => Self::FocusWorkspaceDown, niri_ipc::Action::FocusWorkspaceUp => Self::FocusWorkspaceUp, niri_ipc::Action::FocusWorkspace { index } => Self::FocusWorkspace(index), + niri_ipc::Action::FocusWorkspacePrevious => Self::FocusWorkspacePrevious, niri_ipc::Action::MoveWindowToWorkspaceDown => Self::MoveWindowToWorkspaceDown, niri_ipc::Action::MoveWindowToWorkspaceUp => Self::MoveWindowToWorkspaceUp, niri_ipc::Action::MoveWindowToWorkspace { index } => Self::MoveWindowToWorkspace(index), @@ -1599,6 +1603,7 @@ mod tests { warp-mouse-to-focus focus-follows-mouse + workspace-auto-back-and-forth } output "eDP-1" { @@ -1740,6 +1745,7 @@ mod tests { disable_power_key_handling: true, warp_mouse_to_focus: true, focus_follows_mouse: true, + workspace_auto_back_and_forth: true, }, outputs: vec