aboutsummaryrefslogtreecommitdiff
path: root/niri-config/src
diff options
context:
space:
mode:
authorFluxTape <fluxtape.contact@gmail.com>2024-03-19 14:27:52 +0000
committerGitHub <noreply@github.com>2024-03-19 07:27:52 -0700
commit23ac3d73232f307186212293713d6801d37cff2a (patch)
tree68d4e721a3c3e88cae2157a27cd28944d1eb3ea4 /niri-config/src
parentc3327d36da25f37e86eb8f89bd74f2a4bc1ea744 (diff)
downloadniri-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.rs6
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![Output {
off: false,