Π‘Π»Π΅Π΄ 8 ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Sway 1.10, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΈ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ ΠΌΠΎΠ·Π°ΠΉΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ i3 ΠΈ ΠΏΠ°Π½Π΅Π»Π° i3bar. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· MIT. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² Linux ΠΈ FreeBSD.
Sway ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ Π½Π° Π΅ΠΊΡΠ°Π½Π° Π½Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½ΠΎ, Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°Ρ, ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΠΉΠΊΠΈ ΠΌΡΠ΅ΠΆΠ°, ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ° Π΅ΠΊΡΠ°Π½Π½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° Π±ΡΡΠ·ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°. Π‘ΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ i3 Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ IPC, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Sway ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ·ΠΈΡΠ°ΡΠ° Π·Π°ΠΌΡΠ½Π° Π½Π° i3, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ° Wayland Π²ΠΌΠ΅ΡΡΠΎ X11.
ΠΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ: swayidle (ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ°ΠΊΠ°Π½Π΅), swaylock (Π΅ΠΊΡΠ°Π½Π½Π° Π·Π°ΡΠΈΡΠ°), mako (ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ), grim (ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ), slurp (ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΎΠ±Π»Π°ΡΡ Π½Π° Π΅ΠΊΡΠ°Π½Π°), wf-recorder (Π·Π°ΠΏΠΈΡ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ), waybar (ΠΏΠ°Π½Π΅Π» Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ), virtboard (Π΅ΠΊΡΠ°Π½Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°), wl-clipboard (ΡΠ°Π±ΠΎΡΠ° Ρ Π±ΡΡΠ΅ΡΠ° Π·Π° ΠΎΠ±ΠΌΠ΅Π½), wallutils (ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΠ»ΠΎΡ).
Sway ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π²ΡΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° wlroots, Π² ΠΊΠΎΡΡΠΎ ΡΠ° ΠΈΠ·Π½Π΅ΡΠ΅Π½ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ. Wlroots Π²ΠΊΠ»ΡΡΠ²Π° Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ Π·Π° Π°Π±ΡΡΡΠ°Ρ ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ Π΅ΠΊΡΠ°Π½Π°, Π²Ρ ΠΎΠ΄Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π±Π΅Π· Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ OpenGL, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ KMS/DRM, libinput, Wayland ΠΈ X11 (ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° X11-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Xwayland). ΠΡΠ²Π΅Π½ Sway, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° wlroots Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π² Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° C/C++, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π·Π° Scheme, Common Lisp, Go, Haskell, OCaml, Zig, Python ΠΈ Rust.
Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- ΠΠΊΠ»ΡΡΠ΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° wlroots 0.18, ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Wayland ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ linux-drm-syncobj-v1, alpha-modifier-v1, ext-foreign-toplevel-list-v1 ΠΈ ext-transient-seat-v1, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ICC ΡΠ²Π΅ΡΠΎΠ²ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈ Π·Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ API Vulkan, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° Π½ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° GPU ΠΈ Π½ΠΎΠ² API Π·Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π·Π°ΠΏΠ°Π·Π²Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ (stateless) ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ²ΠΈΡΠ΅ Π±ΡΡΠ΅ΡΠΈ ΠΎΡ GPU.
- ΠΠΎΠ΄ΡΡ Π·Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ°Π½Π΅ Π΅ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡ Π² wlroots API, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Π³ΡΠ°ΡΠ° Π½Π° ΡΡΠ΅Π½Π°ΡΠ° (scene graph). ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π΅ Π΄ΠΎΠ²Π΅Π»Π° Π΄ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
- ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΡΠ»Π΅Π΄ Π½ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° GPU.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ICC ΠΏΡΠΎΡΠΈΠ»ΠΈ Π·Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡΡ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° βtearing-control-v1β Π·Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π΅ΡΡΠΈΠΊΠ°Π»Π½Π°ΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ (VSync) Ρ ΠΊΠ°Π΄ΡΠΎΠ²ΠΈΡ Π³Π°ΡΡΡ ΠΈΠΌΠΏΡΠ»Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π½Π° ΡΡΠ» Π΅ΠΊΡΠ°Π½, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΡΠ°Π·ΠΊΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΈΠ·Π²ΠΎΠ΄ (tearing). Π ΠΌΡΠ»ΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°Π·ΠΊΡΡΠ²Π°Π½ΠΈΡ Π΅ Π½Π΅ΠΆΠ΅Π»Π°Π½ Π΅ΡΠ΅ΠΊΡ, Π½ΠΎ Π² ΠΈΠ³ΡΠΈΡΠ΅ Ρ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΆΠΈΠ²Π΅Π΅, Π°ΠΊΠΎ Π±ΠΎΡΠ±Π°ΡΠ° Ρ ΡΡΡ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° βext-transient-seat-v1β Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ ΡΠ΅ΡΠΈΠΈ (seat), ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π·Π°Π΅Π΄Π½ΠΎ Ρ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΊΡΠΌ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΠ»ΠΎΡ, ΠΊΠ°ΡΠΎ VNC ΠΊΠ»ΠΈΠ΅Π½Ρ wayvn, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½Π° ΠΎΡΠ΄Π΅Π»Π½Π° ΡΠ΅ΡΠΈΡ Ρ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΈ ΠΌΠΈΡΠΊΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π».
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° βext-foreign-toplevel-list-v1β Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠΈ, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° Π½Π°ΠΉ-Π³ΠΎΡΠ½ΠΎ Π½ΠΈΠ²ΠΎ (toplevel). ΠΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΠΊΡΠ΅ΠΏΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ Π½Π°Π΄ Π΄ΡΡΠ³ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΠ΅ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Β«xdg-shellΒ», Π² ΠΊΠΎΡΡΠΎ ΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° Π½Π° ΠΈΠ·ΡΠΊΠ°ΡΠ°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΡΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΡΡΠΎΠ½ΠΈ Π·Π° ΡΠ²ΠΈΠ²Π°Π½Π΅ ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠ° ΠΏΡΠΈ Π΄Π΅ΠΊΠΎΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (CSD).
- ΠΠ°ΠΊΠ΅ΡΡΡ dmenu_run, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° dmenu ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½ ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
- Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° pactl Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π³ΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠΈΠ»Π°ΡΠ° Π½Π° Π·Π²ΡΠΊΠ° ΠΈ ΡΡΠΊΠΎΡΡΡΠ°, Π° ΡΡΡΠΎ ΠΈ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° grim Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π½Π° ΡΠ½ΠΈΠΌΠΊΠ°.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈΡ Wayland-ΠΏΡΠΎΡΠΎΠΊΠΎΠ» wl_drm Π΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π° Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎ ΠΌΡΡΡΠΎ ΠΈΠ΄Π²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ linux-dmabuf-v1.
- ΠΠΏΡΠΈΡΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Xwayland Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° (Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Xwayland ΡΠ΅Π³Π° Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° wlroots).

ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
