Π‘Π»Π΅Π΄ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΡ ΡΡΡΠ²ΡΡ Weston 13.0, ΠΊΠΎΡΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΏΠΎΠ΄ΠΏΠΎΠΌΠ°Π³Π°ΡΠΈ ΠΏΡΠ»Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland Π² Enlightenment, GNOME, KDE ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΡΠ΅Π΄ΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Weston Π΅ Π½Π°ΡΠΎΡΠ΅Π½Π° ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° Wayland Π² Π΄Π΅ΡΠΊΡΠΎΠΏ ΡΡΠ΅Π΄ΠΈ ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎ-ΡΠ°Π·Π²Π»Π΅ΠΊΠ°ΡΠ΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΈ, ΡΠ΅Π»Π΅Π²ΠΈΠ·ΠΎΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ MIT Π»ΠΈΡΠ΅Π½Π·.
Π‘ΠΌΡΠ½Π°ΡΠ° Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈΡ Π½ΠΎΠΌΠ΅Ρ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° Weston Π΅ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π΅Π½Π° ΠΎΡ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΡΡΠ°Π²Π°Ρ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ°. ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π½ΠΎΠ²ΠΈΡ ΠΊΠ»ΠΎΠ½ Π½Π° Weston:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° ΠΈΠ·Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΡΠ΅Π΄Π΅Π½ Π²ΡΠΎΡΠΈΡΠ΅Π½ Π±Π΅ΠΊΠ΅Π½Π΄ vnc, rdp ΠΈ pipewire.
- Π Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ backend-vnc, backend-pipewire ΠΈ backend-rdp Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ°Π½Π΅ Ρ OpenGL.
- Π ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΊΠΈΠΎΡΠΊΠΈ (kiosk-shell) Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΡΠ» Π΅ΠΊΡΠ°Π½. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠ»ΠΎΡΡΠ½ΠΈ ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π· xwayland.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΈΠΏΠΎΠΊΡΠΈΠ²Π°Ρ (overlapping) ΠΈΠ·Ρ ΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠΈ, ΠΏΠΎΠΊΠ°Π·Π²Π°Π½ΠΈ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- Π ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° desktop-shell Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΡΡΠ° Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (pointer confinement) Π½Π° ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΡΠ» Π΅ΠΊΡΠ°Π½.
- Π Π±Π΅ΠΊΠ΅Π½Π΄Π° drm-backend ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π²Π΅ΡΡΠΈΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° libgbm Π΄ΠΎ 21.1.1.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° weston_view_move_to_layer() Π·Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΠ» Π²ΠΈΠ΄ΠΈΠΌΠ°ΡΠ° ΠΎΠ±Π»Π°ΡΡ (view) Π½Π° ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠ»ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Ρ ΠΎΡ Π³ΡΠ°ΡΠ° Π½Π° ΡΡΠ΅Π½Π°ΡΠ°, Π°ΠΊΠΎ Π·Π° ΡΠ»ΠΎΠΉ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ NULL.
- Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ weston_view_set_position, weston_touch ΠΈ weston_output, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈΡΠ΅, ΡΠ° ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½ΠΈ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° weston_coord.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ weston_log_scopes_iterate() Π·Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π½Π° ΠΎΠ±Π»Π°ΡΡΠΈ Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅.
- ΠΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΡ launcher-logind, Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° launcher-libseat, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° systemd-logind.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
