U pacchettu wayland-protocols 1.43 hè statu liberatu, chì cuntene un inseme di protokolli è estensioni chì cumplementanu u protocolu Wayland di basa è furnisce e capacità necessarie per custruisce servitori composti è ambienti d'utilizatori.
Wayland-Protocols 1.43 aghjusta un novu protocolu "xdg-toplevel-tag" chì permette à i clienti Wayland d'attaccà etichette à e superfici di livellu superiore chì u servitore di cumpusizione pò aduprà per identificà e finestre dopu chì l'applicazione hè stata riavviata (per esempiu, una applicazione puderia definisce etichette "finestra principale" è "impostazioni" per a finestra principale è a finestra di impostazioni). Tale identificazione hè utile per restaurà a pusizione, a dimensione è e proprietà di e finestre dopu un riavviu, è per definisce regule speciali per i tipi individuali di finestre.
Altre migliurazioni includenu l'aghjunta di l'infurmazioni di vincoli di l'operazione di u bordu di a superficia di livellu superiore à u protocolu xdg-shell, chì ponu esse aduprate da u gestore di cumpusizione per informà i clienti Wayland di vincoli cum'è se e finestre ponu esse ridimensionate o micca.
Tutti i protokolli passanu in sequenza per fasi di sviluppu, teste è stabilizazione. Dopu à compie u stadiu di sviluppu (a categuria "inestabile"), u protokollu hè piazzatu in u ramu "staging" è ufficialmente inclusu in u settore di i protokolli wayland, è dopu chì a prova hè finita, hè trasladatu à a categuria stabile. I protokolli da a categuria "staging" ponu digià esse aduprati in servitori cumposti è clienti induve a funziunalità ligata hè necessaria. A cuntrariu di a categuria "instabile", in "staging" hè pruibitu di fà cambiamenti chì violanu a cumpatibilità, ma se i prublemi è i difetti sò identificati durante a prova, a rimpiazzamentu cù una nova versione significativa di u protokollu o una altra estensione Wayland ùn hè micca escluditu.
Per accelerà a consegna di protokolli à i sviluppatori è incuragisce l'implementazione anticipata di i protokolli in i prughjetti esistenti, cumincendu cù a versione precedente, hè stata aghjunta una fase "sperimentale", chì permette di cambiamenti chì rompenu a cumpatibilità è l'aghjunzione di protokolli "cru" chì ponu esse gradualmente purtati à u livellu propiu. Mentre chì un protokollu hà bisognu di furmà una squadra di supportu è riceve un certu nùmeru di ricunniscenza (ACK) da i revisori per entra in a fase di staging, solu ùn deve riceve micca obiezioni (NACK) durante u periodu di rivisione di duie settimane per entra in a fase sperimentale.
A suite di protocolli wayland include attualmente i seguenti protokolli stabili, chì sò retrocompatibili:
- "viewporter" - permette à u cliente di realizà azioni di scaling è cropping in i bordi di a superficia in u latu di u servitore.
- "presentation-time" - furnisce a visualizazione di video.
- "xdg-shell" hè una interfaccia per creà è interagisce cù superfici cum'è Windows, chì vi permette di spustà in u screnu, colapsà, espansione, ridimensionà, etc.
- "linux-dmabuf" - furnisce capacità per creà wl_buffers basati in DMA-BUF.
- "tablet" - urganizazione di input da tavule grafiche.
Protokolli pruvati in u ramu "staging":
- drm-lease - furnisce e risorse necessarie per furmà una maghjina stereo cù diversi buffers per l'ochji di manca è destra quandu si mostranu nantu à i caschi di realtà virtuale.
- "ext-session-lock" - definisce i mezi di chjude a sessione, per esempiu, durante u funziunamentu di u salvatore di schermu o l'output di u dialogu di autentificazione.
- "single-pixel-buffer" - permette di creà buffers unicu pixel chì includenu quattru valori RGBA 32-bit.
- "xdg-activation" - permette di trasfiriri focus trà e diverse superfici di u primu livellu (per esempiu, usendu xdg-activation, una applicazione pò cambià u focus à l'altru).
- content-type - Permette à i clienti di passà l'infurmazioni nantu à u cuntenutu resu à u servitore compostu, chì pò esse usatu per ottimisà u cumpurtamentu cunzignatu di u cuntenutu, cum'è stabilisce e proprietà specifiche di DRM cum'è "tipu di cuntenutu". U supportu per i seguenti tippi di cuntenutu hè dichjaratu: nimu (ùn ci hè micca infurmazione nantu à u tipu di dati), foto (output di foto digitali chì richiede un prucessu minimu), video (video o animazione, una sincronizazione più precisa hè necessaria per eliminà stuttering) è ghjocu. (partite di partenza, uscita da ritardu minimu).
- ext-idle-notify - Permette à i servitori composti di mandà notificazioni di inattività di l'utilizatori à i clienti, chì ponu esse aduprati per attivà modi supplementari di risparmiu di energia dopu una certa quantità di inattività.
- tearing-control - permette di disattivà a sincronizazione verticale (VSync) cù un impulsu damping verticale in appiicazioni full-screen, utilizatu per pruteggiri contr'à a lacrime in output. In l'applicazioni multimediali, l'artefatti dovuti à a lacrime sò un effettu indesevule, ma in i prugrammi di ghjoculi, l'artefatti ponu esse tollerati se trattà cun elli provoca ritardi supplementari.
- ext-foreign-toplevel-list - Retrieves infurmazione nantu à e superfici pusate à u livellu più altu, chì permettenu di urganizà Windows per dock in cima à l'altru cuntenutu, per esempiu, per aghjunghje i vostri propri pannelli è switches di finestra.
- security-context - permette di identificà i clienti cù l'isolamentu di sandbox. Un cliente pò registrà una nova cunnessione à un servitore compostu basatu in Wayland è attaccà un cuntestu di sicurezza à questu, dopu chì u gestore compostu limitarà e capacità dispunibili à a cunnessione stabilita basatu annantu à u cuntestu di sicurità specificatu.
- cursor-shape hè un modu alternativu per persunalizà l'aspettu di u cursore, basatu annantu à passà una seria d'imaghjini di cursore invece di snapping à una superficia (wl_surface).
- "ext-transient-seat" - cuncepitu per creà sessioni temporanee indipendenti (sede) pensate per l'usu cù i dispositi di input virtuale. Per esempiu, quandu implementate l'abilità di cunnette à un desktop remoto, u protocolu permette di creà una sessione separata per ogni utilizatore cù un teclatu virtuale è un mouse.
- "xdg-toplevel-drag" - estende u mecanismu di "drag & drop" cù a capacità di attaccà finestri di u livellu superiore à una operazione di trascinamentu, chì pò esse aduprata, per esempiu, per urganizà barre di strumenti di trascinamentu o tabulazioni di u navigatore cù u mouse. U novu protokollu permette di creà parti staccabili di una finestra chì, quandu trascinata da quella finestra, diventanu novi finestri è ponu esse spustate nantu à a finestra esistente prima di esse riattaccata.
- "xdg-dialog" - permette di assignà attributi specifichi di dialogu à e superfici di primu livellu, per esempiu, pudete creà dialoghi modali chì bluccà l'interazzione di l'utilizatori cù u restu di l'interfaccia.
- "linux-drm-syncobj" - furnisce strumenti per a sincronizazione esplicita di buffer utilizendu oggetti di sincronizazione DRM (Direct Rendering Manager). Si assume chì in u cuntestu di a sincronizazione quandu si rende à un buffer, u protokollu prupostu hà da migliurà u travagliu cù i cunduttori basati nantu à l'API di gràfiche Vulkan è OpenGL (l'implementazione hè basatu nantu à i gestori in i cunduttori). U novu protokollu permette di assicurà chì una operazione di draw à un buffer hè cumpleta prima chì u gestore di cumpusizioni mostra quellu buffer.
- alfa-modificatore, chì permette à i clienti di cambià u nivellu di trasparenza di a superficia è l'operazioni di trasferimentu per assicurà a trasparenza à u latu di u servitore compostu, chì à u turnu pò redirige queste operazioni à KMS.
- xdg-toplevel-icon - unisce l'icona à a finestra di u livellu superiore.
- ext-image-capture-source è ext-image-copy-capture - urganizazione di catturà u cuntenutu affissatu nantu à u screnu.
- xdg-system-bell - permette di fà un signalu di u sistema, chì pò esse usatu, per esempiu, cum'è un avvisu in un emulatore di terminal. A forma di l'output di u signale hè determinata à a discrezione di u manager compostu pò esse micca solu un sonu, ma una risposta visuale.
- fifo - implementa un mecanismu FIFO (first in, first out) per processà a fila di aghjurnamentu di cuntenutu di a superficia mostrata. In u latu praticu, u protokollu permette à l'output per aduprà aspittendu a scansione verticale per compie (vblank) invece d'utilizà callback callback ogni volta chì hè pronta per vede un novu quadru, chì risolve u prublema di alta carica di GPU quandu si usa VSync.
- commit-timing - permette di ligà un limitu di tempu à u cuntenutu di a superficia (u servitore compostu deve riflette u cambiamentu di cuntenutu, se pussibule dopu à u tempu specificatu, ma micca prima).
- ext-data-control - Permette à i clienti privilegiati di cuntrullà u prucessu di dati, per esempiu per implementà i gestori di clipboard.
- ext-workspace — implementa u cuncettu virtualnyx rabochikh stolov è offre eventi cù informazioni nantu à u statu di i desktop, è ancu a capacità di attivà è disattivà i desktop. U protocolu pò esse adupratu per creà dashboard è indicatori chì mostranu una lista di desktop virtuali dispunibili è permettenu di cambià trà di elli.
- gestione di u culore — furnisce capacità per a gestione di u culore è supportu per l'alta gamma dinamica (HDR). Questa estensione permette à l'applicazioni client d'ottene informazioni nantu à e proprietà relative à u culore di i dispositivi di output è di trasmette dati nantu à e proprietà di u culore di u so propiu cuntenutu à u servitore cumpostu. In modu cumpostu, servitore Questa infurmazione pò esse aduprata per a gestione automatica di u culore quandu si visualizza cuntenutu nantu à diversi dispositivi di output, per esempiu, per cunvertisce u cuntenutu in una presentazione adatta per a visualizazione nantu à monitor HDR. I profili ICC sò aduprati per discrive i spazii di culore.
Protocolli chì sò sviluppati in u ramu "instable":
- "fullscreen-shell" - u travagliu di cuntrollu in u modu di schermu pienu.
- "input-method" - trasfurmazioni di metudi di input.
- "idle-inhibit" - bluccà u lanciamentu di u screensaver (screen saver).
- "input-timestamps" - timestamps per l'eventi di input.
- "keyboard-shortcuts-inhibit" - Cuntrolla l'attache di i tasti di scelta rapida è i tasti di scelta rapida.
- "linux-explicit-synchronization" hè specificu per Linux mecanismu per a sincronizazione di i buffer in relazione à a superficia.
- "pointer-gestures" - cuntrollu da schermi touch.
- "limitazioni di puntatore" - limitazioni di puntatore (bloccante).
- "selezzione primaria" - per analogia cù X11, furnisce u clipboard primariu (selezzione primaria), l'inserimentu di l'infurmazioni da quale hè di solitu fattu cù u buttone medio di u mouse.
- "eventi di puntatore relativo" - eventi di puntatore relative.
- "text-input" - urganizazione di input di testu.
- "xdg-foreign" hè una interfaccia per interagisce cù e superfici di un cliente "vicinu".
- "xdg-decoration" - rende e decorazioni di a finestra da u latu di u servitore.
- "xdg-output" - infurmazione supplementaria nantu à a pruduzzioni video (usata per a scala fraccionaria).
- "xwayland-keyboard-grab" - Capture input in applicazioni XWayland.
Source: opennet.ru
