On this page
EdgeSnap 0.5 beta adds configurable hotkeys and an ARexx port: window snapping on AmigaOS 4, MorphOS and AROS can now be triggered by scripts, dock buttons and file managers. Released on October 25, it also splits preferences into two pages and updates edgesnap.library to 2.25, fixing window restoration and divider handling.
The interesting change is not another screen zone. It is choosing how to control the same engine: dragging, the keyboard or automation, without reimplementing window placement. Compared with 0.43 and its window and divider drag changes, this release mainly changes how EdgeSnap fits into the rest of the desktop.
Configurable hotkeys, unchanged defaults
The default combinations remain those of 0.43. What is new is that every action can be assigned a different combination through the Hotkeys preferences page, icon tooltypes or Shell arguments. They use the input descriptions understood by Exchange, such as HOTKEYLEFT="ctrl alt x".
An empty field or none leaves an action without a hotkey; the parser also accepts off. The four corner zones now have direct actions, such as HOTKEYTOPLEFT, but have no keys assigned by default. Existing users therefore do not have to relearn their setup or discover unexpected new combinations.
The preferences reject descriptions the system does not recognise and duplicates of the same parsed combination. If a problematic setting reaches the commodity instead, EdgeSnap skips the key and reports it in its output rather than refusing to start. There is a documented AROS difference: its ParseIX can interpret the first letter of an unknown word. Validation follows the operating system and is not identical across platforms.
Saved changes take effect without restarting EdgeSnap. The code rebuilds the key filters while keeping the mouse input path active, an important detail for avoiding a lost button release during a drag.
Two preference pages and access from Exchange
The window separates Snapping and Hotkeys, placing the width cycle beside the side hotkeys. AmigaOS 4 uses ReAction; MorphOS and AROS use MUI and Zune pages. A shared settings table remains the basis of the native interfaces.
The split also helps on shorter screens: the documentation says the previous Zune panel had reached 735 pixels on a 768-pixel screen. Exchange’s Show button now opens preferences; CX_POPKEY, also available as POPKEY, does the same when assigned a key. A second request brings an already-open window to the front.
The EDGESNAP ARexx port
The port is named EDGESNAP. It exposes SNAP, RESTORE, QUERY, SELECT, PREFS, ENABLE, DISABLE, VERSION, HELP and QUIT. For example, this line requests left snapping for a window whose title matches the supplied pattern:
rx "ADDRESS EDGESNAP 'SNAP LEFT TITLE=#?Shell#?'"
Without TITLE, commands that operate on a window use the active one: when launched from a Shell, that may be the Shell itself. The parameter accepts case-insensitive AmigaDOS patterns; the first matching window is selected, searching from the frontmost screens. SNAP covers halves, quarters, maximisation and the centre; repeating left or right uses the width cycle already available from the keyboard.
QUERY returns the state in RESULT, such as the zone, NONE or PLACED for a position requested by a program. Scripts need OPTIONS RESULTS. The documented return codes are 0 for success, 5 for refusal and 10 for an unrecognised command or argument.
ARexx needs an installed, running interpreter. On MorphOS, the system’s rexxsyslib.library alone does not include one: it must be added separately. On AROS One the command is SYS:Rexxc/RX; the manual warns not to trust its RC variable after calling a port, while the trace shows the code and RESULT works. A missing ARexx library prevents the port from opening, not normal EdgeSnap operation.
Library 2.25: fixes that matter during a drag
The program version, 0.5 beta, and the library version, 2.25, identify different things. The latter incorporates a review of 2.24 behaviour: checks for windows closed while the library is waiting, fixes for clicks beside a divider on AROS and two cases involving restoration of the pre-snap window size after dragging away.
In particular, a maximised window can return to its original size after a small drag without requiring excessive movement. The case of a window following the pointer during a drag is also corrected. Library clients additionally get stricter checks on rectangles and coordinates representable by Intuition, divider validity and option application: a bad value should not leave partial changes behind.
The practical value of 0.5 lies here: adding automation without creating a second snapping engine. The ARexx port calls the same operations as the hotkeys, and the library continues to validate a window before acting on it. This is not an announcement of official adoption by the operating systems.
Downloads, platforms and verification
The four official archives in the GitHub 0.5 beta release are:
- AmigaOS 4 and MorphOS, in a shared package. Aminet page.
- AROS x86_64 ABIv11. Aminet page.
- AROS aarch64, including Raspberry Pi. Aminet page.
- AROS i386 ABI v0. Aminet page.
For this article, all four GitHub assets were downloaded and checked against their published SHA-256 and MD5 values, with archive integrity verified. All eight core suites also passed when compiled on the Mac as C89. These are package and portable-code checks, not a new test on Amiga hardware.
The release notes report tests on MorphOS 3.20 on a PowerMac G5, including ARexx, and on a Raspberry Pi 400 running AROS aarch64; emulated tests cover AmigaOS 4.1, MorphOS and AROS One 1.3 x86_64. The README also documents library 2.25 testing on emulated AROS One x86: this should not be confused with complete native testing of every package.
When checked on October 26, the Aminet pages already listed 0.5, but not all file links returned a valid download. The links above therefore point to the verified GitHub assets. This remains a beta release with MIT-licensed code: use the included manual for installation and command details.