αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž”αžšαž·αžŸαŸ’αžαžΆαž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Sway 1.5 αžŠαŸ„αž™αž”αŸ’αžšαžΎ Wayland

αžšαŸ€αž”αž…αŸ† αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαž˜αžΆαžŸαž’αžΆαžαž» αž€αž€ ៑.αŸ¦αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž„αžŸαž„αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αž·αž’αžΈαž€αžΆαžš Wayland αž“αž·αž„αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αž–αŸαž‰αž›αŸαž‰αž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αž„αŸ’αž’αž½αž…αžŠαŸ‚αž›αž˜αžΆαž“αž€αŸ’αžšαž‘αžΆαž€αŸ’αž”αžΏαž„ i3 αž“αž·αž„αž”αž“αŸ’αž‘αŸ‡ i3bar. αž€αžΌαžŠαž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆ C αž“αž·αž„ αž…αŸ‚αž€αž…αžΆαž™β€‹αžŠαŸ„αž™ αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ MIT αŸ” αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž˜αžΆαž“αž‚αŸ„αž›αž”αŸ†αžŽαž„αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž›αžΎ Linux αž“αž·αž„ FreeBSD αŸ”

αž—αžΆαž–αž†αž”αž‚αŸ’αž“αžΆαžšαž”αžŸαŸ‹ i3 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž“αŸ…αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αž€αž˜αŸ’αžšαž·αž IPC αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™ Sway αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαž€αžΆαžšαž‡αŸ†αž“αž½αžŸ i3 αžαž˜αŸ’αž›αžΆαž—αžΆαž–αžŠαŸ‚αž›αž”αŸ’αžšαžΎ Wayland αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ X11 αŸ” Sway αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αžŠαžΆαž€αŸ‹β€‹αž”αž„αŸ’αž’αž½αž…β€‹αž“αŸ…β€‹αž›αžΎβ€‹αž’αŸαž€αŸ’αžšαž„αŸ‹β€‹αž˜αž·αž“β€‹αž˜αŸ‚αž“β€‹αž‡αžΆβ€‹αž›αŸ†αž β€‹αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž‡αžΆβ€‹αž‘αžΌαž‡αžΈαžαž›αŸ” αžœαžΈαž“αžŠαžΌαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž‘αžΆαž…αžαŸ’αžšαž„αŸ’αž‚αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸαž›αŸ’αž’αž”αŸ’αžšαžŸαžΎαžšαž“αŸƒαž‘αŸ†αž αŸ†αž’αŸαž€αŸ’αžšαž„αŸ‹ αž“αž·αž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž”αž„αŸ’αž’αž½αž…αž”αžΆαž“αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαžŠαŸ„αž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžΎαž€αŸ’αžαžΆαžšαž…αž»αž…αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαž”αžšαž·αž™αžΆαž€αžΆαžŸαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αŸαž‰αž›αŸαž‰ αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αŸ– αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž‰αŸ‰αžΆαŸ† (αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™αž’αž“αž»αžœαžαŸ’αžαž–αž·αž’αžΈαž€αžΆαžšαž‘αŸ†αž“αŸαžš KDE) swaylock (αž’αžΆαžαž»αžšαž€αŸ’αžŸαžΆαž’αŸαž€αŸ’αžšαž„αŸ‹), αž˜αŸ‰αžΆαž€αžΌ (αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„), αž€αŸ’αžšαŸ€αž˜αž€αŸ’αžšαŸ† (αžαžαžšαžΌαž”αž’αŸαž€αŸ’αžšαž„αŸ‹), αžšαž’αž·αž› (αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžαŸ†αž”αž“αŸ‹αž“αŸ…αž›αžΎαž’αŸαž€αŸ’αžšαž„αŸ‹) wf-ថត (ថតវីដេធូ), αžšαž”αžΆαžšαž•αŸ’αž›αžΌαžœ (αžšαž”αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ), αž€αŸ’αžαžΆαžšαž”αž“αŸ’αž‘αŸ‡ (αž€αŸ’αžαžΆαžšαž…αž»αž…αž’αŸαž€αŸ’αžšαž„αŸ‹), wl-αž€αŸ’αžαžΆαžšαžαž˜αŸ’αž”αŸ€αžαžαŸ’αž‘αžΆαžŸαŸ‹ (αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αŸ’αžαžΆαžšαžαž˜αŸ’αž”αŸ€αžαžαŸ’αž‘αžΆαžŸαŸ‹), wallutils (αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž•αŸ’αž‘αžΆαŸ†αž„αžšαžΌαž”αž—αžΆαž–αž•αŸ’αž‘αŸƒαžαž») αŸ”

Sway αž€αŸ†αž–αž»αž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž‘αžΎαž„β€‹αž‡αžΆβ€‹αž‚αž˜αŸ’αžšαŸ„αž„β€‹αž˜αŸ‰αžΌαžŒαž»αž›β€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αžŸαžΆαž„αžŸαž„αŸ‹β€‹αž“αŸ…β€‹αž›αžΎβ€‹αž€αŸ†αž–αžΌαž›β€‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ wlrootsαžŠαŸ‚αž›αž•αŸ’αž‘αž»αž€αž“αžΌαžœαž”αž»αž–αŸ’αžœαž αŸαžαž»αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŸαž˜αžΆαžŸαž’αžΆαžαž»αŸ” Wlroots αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› backends αžŸαž˜αŸ’αžšαžΆαž”αŸ‹
αž’αžšαžΌαž”αžΈαž“αŸƒαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž’αŸαž€αŸ’αžšαž„αŸ‹ αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž…αžΌαž› αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž…αžΌαž›αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹ OpenGL αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™ KMS/DRM, libinput, Wayland αž“αž·αž„ X11 (αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ X11 αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ Xwayland)αŸ” αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎ Sway αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ wlroots αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž™αŸ‰αžΆαž„αžŸαž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„ αž‚αž˜αŸ’αžšαŸ„αž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”αžšαž½αž˜αž‘αžΆαŸ†αž„αŸ” αž›αžΈαž”αžšαŸ‰αŸαž˜ αŸ₯ ΠΈ αž‘αŸ’αžšαž»αž„. αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎ C/C++ αž€αžΆαžšαž…αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Scheme, Common Lisp, Go, Haskell, OCaml, Python αž“αž·αž„ Rust αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžαŸ’αž˜αžΈ:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСской ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° систСмах Π±Π΅Π· ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° (headless) ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ create_output (ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ обращСния ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· WayVNC).
  • αžαžΆαž˜αžšαž™αŸˆ Wayland-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ input-method ΠΈ text-input Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π²ΠΎΠ΄Π° (IME).
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ синхронизации (VRR, Variable Refresh Rate) для сокращСния дроТания изобраТСния Π² ΠΈΠ³Ρ€Π°Ρ….
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° viewporter, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ качСство Ρ€Π°Π±ΠΎΡ‚Ρ‹ старых ΠΈΠ³Ρ€.
  • БистСмам Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ доступа ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ столу прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° wlr-foreign-toplevel-management, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ собствСнныС ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ ΠΎΠΊΠΎΠ½.

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹