แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž”แžšแžทแžŸแŸ’แžแžถแž“แžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ Sway 1.2 แžŠแŸ„แž™แž”แŸ’แžšแžพ 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 แŸ”

แž“แŸ…แž€แŸ’แž“แžปแž„แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แžแŸ’แž˜แžธ:

  • แž€แžถแžšแž„แžถแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแžŠแžพแž˜แŸ’แž”แžธแž€แŸ‚แž›แž˜แŸ’แžขแž—แžถแž–แž†แž”แž‚แŸ’แž“แžถแž‡แžถแž˜แžฝแž™แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž”แž„แŸ’แžขแžฝแž…
    i3 แŸฆแŸฃแŸขแŸ .

  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž‡แž˜แŸ’แžšแžพแžŸแžŠแžพแž˜แŸ’แž”แžธแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžกแžพแž„แžœแžทแž‰;
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž”แžทแž‘แž”แžพแž€แž˜แžฝแž™แžŠแžพแž˜แŸ’แž”แžธแž‡แŸ’แžšแžพแžŸแžšแžพแžŸแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžšแž›แŸ†แž“แžถแŸ†แžŠแžพแž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ†แž”แŸ‚แž€แž”แž„แŸ’แžขแžฝแž…แž‘แŸ…แž‡แžถแž•แŸ’แž‘แžถแŸ†แž„ แžฌแž…แŸ†แž แŸ€แž„ (แž‡แž„แŸ‹)แŸ”
  • แž™แž“แŸ’แžแž€แžถแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แŸ’แžแžผแžšแž”แŸ’แž›แž„แŸ‹แž€แŸ’แžแžถแžšแž…แžปแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแžฑแŸ’แž™แž”แŸ’แžšแžŸแžพแžšแžกแžพแž„ แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž”แŸ’แžšแž—แŸแž‘แžงแž”แž€แžšแžŽแŸแž”แž‰แŸ’แž…แžผแž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜ แž แžพแž™แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถแžแŸ’แž˜แžธ xkb_switch_layout แžแŸ’แžšแžผแžœแž”แžถแž“แžŸแŸ’แž“แžพแžกแžพแž„แŸ”
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŸแŸ’แž”แŸ‚แž€แž‘แžŸแŸ’แžŸแž“แŸแž‘แŸ’แžšแž“แžทแž…แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžŠแŸ‚แž›แž–แžถแž€แŸ’แž™แž”แž‰แŸ’แž‡แžถ xcursor_theme แžแŸ’แž˜แžธแžแŸ’แžšแžผแžœแž”แžถแž“แžŸแŸ’แž“แžพแžกแžพแž„แŸ”
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แž„แŸ’แžขแžฝแž…แž›แŸแž…แžกแžพแž„แž‘แŸ…แžŸแŸ’แžšแž‘แžถแž”แŸ‹-แžŸแŸ‚แž›;
  • แž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž–แžทแž’แžธแž€แžถแžš Wayland wlr-output-management-v1, แž˜แžถแž“แž”แŸ†แžŽแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŠแŸ†แžกแžพแž„แžงแž”แž€แžšแžŽแŸแž‘แžทแž“แŸ’แž“แž•แž›;
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžขแŸแž€แŸ’แžšแž„แŸ‹แžขแžถแžแžผแž˜แžแžถแž˜แžšแž™แŸˆ wlr_output API;
  • แž”แžถแž“แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแž€แŸ†แžŽแžแŸ‹ calibration_matrix แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž€แŸ’แžšแžทแžแžขแŸแž€แŸ’แžšแž„แŸ‹แž”แŸ‰แŸ‡แŸ”
  • แž‡แžฝแžŸแž‡แžปแž›แž€แžถแžšแž›แŸแž…แž’แŸ’แž›แžถแž™แžขแž„แŸ’แž‚แž…แž„แž…แžถแŸ† แž“แžทแž„แž”แž‰แŸ’แž แžถแž‚แžถแŸ†แž„แž˜แžฝแž™แž…แŸ†แž“แžฝแž“แŸ”

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

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹