PaperWM icon indicating copy to clipboard operation
PaperWM copied to clipboard

Custom overview idea

Open myleftshoe opened this issue 4 years ago • 6 comments

I was thinking that the overview could simply be a zoomed out version of the entire layout, i.e a grid with windows across and workspaces down.

Visually, pressing the super key would at first only slightly zoom out what's currently on screen to signal that you are in overview mode, maybe the edges of the surrounding grid items are visible.

Keeping the super key held down while scrolling the mouse wheel would zoom the grid in and out. The min zoom would fit all windows and workspaces on the screen whereas the max would show a single window. The zoom level would be preserved so that the next invocation starts off at that zoom level.

The grid can be panned too by keeping the super key pressed and dragging.

The window clones can be dragged and dropped any where in the grid with it scrolling as required.

Obviously it would support the equivalent touch gestures.

This would completely replace the default overview.

Simple concept, maybe i'm missing something? Possibly difficult to implement?

myleftshoe avatar Oct 24 '19 11:10 myleftshoe

Yeah, we have thought about replacing the whole overview/implementing our own variant.

There are some technical challenges associated with responding to superkey press in isolation, so it would likely be super+something combo to enter overview. Once in overview it's possible to repond to super+scroll.

Possibly difficult to implement?

It will take some effort. yes :)

Related to/synergies with #113

olejorgenb avatar Oct 24 '19 15:10 olejorgenb

I'm a recent convert from material-shell. From what you have done with paperWM it's definitely not beyond your capabilities! Nice work.

myleftshoe avatar Oct 24 '19 23:10 myleftshoe

Thanks, it's fun seeing how material shell have gone about solving much the same issues as us, but doing it in a really different way :) (not much of a surprise that I prefer the more free flow that paperwm support)

The overview does indeed need an overhaul. Currently these are the main problems as I see them:

  • It's really slow when there's a lot of windows (from doing some ad-hoc timing, it seems like the work is dominated by creating clones of the windows. This is a bit surprising as we don't encounter the same problem with the minimap, which also makes clones on demand). This is a problem with upstream.
  • Multimonitor support is really shoddy. Secondary monitors doesn't show anything.
  • The transition looks a bit wonky if the workspace uses a custom wallpaper

Things we should at least support:

  • Separate workspaces based on which monitor they're on

You raise an interesting proposal to simply forego separating workspaces in the overview and instead use zoom. I like the idea of getting a full overview of all spaces. Mutter supports 2-finger pinch for touchpads so that would be nice to integrate (3-finger pinch is unfortunately stolen, but we could use 3-finger swipe up to activate the overview smoothly).

So, I'm thinking a netflix like UI where where we can scroll each space horizontally as normal. while scrolling vertically scrolls through the spaces (this works best with a touchpad though). ctrl-scroll and pinch zooms all the spaces. I feel this solves the problem of supporting zoom and vertical scroll well.

At the top we want a strip reserved for the scratch windows.

As a big bonus this should easily solve the performance issue as we simply reuse the already constructed spaces.

I made a quick mockup: image

hedning avatar Oct 26 '19 15:10 hedning

@hedning. Excellent response. I look forward to what you will do.

myleftshoe avatar Oct 26 '19 22:10 myleftshoe

I really like what I'm seeing here.

I believe that a quick win would be to keep the overview mostly like gnome's default, but arrange the scaled-down windows horizontally, mirroring their position when not in overview. This is already the case when you only have 2-3 windows per-workspace and it looks great.

Sure, it would be nice to be able to reorder them with the mouse, but this can come later.

I am not at all familiar with how gnome extensions work, but the native window placement extension is one that simply changes the position of the windows in the overview. This leads me to believe that implementing what I propose for PaperWM would be easy. I may look into some code if I find some time.

kbairak avatar Feb 07 '20 09:02 kbairak

Hey, a horizontal zoomed-out custom preview already exists in PaperWM! It appears when you press Super+Left/Right and keep Super pressed. What if that preview also showed higher/lower workspaces? Maybe hidden or highly transparent until you press any cross-workspace key.

(Aside: now that I stop to think of it, since adopting PaperWM I rarely use Alt+Tab. This shocks me, after years of loving Alt+Tab's LRU order and immediate toggling between last 2 windows, I now prefer the slower Super+Left/Right — and I think this excellent overview is the reason, it helps me refresh my mental model of where windows are :+1: As for navigating far being slow, frequently I use Ctrl+Super+Left/Right to drag the current window with me until it's adjacent to the window I want to reach. Effectively, I manually maintain near-LRU order.)

cben avatar Nov 17 '20 10:11 cben

I believe that a quick win would be to keep the overview mostly like gnome's default, but arrange the scaled-down windows horizontally, mirroring their position when not in overview. This is already the case when you only have 2-3 windows per-workspace and it looks great.

Closing this one as #802 and #803 do exactly this (make it so overview is essentially zoom out of paperwm).

jtaala avatar Mar 29 '24 13:03 jtaala