A downloadable tool

GoSnap - Snaps windows to screen edges

GoSnap is a program that brings to AmigaOS a window snapping feature known from modern operating systems, allowing windows to snap to the edges  of the screen.

GoSnap creates 8 active zones on the Workbench screen: 4 screen corners and 4 edges. When a window is dragged to one of these zones,  it is automatically resized and repositioned.
The zones work as follows:

  • 4 corners - dragging a window into a corner will resize it to 1/4  of the screen size and position it in that corner. 
  • Left, right, and bottom edges - dragging a window to one of these  edges will resize it to 1/2 of the screen size and snap it to the corresponding edge.  
  •  Top edge - dragging a window to the top edge of the screen will  maximize it to fill the entire screen.

GoSnap respects the minimum and maximum window sizes defined by the application's developer, as well as whether a window is resizable at all. If a window is not resizable, GoSnap will only reposition it without changing its size.

The program runs as a commodity and can be managed through the system Exchange utility, where it can be paused or disabled.

Requirements:
The program requires AmigaOS version 3.1.4 or newer; AmigaOS 3.2 is recommended.
In the system preferences (IControl), the option to allow windows to be dragged beyond the screen edge should be enabled.
GoSnap should also work under AmigaOS 4.1.

Installation:
Just copy GoSnap to any location and run it.
If you want GoSnap to start automatically with Workbench, copy it to the WBStartup drawer.

Configuration:
GoSnap offers several Tool Type options that affect how
the program behaves:    

  • KEEP_MENUBAR=YES|NO - determines whether the top Workbench menubar should be covered when snapping a window to the top of the screen, or if it should always remain visible.    
  • SNAP_MARGIN=10 - defines the size (in pixels) of the screen-edge area where window snapping is triggered (int, range: 2-100) 
  • SNAP_MARGINPCT=3 - a parameter that defines the width and height of the snap area as a percentage of the screen’s width and height.      
    For example, on an 800×600 screen and with the parameter set to 3, the snap area near the left and right edges will be 24 pixels wide, and 18 pixels high near the top and bottom edges (int, range: 1-15).      
    If both parameters are defined (SNAP_MARGIN and SNAP_MARGINPCT),  SNAP_MARGINPCT takes priority over SNAP_MARGIN.
  • SHOW_SNAP_AREA_AT_START=YES|NO - a test feature that displays defined snap zones when the program starts.

License & Donations:
GoSnap is FREEWARE, but if you find this tool useful, you are welcome to donate and help keep the author caffeinated:

https://www.paypal.me/krzysztofdonat

GoSnap is an entry into the Amiga 40 Tools Jam 2025 in the Commodity category.
It was written in Amiga E, using the excellent E-VO compiler:
http://aminet.net/package/dev/e/evo

History:
0.13 (2025-05-18)
  - Initial release.

0.14 (2025-05-19)
  - fix for snapping non-resizable windows

0.15 (2025-05-20)
  - Added ToolType parameter SNAP_MARGINPCT, defining the snap area
    as a percentage of the screen width/height.
  - improved calculation of snapped window positions.

Updated 7 days ago
Published 8 days ago
StatusIn development
CategoryTool
Authorbitplan
TagsAmiga, bitplanpl, gosnap

Download

Download
GoSnap.lha 8 kB

Comments

Log in with itch.io to leave a comment.

(1 edit)

Testing 0.15 here, finally, and... can't get it to work here either.  Definitely running, shows the snap zones when it starts (when I change the tooltype for it to).  I drag a window to an edge/corner, release... nothing.  Increased the zone size - both percentage, then turned that off and went absolute - and couldn't find the right spot to get it to work.  Sorry.

Amiga 500, 68030/50, RGB display.

Seems not to work at all on my Amiga 1200... no idea why... if its a RTG/P96 thing or PiStorm or...

Try the latest version (0.15) – I've made several improvements and fixes.

(1 edit)

Thank you, slightly better... its more a random success... sometimes it works, sometimes not... also seems I have to move back a few pixel before it triggers... left, right, bottom, top worked, corners not... 

Try experimenting with the SNAP_MARGIN and SNAP_MARGINPCT ToolType parameters. Especially if you're using Workbench in a high resolution, increasing them may help. 

No matter how big or small I set the options, its hard to find the right position to push the trigger (its not that easy like in your video). On my system currently not useable so might skip it for now or maybe you have another idea?

OSZAR »