เบเบฒเบ™เบ›เปˆเบญเบเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡ Sway 1.5 เป‚เบ”เบเปƒเบŠเป‰ Wayland

เบเบฐเบเบฝเบก เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš เปเบเบง 1.5, เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰เป‚เบ›เป‚เบ•เบ„เบญเบ™ Wayland เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™เบเบฑเบšเบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบเบฐเป€เบšเบทเป‰เบญเบ‡ i3 เปเบฅเบฐเปเบœเบ‡ i3bar. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบ™ C เปเบฅเบฐ เปเบˆเบเบขเบฒเบเป‚เบ”เบ เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT. เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เปเบ™เปƒเบชเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ Linux เปเบฅเบฐ FreeBSD.

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบš i3 เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡, เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐ IPC, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ Sway เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบ—เบตเปˆเป‚เบ›เปˆเบ‡เปƒเบชเบชเปเบฒเบฅเบฑเบš i3, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Wayland เปเบ—เบ™ X11. Sway เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบงเบฒเบ‡เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเปƒเบ™เบซเบ™เป‰เบฒเบˆเปเบšเปเปˆเปเบกเปˆเบ™เบžเบทเป‰เบ™เบ—เบตเปˆ, เปเบ•เปˆเบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™. Windows เบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เบขเบนเปˆเปƒเบ™เบ•เบฒเบ‚เปˆเบฒเบเป„เบŸเบŸเป‰เบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบˆเปเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบฅเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบขเปˆเบฒเบ‡เป„เบงเบงเบฒเป‚เบ”เบเปƒเบŠเป‰เบžเบฝเบ‡เปเบ•เปˆเปเบ›เป‰เบ™เบžเบดเบก.

เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเป€เบซเบ™เบต: เบžเบงเบเป€เบฎเบปเบฒเบเบดเบ™ (เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบทเป‰เบ™เบซเบผเบฑเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เบฃเป‚เบ•เบ„เป KDE idle), swaylock (เบ•เบปเบงโ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹เบซเบ™เป‰เบฒโ€‹เบˆเปโ€‹)โ€‹, เบกเบฒเป‚เบ (เบœเบนเป‰โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เปเบˆเป‰เบ‡โ€‹เบเบฒเบ™โ€‹)โ€‹, เบ‚เบตเป‰เบฎเป‰เบฒเบ (เบ–เปˆเบฒเบเบžเบฒเบšเปœเป‰เบฒเบˆเป), เบฅเบญเบ (เป€เบฅเบทเบญเบเบžเบทเป‰เบ™เบ—เบตเปˆเปƒเบ™เบซเบ™เป‰เบฒเบˆเป), wf-เบšเบฑเบ™เบ—เบถเบ (เบ–เปˆเบฒเบโ€‹เบงเบดโ€‹เบ”เบตโ€‹เป‚เบญโ€‹)โ€‹, เปเบ–เบšเบ—เบฒเบ‡ (เปเบ–เบšโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹)โ€‹, virtboard (เปเบ›เป‰เบ™โ€‹เบžเบดเบกโ€‹เบซเบ™เป‰เบฒโ€‹เบˆเปโ€‹)โ€‹, wl-clipboard (เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบเบฑเบš clipboardโ€‹)โ€‹, wallutils (เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบฎเบนเบšเบงเปเป€เบ›เป€เบ›เบต desktop).

Sway เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ›เบฑเบ™เป‚เบ„เบ‡เบเบฒเบ™ modular เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบซเปเบชเบฐเบซเบกเบธเบ” wlroots, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš. Wlroots เบ›เบฐเบเบญเบšเบกเบต backends เบชเปเบฒเบฅเบฑเบš
abstraction เบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เป‰เบฒเบˆเป, เบญเบธเบ›เบฐเบเบญเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™, เบเบฒเบ™เบชเบฐเปเบ”เบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบเบปเบ‡เบเบฑเบš OpenGL, เบ›เบฐเบ•เบดเบชเปเบฒเบžเบฑเบ™เบเบฑเบš KMS/DRM, libinput, Wayland เปเบฅเบฐ X11 (เบŠเบฑเป‰เบ™เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ X11 เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Xwayland). เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบ Sway, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” wlroots เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบซเป‰เบฒเบงเบซเบฑเบ™เปƒเบ™ เป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†เบฅเบงเบกเบ—เบฑเบ‡ Librem5 ะธ cage. เบ™เบญเบเบˆเบฒเบ 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

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™