EdgeSnap 0.43 beta: finestre e divisori più naturali

Indice della guida

EdgeSnap 0.43 beta è disponibile dal 20 ottobre 2026, con una modifica immediatamente percepibile nell’uso quotidiano: una finestra agganciata a metà schermo torna alle dimensioni precedenti quando viene trascinata via e rilasciata lontano dai bordi. In parallelo, edgesnap.library arriva alla versione API 2.24 e rende i divisori dei gruppi utilizzabili in modo più preciso da window manager e programmi esterni.

EdgeSnap rimane un progetto in C89 per AmigaOS 4, MorphOS e AROS, costruito senza patch alle funzioni di sistema. La commodity raccoglie l’input e usa le chiamate pubbliche di Intuition, mentre la libreria gestisce geometria, stato e politiche. La 0.42 aveva portato l’installazione anche sul Raspberry Pi; la 0.43 lavora sul gesto inverso allo snap e sulle separazioni fra finestre.

Trascinare via significa recuperare la vecchia dimensione

Finora prendere una finestra affiancata e allontanarla dal bordo lasciava da gestire anche la sua dimensione. Ora, trascinandola dalla barra del titolo e rilasciandola fuori dalle zone di aggancio, si recupera la dimensione precedente allo snap. La finestra ritorna sotto il puntatore, che conserva la propria posizione lungo la barra: non viene ripristinata semplicemente nella vecchia posizione sullo schermo.

Il comportamento vale per le mezze finestre, i quarti e l’aggancio a tutto schermo. Ci sono due eccezioni importanti: una finestra ridimensionata manualmente dopo lo snap conserva la misura scelta dall’utente, e un rilascio con il tasto di bypass premuto mantiene la dimensione agganciata. Il programma non deve cancellare una modifica deliberata né impedire un trascinamento libero.

L’opzione Old size when dragged away nelle preferenze permette di disattivare il nuovo comportamento, attivo per impostazione predefinita. Nel file di configurazione corrisponde a DRAGRESTORE, mentre l’API espone ES_OPT_DragRestore. Preferenze e parser condividono la stessa definizione dell’opzione, evitando impostazioni offerte dalla GUI ma non riconosciute dal motore.

Il divisore conserva lo spazio fra le finestre

Un layout a finestre affiancate può lasciare un gap intenzionale fra le celle. Il divisore della 0.43 lo conserva durante il trascinamento, invece di chiuderlo o perdere la separazione. Inoltre è utilizzabile tutta la larghezza del gap, che si illumina, non soltanto una sottile striscia centrale: un bersaglio più facile da prendere senza cambiare il layout per errore.

Un semplice clic sul divisore, senza trascinarlo, non sposta più nulla. I divisori vengono gestiti soltanto sullo schermo in primo piano. Sono piccoli dettagli, ma separano un gesto intenzionale da un effetto collaterale quando si lavora su più schermi o si prende il mouse senza voler ridimensionare.

Library 2.24: un divisore non è solo una coordinata

La parte meno visibile riguarda chi vuole costruire un tiling window manager sopra EdgeSnap. Tre chiamate si aggiungono all’interfaccia pubblica:

  • ESnap_QueryDividers elenca i divisori fra le finestre di un gruppo, fornendo un token per ciascuno.
  • ESnap_MoveDividerT sposta il divisore identificato da quel token, rispettando i limiti dimensionali delle finestre.
  • ESnap_QueryDividerWindows restituisce i seriali delle finestre associate al divisore.

Il token identifica le finestre sui due lati, non soltanto una linea dello schermo. Rimane valido durante gli spostamenti dello stesso divisore; se la sua composizione cambia, per esempio perché una finestra si chiude o lascia il gruppo, viene ritirato e non torna valido per un divisore diverso. Si evita così che un vecchio riferimento sposti accidentalmente altre finestre finite sulla stessa coordinata.

Il contratto distingue anche un riferimento scaduto da una finestra spostata manualmente: ES_ERR_STALE e ES_ERR_CHANGED non dicono la stessa cosa. Una chiamata di movimento non scavalca il blocco del gruppo per il chiamante. Le interrogazioni dei token e il movimento hanno contratti distinti, descritti nell’header pubblico.

Anche le chiamate precedenti, introdotte nelle API 2.2 e 2.3, considerano ora le finestre dei gruppi e non propongono i divisori di un gruppo bloccato per chi le chiama. MoveDividerAt segue il divisore interrogato per ultimo dalla stessa task, invece di finire su una separazione diversa comparsa nel frattempo. L’espansione resta quella di un servizio riusabile: la commodity è un client della libreria, non il suo unico utilizzatore possibile.

Quattro archivi per cinque target

La release comprende un pacchetto comune per AmigaOS 4 e MorphOS e tre pacchetti AROS distinti: x86_64 ABIv11, aarch64 per Raspberry Pi e i386 ABI v0. Non sono intercambiabili. Il port i386 non nasce oggi: era già stato aggiunto separatamente alla 0.42 il 15 ottobre; dalla 0.43 viene pubblicato insieme agli altri archivi.

Le preferenze restano native: ReAction su AmigaOS 4, MUI su MorphOS e Zune su AROS. La libreria continua a essere un componente di terze parti: l’obiettivo di renderla proponibile ai sistemi operativi non equivale a un’adozione ufficiale già avvenuta. Non viene annunciata qui una versione per AmigaOS 3 classico.

Cosa è stato controllato

Le note della release riportano prove su hardware MorphOS reale, Raspberry Pi 400 con AROS aarch64 e in emulazione su AmigaOS 4.1, MorphOS, AROS One 1.3 x86_64 e AROS One x86. Sul Pi e nei sistemi emulati le prove hanno compreso l’installazione del pacchetto sopra una versione precedente.

Per questo articolo sono state eseguite sul Mac le otto suite host del core C89, tutte superate: zone, motore, registro, pannelli, configurazione, divisori, gestione fuori schermo e token dei divisori. Sono test della logica portabile, non nuove prove dell’interfaccia sui sistemi Amiga. Sono stati inoltre verificati i quattro archivi LHA, i digest SHA-256 pubblicati da GitHub, gli MD5 delle note e l’integrità con 7-Zip.

Restano separati i problemi grafici già documentati su alcuni driver AROS: superare i test del core non dimostra che ogni driver abbia risolto le tracce delle anteprime. Il README mantiene aperta la conferma su Nouveau e la segnalazione delle aree nere osservate su hardware reale.

Download ufficiali

La pagina ufficiale della 0.43 identifica i quattro target dei pacchetti. Al controllo del 20 ottobre le schede Aminet consultate riportano ancora la 0.42: per scaricare la 0.43 usare questi archivi GitHub, non un vecchio pacchetto presentato come aggiornato. Lo stato di Aminet per ARM64, i386 e x86_64 rimane verificabile dalle rispettive schede.

Fonti

AUTORE

Informatico, sviluppatore e sistemista con una lunga storia tra codice, server Linux, retrocomputer e piattaforme e-learning. Su AndroidLab porta uno sguardo tecnico e pragmatico: meno fumo da brochure, più attenzione a infrastruttura, usabilità, privacy, aggiornamenti e conseguenze concrete delle scelte dei produttori.

Lascia un commento