Skip to content

feat: add logic for move-everything-to-display feature#315

Open
Lukas-Klein wants to merge 2 commits intoacsandmann:mainfrom
Lukas-Klein:feat/move-everything-to-display
Open

feat: add logic for move-everything-to-display feature#315
Lukas-Klein wants to merge 2 commits intoacsandmann:mainfrom
Lukas-Klein:feat/move-everything-to-display

Conversation

@Lukas-Klein
Copy link
Copy Markdown

Closes #314

Motivation

Moving an entire workspace from one display to another currently requires
relocating each window individually, which is tedious with many windows
open. This PR adds a move-everything command that does it all in one go.

Changes

  • src/model/reactor.rs
    • Added a new MoveEverythingToDisplay { selector } variant to
      ReactorCommand
  • src/actor/reactor/events/command.rs
    • Wired up the new command variant in the match handler
    • Implemented handle_command_reactor_move_everything_to_display which
      reuses the same guard logic as MoveWindowToDisplay (no-op during
      drag, inactive source/target space, source equals target) and then
      iterates over all windows in the active workspace, moving each one to
      the target display and centring it within the destination screen frame
  • src/bin/rift-cli.rs
    • Added a MoveEverything subcommand under DisplayCommands accepting
      --direction, --index, and --uuid, matching the interface of the
      existing MoveWindow command

Usage

rift display move-everything --direction <left|right|up|down>
rift display move-everything --index <n>
rift display move-everything --uuid <uuid>

Tests done

No automated test suite. Manually verified that all windows on the active
workspace are relocated to the target display and their frames are
correctly clamped within the destination screen bounds.

@acsandmann
Copy link
Copy Markdown
Owner

implementation looks fine, i just am unsure about the naming. move-everything doesn't really sound right to me. need to think about it more..

@Lukas-Klein
Copy link
Copy Markdown
Author

Lukas-Klein commented Apr 7, 2026

maybe move-all-windows?

@Swoorup
Copy link
Copy Markdown
Contributor

Swoorup commented Apr 9, 2026

Wouldn't the ability to assign specific workspaces to a particular display void the need for this?

@Lukas-Klein
Copy link
Copy Markdown
Author

That it would, but I'm not sure if that's how @acsandmann is imagining rift to develop.

Because right now, each display has its own workspaces. Assigning specific workspaces to specific displays would completely eliminate that behaviour. I don't know if that's desired.

I would kind of like that, as I really liked this feature in Aerospace, but that's up to @acsandmann I guess.

@Swoorup
Copy link
Copy Markdown
Contributor

Swoorup commented Apr 9, 2026

just my 2c, if we have per display workspaces, a lot of existing commands would just naturally fit. As you don't need display specific commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: move all windows to another display at once

3 participants