2
42
Fork
You've already forked Retiled
1

Multi-workspace setup idea to keep each window in its own area and not do weird stuff. #562

Open
opened 2026年04月14日 22:33:24 +02:00 by DrewNaylor · 1 comment

I wrote this in Obsidian so I didn't forget before seeing if I already created this issue:

  • When opening the search app (or any other sliding open transition app), (削除) have it open on top of the last-active workspace then silently move it to a new workspace (削除ここまで) take a screenshot of the region of the active workspace without the navbar geometry and put that in the background of the window behind the "Page" item. When closing it by pressing from the homepage, (削除) silently move it to the last-active workspace (削除ここまで) take a screenshot of the geometry of the last-active workspace minus the navbar geometry and put that in the window background behind the "Page" item then have it slide down. Alternatively, if the old workspace no longer exists, have it go back to the homescreen and its workspace and do the screenshot thing there. One concern is if the status bar is transparent in the page behind it, things might look weird but hopefully it's fast enough to be fine.

  • Use one workspace for each toplevel, appID, and PID combination in Sway.

  • When going to the homescreen, have it open on its own workspace.

  • Have one workspace exclusive to desktop-style windowing. This will be a little more difficult since Sway doesn't have window titlebars by default. I may be able to work around this by having a LabWC subcompositor open in fake Sway maximize mode. This LabWC session will need to have settings modified so that it fits in with the user's theme in the rest of the Sway Retiled session. When the LabWC subcompositor is open, I will need to allow Alt+Tab to work confined to LabWC to not be confusing. I think my multitasking thing will need to be Win+Tab to not conflict. I don't know if it will be possible to allow Alt+Tab to work when not on the LabWC subcompositor workspace. D-Bus should work because we'll keep the same D-Bus session bus and so we will be able to get the list of windows and display them in a taskbar like on Windows 8.1. I wonder how accessibility would be dealt with. That could be a problem with a subcompositor maybe, I'm not sure. Perhaps a button to open the homescreen from desktop mode would be a good idea. Maybe we could also have it so desktop mode will be able to span across monitors, that would be nice, and a way to only have desktop mode on one monitor like Continuum. (see also: #492)

  • Getting the application name and icon from each toplevel can be done by having each workspace be tied to an appID as well as toplevel ID and PID, so that way we can just access the .desktop file for that application.

  • When there are no more toplevels in a workspace, remove the workspace and go back to the last-active workspace. If there would end up being no more workspaces aside from the i3 scratch one, create one and open the homescreen in it.

  • We will be able to have a titlebar appear on any of the full-screen Sway workspaces when moving the mouse to the top of the screen like Windows 8.1 Update 1 if desired. Fullscreening an application in desktop mode would need to have a way to tell Layer Shell components in Sway to hide for consistency.

  • If someone wanted to have two workspaces next to each other for tiling like Windows 8 for better tablet use, I wonder how that would work. I also wonder how the Windows 8 sharing contracts could work in this situation.

  • If certain apps don't work the way we expect, it could be an issue. Unless there's a way to deal with that and have a setting to have incompatible apps in a special workspace, or we could ensure that we grab all the windows for incompatible apps separately then switch to or close the right toplevel in the workspace (users would add them to a list).

  • I was thinking a way to display all workspaces as individual floating windows would be neat.

I wrote this in Obsidian so I didn't forget before seeing if I already created this issue: - [ ] When opening the search app (or any other sliding open transition app), ~~have it open on top of the last-active workspace then silently move it to a new workspace~~ take a screenshot of the region of the active workspace without the navbar geometry and put that in the background of the window behind the "Page" item. When closing it by pressing from the homepage, ~~silently move it to the last-active workspace~~ take a screenshot of the geometry of the last-active workspace minus the navbar geometry and put that in the window background behind the "Page" item then have it slide down. Alternatively, if the old workspace no longer exists, have it go back to the homescreen and its workspace and do the screenshot thing there. One concern is if the status bar is transparent in the page behind it, things might look weird but hopefully it's fast enough to be fine. - [ ] Use one workspace for each toplevel, appID, and PID combination in Sway. - [ ] When going to the homescreen, have it open on its own workspace. - [ ] Have one workspace exclusive to desktop-style windowing. This will be a little more difficult since Sway doesn't have window titlebars by default. I may be able to work around this by having a LabWC subcompositor open in fake Sway maximize mode. This LabWC session will need to have settings modified so that it fits in with the user's theme in the rest of the Sway Retiled session. When the LabWC subcompositor is open, I will need to allow Alt+Tab to work confined to LabWC to not be confusing. I think my multitasking thing will need to be Win+Tab to not conflict. I don't know if it will be possible to allow Alt+Tab to work when not on the LabWC subcompositor workspace. D-Bus should work because we'll keep the same D-Bus session bus and so we will be able to get the list of windows and display them in a taskbar like on Windows 8.1. I wonder how accessibility would be dealt with. That could be a problem with a subcompositor maybe, I'm not sure. Perhaps a button to open the homescreen from desktop mode would be a good idea. Maybe we could also have it so desktop mode will be able to span across monitors, that would be nice, and a way to only have desktop mode on one monitor like Continuum. (see also: #492) - [ ] Getting the application name and icon from each toplevel can be done by having each workspace be tied to an appID as well as toplevel ID and PID, so that way we can just access the .desktop file for that application. - [ ] When there are no more toplevels in a workspace, remove the workspace and go back to the last-active workspace. If there would end up being no more workspaces aside from the i3 scratch one, create one and open the homescreen in it. - [ ] We will be able to have a titlebar appear on any of the full-screen Sway workspaces when moving the mouse to the top of the screen like Windows 8.1 Update 1 if desired. Fullscreening an application in desktop mode would need to have a way to tell Layer Shell components in Sway to hide for consistency. - [ ] If someone wanted to have two workspaces next to each other for tiling like Windows 8 for better tablet use, I wonder how that would work. I also wonder how the Windows 8 sharing contracts could work in this situation. - [ ] If certain apps don't work the way we expect, it could be an issue. Unless there's a way to deal with that and have a setting to have incompatible apps in a special workspace, or we could ensure that we grab all the windows for incompatible apps separately then switch to or close the right toplevel in the workspace (users would add them to a list). - [ ] I was thinking a way to display all workspaces as individual floating windows would be neat.
Author
Owner
Copy link

I think this is what Phosh does, if I remember correctly from what I read a few years ago.

I think this is what Phosh does, if I remember correctly from what I read a few years ago.
Sign in to join this conversation.
No Branch/Tag specified
main
drawer-dx
rounded-tiles-with-wallpaper
allow-alternate-styles
rust-stuff
use-tiledmenu-tilesgrid
tilesgrid-integration
parallax-background-test
v0.1-DP4
v0.1-DP3-binaries-install-script-tag
v0.1-DP3-binaries-build-tag
v0.1-DP3
v0.1-DP2
v0.1-DP1
before-archiving-avalonia-based-retiledstart
before-archiving-avalonia-based-retiledsearch
Labels
Clear labels
accessibility
Anything relating to Accessibility/Ease of Access.
app
Non-shell applications. Does not include RetiledStart even though it's a regular window because it's too close to being a shell component.
archived
This discussion, issue, or pr is archived and locked.
bug
Something isn't working
documentation
Improvements or additions to documentation, or this pr/issue is basically documentation until the next version is ready
duplicate
This issue or pull request already exists
enhancement
New feature or request
good first issue
Good for newcomers
help wanted
Extra attention is needed
invalid
This doesn't seem right
known issue
overhaul
Massive changes, additions, or removals
performance
question
Further information is requested
regression
Bug that wasn't there before.
shell
Shell components, specifically things like the status bar and navbar. RetiledStart shouldn't count since it's an application window but I include it here.
still has cool ideas
Closed issues that might still have some cool ideas.
themes+styles
Theme-related issues.
todo
Reminder for something to do later.
wontfix
I'm not really feeling it.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
DrewNaylor/Retiled#562
Reference in a new issue
DrewNaylor/Retiled
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?