ΠΠ±ΡΠ°Π²Π΅Π½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΠΎΡ ΠΌΠ΅Π½Π°ΡΠ΅Ρ Sway 1.7, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΎ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ Wayland ΠΈ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π΅Π½ ΡΠΎ i3 ΠΌΠΎΠ·Π°ΠΈΡΠ½ΠΈΠΎΡ ΠΌΠ΅Π½Π°ΡΠ΅Ρ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ ΠΈ ΠΏΠ°Π½Π΅Π»ΠΎΡ i3bar. ΠΠΎΠ΄ΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ C ΠΈ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° MIT. ΠΡΠΎΠ΅ΠΊΡΠΎΡ Π΅ Π½Π°ΠΌΠ΅Π½Π΅Ρ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° Linux ΠΈ FreeBSD.
ΠΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡΠ° ΡΠΎ i3 Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈ IPC, ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Sway Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠ°Π½ΡΠΏΠ°ΡΠ΅Π½ΡΠ½Π° Π·Π°ΠΌΠ΅Π½Π° Π½Π° i3 ΡΡΠΎ ΠΊΠΎΡΠΈΡΡΠΈ Wayland Π½Π°ΠΌΠ΅ΡΡΠΎ X11. Sway Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΡΠΈ Π½Π° Π΅ΠΊΡΠ°Π½ΠΎΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎΡΠ½ΠΎ, ΡΡΠΊΡ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ. ΠΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ ΡΠ΅ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄Π΅Π½ΠΈ Π²ΠΎ ΠΌΡΠ΅ΠΆΠ° ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΡΠΎΡΡΠΎΡΠΎΡ Π½Π° Π΅ΠΊΡΠ°Π½ΠΎΡ ΠΈ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π±ΡΠ·ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°ΡΠ΅ ΡΠΎ ΠΏΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° ΡΠ°ΠΌΠΎ ΡΠ°ΡΡΠ°ΡΡΡΠ°ΡΠ°.
ΠΠ° Π΄Π° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ ΡΠ΅Π»ΠΎΡΠ½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠ° ΡΡΠ΅Π΄ΠΈΠ½Π°, ΡΠ΅ Π½ΡΠ΄Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΠΆΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ: swayidle (ΠΏΡΠΎΡΠ΅Ρ Π²ΠΎ Π·Π°Π΄Π½ΠΈΠ½Π° ΡΡΠΎ Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ Π·Π° Π½Π΅Π°ΠΊΡΠΈΠ²Π΅Π½ KDE), swaylock (ΡΠΊΡΠΈΠ½ ΡΠ΅ΡΠ²Π΅Ρ), mako (ΠΌΠ΅Π½Π°ΡΠ΅Ρ Π·Π° ΠΈΠ·Π²Π΅ΡΡΡΠ²Π°ΡΠ°), ΠΌΡΠ°ΡΠ΅Π½ (ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ Π΅ΠΊΡΠ°Π½ΠΎΡ), slurp (ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΎΠ±Π»Π°ΡΡ Π½Π° Π΅ΠΊΡΠ°Π½ΠΎΡ), wf-ΡΠ΅ΠΊΠΎΡΠ΄Π΅Ρ (ΡΠ½ΠΈΠΌΠ°ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ), Π»Π΅Π½ΡΠ° Π·Π° ΠΏΠ°ΡΠΈΡΡΠ° (Π»Π΅Π½ΡΠ° ΡΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ), Π²ΠΈΡΡΠ±ΠΎΡΠ΄ (ΡΠ°ΡΡΠ°ΡΡΡΠ° Π½Π° Π΅ΠΊΡΠ°Π½ΠΎΡ), wl-ΡΠ°Π±Π»Π°ΡΠ° ΡΠΎ ΠΈΡΠ΅ΡΠΎΡΠΈ (ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΡΠ°Π±Π»Π°ΡΠ° ΡΠΎ ΠΈΡΠ΅ΡΠΎΡΠΈ), wallutils (ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΏΠΎΠ·Π°Π΄ΠΈΠ½Π° Π½Π° ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° ΠΏΠΎΠ²ΡΡΠΈΠ½Π°).
Sway ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΊΠ°ΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Π°ΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° wlroots, ΠΊΠΎΡΠ° Π³ΠΈ ΡΠΎΠ΄ΡΠΆΠΈ ΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈΠΎΡ ΠΌΠ΅Π½Π°ΡΠ΅Ρ. Wlroots Π²ΠΊΠ»ΡΡΡΠ²Π° backends Π·Π° Π°ΠΏΡΡΡΠ°ΠΊΡΠ΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π΅ΠΊΡΠ°Π½ΠΎΡ, ΡΡΠ΅Π΄ΠΈ Π·Π° Π²Π½Π΅ΡΡΠ²Π°ΡΠ΅, ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ°ΡΠ΅ Π±Π΅Π· Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ OpenGL, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΎ KMS/DRM, libinput, Wayland ΠΈ X11 (ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ Π΅ ΡΠ»ΠΎΡ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° X11 Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Xwayland). ΠΠΎΠΊΡΠ°Ρ Sway, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° wlroots Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΈ Π²ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ Π³ΠΈ Librem5 ΠΈ Cage. ΠΠΎ ΠΏΡΠΈΠ»ΠΎΠ³ Π½Π° C/C++, ΡΠ°Π·Π²ΠΈΠ΅Π½ΠΈ ΡΠ΅ Π²ΡΡΠΊΠΈ Π·Π° Scheme, Common Lisp, Go, Haskell, OCaml, Python ΠΈ Rust.
ΠΠΎ Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΡΠ²Π°ΡΠ΅ ΡΠ°Π·ΠΈΡΠΈΡΠ° ΡΠΎ Π³Π»ΡΠ²ΡΠ΅ΡΠΎ.
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΈΠ·Π»Π΅Π· Π½Π° ΡΠ»ΡΡΠ°Π»ΠΊΠΈ Π·Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΡΠ΅Π°Π»Π½ΠΎΡΡ.
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° βoutput render_bit_depthβ Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΠΈΠ·Π»Π΅Π· ΠΎΠ΄ ΡΠ΅ΠΆΠΈΠΌΠΎΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡΠ°ΡΠ΅ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° Π΄Π»Π°Π±ΠΎΡΠΈΠ½Π° Π½Π° Π±ΠΈΡΠΎΠ²ΠΈ.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ²ΠΎΡΡ ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ Π½Π° ΠΈΠ·Π»Π΅Π·ΠΎΡ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π» Π΅ΠΊΡΠ°Π½ (ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° dmabuf, ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ ΠΈΠ·Π»Π΅Π· Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π±Π°ΡΠ΅ΡΠΈΡΠ°ΡΠ΅).
- Π‘Π΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ xdg-activation-v1, ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΡΠ΅ ΡΠΎΠΊΡΡ ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ²ΡΡΠΈΠ½ΠΈ ΠΎΠ΄ ΠΏΡΠ²ΠΎ Π½ΠΈΠ²ΠΎ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ xdg-Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡΠ°, Π΅Π΄Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΡΡΠ»ΠΈ ΡΠΎΠΊΡΡΠΎΡ Π½Π° Π΄ΡΡΠ³Π°).
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΠ° client.focused_tab_title Π·Π° Π΄Π° ΡΠ° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π±ΠΎΡΠ°ΡΠ° Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΡΠ°Π·ΠΈΡΠ΅.
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βoutput modelineβ Π·Π° Π΄Π° Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π²Π°ΡΠΈΠΎΡ ΡΠΎΠΏΡΡΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ DRM (Direct Rendering Manager).
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βoutput dpms toggleβ Π·Π° ΠΏΠΎΠ»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΡΠΏΡΠ°Π·Π½ΠΈ Π΅ΠΊΡΠ°Π½ΠΎΡ ΠΎΠ΄ ΡΠΊΡΠΈΠΏΡΠΈΡΠ΅. ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΡΠ΅ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ βΠΏΡΠ°Π·Π½ΠΈΠ½ΠΈβ. ΠΏΡΠ΅ΡΡΠ»ΠΈ ", "smart_gaps inverse_outer" ΠΈ "split none".
- ΠΠΏΡΠΈΡΠ°ΡΠ° β--my-next-gpu-wont-be-nvidiaβ Π΅ ΠΎΡΡΡΡΠ°Π½Π΅ΡΠ°, Π·Π°ΠΌΠ΅Π½ΡΠ²Π°ΡΡΠΈ ΡΠ° ΡΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΡ β--unsupported-gpuβ. ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ°Π»Π½ΠΈΡΠ΅ Π΄ΡΠ°ΡΠ²Π΅ΡΠΈ Π½Π° NVIDIA ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΈ.
- Π’Π΅ΡΠΌΠΈΠ½Π°Π»Π½ΠΈΠΎΡ Π΅ΠΌΡΠ»Π°ΡΠΎΡ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ Π²ΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π΅ Π·Π°ΠΌΠ΅Π½Π΅Ρ ΡΠΎ Π½ΠΎΠ³Π°.
- ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΠ΅ Π½Π° Π΄ΠΈΡΠ°Π»ΠΎΠ·ΠΈΡΠ΅ Π·Π° Π½ΠΈΡΠ°ΡΠ΅ ΠΈ Π½ΠΈΡΠ°ΡΠ΅ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ°.
- ΠΠ°Π±ΡΠ°Π½Π΅ΡΠΎ Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΎ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ Π½Π° Π²ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° Π½Π°ΡΠ»ΠΎΠ²ΠΎΡ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠΎΡ Π²ΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΎΠ΄ Π·Π½Π°ΡΠΈΡΠ΅ Π²ΠΎ Π½Π°ΡΠ»ΠΎΠ²ΠΎΡ Π½Π° ΡΠ΅ΠΊΡΡΠΎΡ; Π½Π°ΡΠ»ΠΎΠ²ΠΎΡ ΡΠ΅Π³Π° ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΈΠΌΠ° ΡΠΈΠΊΡΠ½Π° Π²ΠΈΡΠΈΠ½Π°.
ΠΠ·Π²ΠΎΡ: opennet.ru