feat(actions): add cross-workspace vertical focus and move variants - #11
Merged
ItsLemmy merged 1 commit intoAug 26, 2026
Merged
Conversation
DarkJaguar91
force-pushed
the
cross-workspace-vertical-focus
branch
from
August 23, 2026 05:41
46415c8 to
e0a414d
Compare
Contributor
Contributor
Author
Add new IPC actions that extend the existing vertical focus/movement commands to cross workspace boundaries: - window-focus-or-workspace-up/down - window-move-or-workspace-up/down When the focused window is already at the top/bottom of its column, instead of silently doing nothing, these actions switch to the adjacent workspace and restore focus or move the window there. This matches the behavior of Niri and feels more natural for scrollable-tiling layouts where workspace boundaries are meant to be seamless. The original window-focus-up/down and window-move-up/down actions remain unchanged for users who prefer workspace-local behavior. docs/user/keybinds.md updated to document the new actions.
ItsLemmy
force-pushed
the
cross-workspace-vertical-focus
branch
from
August 26, 2026 12:28
e0a414d to
bc0245b
Compare
ItsLemmy
added a commit
that referenced
this pull request
Aug 26, 2026
* feat: port the 3-finger view scroll behavior from niri * fix: warnings * feat(actions): add cross-workspace vertical focus and move variants (#11) Add new IPC actions that extend the existing vertical focus/movement commands to cross workspace boundaries: - window-focus-or-workspace-up/down - window-move-or-workspace-up/down When the focused window is already at the top/bottom of its column, instead of silently doing nothing, these actions switch to the adjacent workspace and restore focus or move the window there. This matches the behavior of Niri and feels more natural for scrollable-tiling layouts where workspace boundaries are meant to be seamless. The original window-focus-up/down and window-move-up/down actions remain unchanged for users who prefer workspace-local behavior. docs/user/keybinds.md updated to document the new actions. * fix: honor deactivated unfullscreen when activation follows (#16) * feat(actions): center the focused scrolling column (#17) Co-authored-by: Lemmy <studio@quadbyte.net> * feat(actions): add output-boundary traversal for window focus and move (#18) * feat(keybinds): add window-focus/move-or-output actions Adds window-focus-or-output-{left,right} and window-move-or-output-{left,right}: falls through to focusing/moving to the adjacent output when the column is already at the edge. Vertical (up/down) variants land in a follow-up commit. * feat(keybinds): extend window-focus/move-or-output actions vertically * fix(keybinds): register output traversal actions --------- Co-authored-by: Lemmy <studio@quadbyte.net> --------- Co-authored-by: Brandon James Talbot <bjtal91@gmail.com> Co-authored-by: Lemmy <studio@quadbyte.net> Co-authored-by: Ian Ribeiro <133624505+oldirtty@users.noreply.github.com>
Yocraft-2000
pushed a commit
to Yocraft-2000/umbriel
that referenced
this pull request
Aug 26, 2026
…octalia-dev#11) Add new IPC actions that extend the existing vertical focus/movement commands to cross workspace boundaries: - window-focus-or-workspace-up/down - window-move-or-workspace-up/down When the focused window is already at the top/bottom of its column, instead of silently doing nothing, these actions switch to the adjacent workspace and restore focus or move the window there. This matches the behavior of Niri and feels more natural for scrollable-tiling layouts where workspace boundaries are meant to be seamless. The original window-focus-up/down and window-move-up/down actions remain unchanged for users who prefer workspace-local behavior. docs/user/keybinds.md updated to document the new actions.
Yocraft-2000
added a commit
to Yocraft-2000/umbriel
that referenced
this pull request
Aug 26, 2026
* feat: port the 3-finger view scroll behavior from niri * fix: warnings * feat(actions): add cross-workspace vertical focus and move variants (noctalia-dev#11) Add new IPC actions that extend the existing vertical focus/movement commands to cross workspace boundaries: - window-focus-or-workspace-up/down - window-move-or-workspace-up/down When the focused window is already at the top/bottom of its column, instead of silently doing nothing, these actions switch to the adjacent workspace and restore focus or move the window there. This matches the behavior of Niri and feels more natural for scrollable-tiling layouts where workspace boundaries are meant to be seamless. The original window-focus-up/down and window-move-up/down actions remain unchanged for users who prefer workspace-local behavior. docs/user/keybinds.md updated to document the new actions. * fix: honor deactivated unfullscreen when activation follows (noctalia-dev#16) * feat(actions): center the focused scrolling column (noctalia-dev#17) Co-authored-by: Lemmy <studio@quadbyte.net> * feat(actions): add output-boundary traversal for window focus and move (noctalia-dev#18) * feat(keybinds): add window-focus/move-or-output actions Adds window-focus-or-output-{left,right} and window-move-or-output-{left,right}: falls through to focusing/moving to the adjacent output when the column is already at the edge. Vertical (up/down) variants land in a follow-up commit. * feat(keybinds): extend window-focus/move-or-output actions vertically * fix(keybinds): register output traversal actions --------- Co-authored-by: Lemmy <studio@quadbyte.net> --------- Co-authored-by: Brandon James Talbot <bjtal91@gmail.com> Co-authored-by: Lemmy <studio@quadbyte.net> Co-authored-by: Ian Ribeiro <133624505+oldirtty@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds new IPC actions that extend the existing vertical focus/movement commands to cross workspace boundaries:
window-focus-or-workspace-up/window-focus-or-workspace-downwindow-move-or-workspace-up/window-move-or-workspace-downWhen the focused window is already at the top/bottom of its column, instead of silently doing nothing, these actions switch to the adjacent workspace and restore focus or move the window there. This matches the behavior of Niri and feels more natural for scrollable-tiling layouts where workspace boundaries are meant to be seamless.
The original
window-focus-up/downandwindow-move-up/downactions remain unchanged for users who prefer workspace-local behavior.Docs updated in
docs/user/keybinds.md.Motivation
Got used to the Niri feature, and was struggling without it.
Type of Change
Related Issue
None
Testing
just format
just test
just lint
In my NixOS using my fork as a flake
Manual Coverage
Screenshots / Videos
https://drive.google.com/file/d/1rcqfkEse3F1VcwsvKoRQzVotbVzreKMA/view?usp=sharing
Checklist
CONTRIBUTING.md.just format, or this PR has no C++ changes.docs/andexamples/config.toml, or this PR does not change user-facing configuration or behavior.