RamonUnch / AltSnap

Maintained continuation of Stefan Sundin's AltDrag
GNU General Public License v3.0
2.08k stars 66 forks source link

Feature request : Somehow be able choose overlapping zones ? #527

Open shodanx2 opened 5 months ago

shodanx2 commented 5 months ago

Hi,

My main window looks like this

1alhpL7V57

I like this layout, it has many possibilities as I can demonstrate here

https://github.com/RamonUnch/AltSnap/assets/10621885/638cdfb5-a6d1-4100-9e88-08cbfc2cfa7e

However I would like to be able to have a larger snap zone of the full width, top and bottom

Like this

1ARnUTN844

I don't know how the user would choose which of these overlapping zone however

Perhaps if there were a zone "drop zone" which is not the same the actual zone ?

Maybe something like this

image

Or maybe a gesture, or keyboard shortcut to switch layouts ?

I noticed that Alt+scrolling without drag, changes opacity, that's awesome, I like making "always on top, semi-opaque" transparent windows that I place above other windows !

I also noticed that Alt+scrolling with drag, cycles through the layered windows, that's clever.

I see that while Alt+dragging, right click toggles snap layout ... snapping, fantastic, that's just like I liked it in fancyzone

Lastly, I notice that Alt+dragging middle click does the same action as the right click.

I would like to suggest to change middle click to toggle the function the alt+leftdrag+scroll from window order flipping to snap layout flipping ?

(Also probably a post for a separate feature request, but can snap layout can be changed on a per monitor basis ? (although, I like that Alt+Snap does not shuffle my monitor layouts every time I disconnect/reconnect a monitor like fancyzone occasionnally does) )

Cheers !

----------unrelated comments------------- Loving Alt-Snap snap zones lately BTW ! I've become acustomed to them and barely use FancyZone since I enabled hotclick I am considering 3D printing a mouse with dual left/right, where a portion of the button does the alt-button. In other words dedicated alt+left and alt+right buttons

RamonUnch commented 5 months ago

not yet read but just based on your title;

ZSnapMode=0
; Zone snapping strategy
; Set to 0 to snap to the zones pointed by the cursor (default).
; Set to 1 to snap to the zone which center is the nearest from the cursor
; There is always a the InterZone tolerance to snap to several zones.
shodanx2 commented 5 months ago

Ok, giving this a try

First I create two new "full width" zones And also I create two testing "drop zones"

Here is what is looks like (See zone list below)

image

Here is trying to snap this as is

https://github.com/RamonUnch/AltSnap/assets/10621885/f7403489-69ba-4e20-bb55-792e3f45a80b

With

ZSnapMode=1

Oops, the testing "drop zones" are causing issue

https://github.com/RamonUnch/AltSnap/assets/10621885/b678b54d-7b2f-4115-95b9-e51c9023efc2

I have now removed them

So, here we have the 8 original zones, plus two wide zones

uDHeP9Jiuy

Here is the result

https://github.com/RamonUnch/AltSnap/assets/10621885/c846b539-0457-48f9-89b4-e65773b2efe5

Here is the behaviour difference, Zsnap

nrVbHeFSV0

So the following is no longer possible directly

image

It would be sweet to have custom drop zones that are independant from the actual snap location. But ZSnapMode=1 is doing mostly what I want thanks !

So, just another suggestion for the backburner but this works for me right now !

Thanks !

Here is the zone list

Zone0=0,1055,3840,2111,
Zone1=0,1,3840,1055,
Zone2=2875,1,3840,1055,
Zone3=1920,0,2875,1055,
Zone4=964,0,1920,1055,
Zone5=0,1,964,1055,
Zone6=1256,1101,1627,1252,
Zone7=1255,868,1626,1019,
Zone8=2875,1055,3840,2110,
Zone9=1920,1055,2875,2110,
Zone10=964,1055,1920,2110,
Zone11=0,1055,964,2110,
Zone12=3406,-1105,3840,-50,
Zone13=3406,-2160,3840,-1105,
Zone14=0,-1105,533,-50,
Zone15=0,-2160,533,-1105,
Zone16=533,-2160,3406,-1105,
Zone17=533,-1105,3406,-50,
Zone18=-1718,1056,0,2111,
Zone19=-1718,1,0,1056,
Zone20=-3152,1,-1718,1056,
Zone21=-3152,1056,-1718,2111,
Zone22=-3840,1056,-3152,2111,
Zone23=-3840,1,-3152,1056,
Zone24=6991,1056,7680,2111,
Zone25=6991,1,7680,1056,
Zone26=5557,1056,6991,2111,
Zone27=5557,1,6991,1056,
Zone28=3840,1056,5557,2111,
Zone29=3840,1,5557,1056,
RamonUnch commented 5 months ago

However I would like to be able to have a larger snap zone of the full width, top and bottom

You can Hold Ctrl and extend the window to several zones.

You can change snap layout with a command lie parameter.

Also I do not understand your layout, you should only have 8 zones + 2 large zones + 2 thinny cute windows = 12 zones, not 30!

shodanx2 commented 5 months ago

Thanks !

I just tried with CTRL but the "wide overlapping" zones override the CTRL

It is not a big deal, but I think it is the wide zones or the center zones but switching better probably can't be done on the fly.

Except maybe switching the Zsnapmode via the command line. But I don't have an obvious way to trigger this change in an ergonomic way. So in those cases I will just resize the window.

As for my zones, I cropped out the other monitors for brevity but forgot to remove them from the zone definition

Here is what the whole looks like

Ec0EirY2TP

Ichisich commented 5 months ago

There are also the while moving actions. Setting a button to maximize vertically will resize the window horizontally while snapping (shift invert).

I snap the window into the left upper zone and then press MB5 while still holding the window with shift+leftclick:

https://github.com/RamonUnch/AltSnap/assets/31080003/90818706-509a-4292-8264-df33a4a5c6cf

RamonUnch commented 5 months ago

I am not sure what the issue is with your snap layout, but AltSnap will choose the union of all rectangles which center are within the InterZone tolerance. So in your case everything is logically expected.

When you aim between the two top-middle zones, then you are precisely pointing at the zone that covers the whole top-half screen (defined in your zones), and when you aim at the very middle of the screen, the closest zones are the two wide ones and the union of both of them is the whole screen.

RamonUnch commented 5 months ago

In your case you might be interested in using UseZones=5 and then only define non-overlapping zones and then the window will extend automaically when you drag the cursor without having to bother with Ctrl. the final rectangle will be the union of the rectangle your cursor starts in and the one you finish with (a bit like e selection rectangle).

shodanx2 commented 5 months ago

Thanks for mentionning the InterZone setting

I bumped that to

InterZone=128

For my 4K screen and it has become much more please to snap accross sections.

It took some taking used to. But now I can even snap the middle regions with some fiddling and CTRL.

I didn't enables Zones=5 as most of the time I don't want to stretch accross all zones that I pass over while in snap mode

https://github.com/RamonUnch/AltSnap/assets/10621885/ca4e0a2e-bfbc-4f3f-aec3-5bd410bf6eca