Skip to content

Named workspace modes: several saved arrangements, applied from the tray #1

Description

@leaderdog-code

Saved arrangements exist, but only one per display and applied by hand. The
idea is several named modes — streaming, accounting, a couple of workflows —
picked from the tray, with the screen populating itself.

What already works

  • Slots per app per display, stored as offsets so moving a monitor is fine
  • Save and apply per display, so a chaotic primary is left alone
  • Extra windows left alone, missing apps leave empty slots

What a mode would add

Named modes. arrangement.json becomes {name: {slots: [...]}}. Tray gets
Save ▸ New name... / existing names, and Apply ▸ name. Naming needs a small Tk
prompt, which is fine since Tk already ships for the settings window.

Undo. Snapshot the current arrangement immediately before applying a mode,
so turning it off restores what was there beforehand. "Back to default
positions" is not implementable — apps have no default, only wherever they last
were — but "back to how it was before I clicked this" is well defined.

Launching what is missing. Record each app's executable path when saving,
start it on apply, wait for its window, then place it.

The part that does not generalise

Opening a second window of an already-running app is app-specific:

App How
Brave / Chrome --new-window
Explorer pass a path
Discord refuses, focuses the existing window

There is no general mechanism. Options: a small table of known apps, a
per-slot "command to open another window" field, or simply place whatever
windows exist and leave the user to open more. The last one is honest and
never surprises anyone, and is probably where to start.

Suggested order

  1. Named modes over the existing slot machinery (arranges what is open)
  2. Undo, via a pre-apply snapshot
  3. Launch missing apps, first instance only
  4. Extra windows, only if 1-3 prove worth using

Raised from real use: several Explorer windows for moving files around, and a
streaming layout with chat pinned to one side.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions