ΠΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅Π»ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° Sway 1.6, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ³ΠΎ Ρ ΠΌΠΎΠ·Π°ΠΈΡΠ½ΡΠΌ ΠΎΠΊΠΎΠ½Π½ΡΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ i3 ΠΈ ΠΏΠ°Π½Π΅Π»ΡΡ i3bar. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT. ΠΡΠΎΠ΅ΠΊΡ Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Linux ΠΈ FreeBSD.
i3 ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» ΠΈ IPC, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Sway Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠ·ΡΠ°ΡΠ΅Π½ i3 Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π», ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Wayland Π²ΠΌΠ΅ΡΡΠΎ X11. Sway Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΡΠΈ Π½Π° Π΅ΠΊΡΠ°Π½Π° Π½Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½ΠΎ, Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ ΡΠ° ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π² ΠΌΡΠ΅ΠΆΠ°, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° Π΅ΠΊΡΠ°Π½Π° ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ Π΄Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΡΠΈ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°ΡΠ°.
ΠΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠ° ΡΡΠ΅Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΠΏΡΡΡΡΠ²Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ: swayidle (ΡΠΎΠ½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ KDE idle ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°), swaylock (ΡΠΊΡΠΈΠΉΠ½ΡΠ΅ΠΉΠ²ΡΡ), mako (ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΠ΅Π»Π΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ), grim (ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ), slurp (ΠΈΠ·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΡ Π½Π° Π΅ΠΊΡΠ°Π½Π°), wf-ΡΠ΅ΠΊΠΎΡΠ΄Π΅Ρ (Π·Π°ΡΠ½Π΅ΠΌΠ°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ), ΠΏΡΡΠ½Π° Π»Π΅Π½ΡΠ° (Π»Π΅Π½ΡΠ° Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ), virtboard (Π΅ΠΊΡΠ°Π½Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°), wl-clipboard (ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠ»ΠΈΠΏΠ±ΠΎΡΠ΄Π°), wallutils (ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΏΠ΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΠ»ΠΎΡ).
Sway ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΊΠ°ΡΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π²ΡΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° wlroots, ΠΊΠΎΡΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ. Wlroots Π²ΠΊΠ»ΡΡΠ²Π° Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ²Π΅ Π·Π° Π°Π±ΡΡΡΠ°ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΅ΠΊΡΠ°Π½Π°, ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅, ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π±Π΅Π· Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ OpenGL, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ KMS/DRM, libinput, Wayland ΠΈ X11 (ΠΎΡΠΈΠ³ΡΡΠ΅Π½ Π΅ ΡΠ»ΠΎΠΉ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° X11 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Xwayland). Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Sway, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° wlroots ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π² Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Librem5 ΠΈ Cage. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ C/C++, ΡΠ²ΡΡΠ·Π²Π°Π½ΠΈΡΡΠ° ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π·Π° Scheme, Common Lisp, Go, Haskell, OCaml, Python ΠΈ Rust.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π²Π²ΠΎΠ΄Π° (IME) Π² ΡΠΎΡΡΠ°Π²Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ ΡΠΊΡΠ°Π½ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
- ΠΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΠ»Π°Π²Π½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠΎΠ½.
- Π ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ Flatpak ΠΈ Snap Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» xdg-foreign.
- Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΠΎΠΊΠΎΠ½Π½ΡΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ i3 ΡΠ»ΡΡΡΠ΅Π½Π° Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΡ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΡ ΠΎΠΊΠΎΠ½ Π½Π° ΡΠΊΡΠ°Π½Π΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Π΄Π»Ρ ΡΠΊΡΡΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°Π±ΠΎΡΠ°.
- Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΡΠ·ΠΈΠ½Ρ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π±Π΅Π· systemd ΠΈΠ»ΠΈ elogind.
- ΠΠΎΠ²ΡΡΠ΅Π½Π° Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΡΡΠ΅ΡΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ X11.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru