Wayland๋ฅผ ์ด์šฉํ•œ Sway 1.5 ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ ์ถœ์‹œ

์ค€๋น„๋œ ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค ์Šค์›จ์ด 1.5, Wayland ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋˜์—ˆ์œผ๋ฉฐ ํƒ€์ผ ์ฐฝ ๊ด€๋ฆฌ์ž์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. i3 ๋ฐ ํŒจ๋„ ์•„์ด์“ฐ๋ฆฌ๋ฐ”. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” C๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ๋ฐฐํฌ์ž MIT ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ. ์ด ํ”„๋กœ์ ํŠธ๋Š” Linux ๋ฐ FreeBSD์—์„œ์˜ ์‚ฌ์šฉ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

i3 ํ˜ธํ™˜์„ฑ์€ ๋ช…๋ น, ๊ตฌ์„ฑ ํŒŒ์ผ ๋ฐ IPC ์ˆ˜์ค€์—์„œ ์ œ๊ณต๋˜๋ฏ€๋กœ Sway๋ฅผ X3 ๋Œ€์‹  Wayland๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํˆฌ๋ช…ํ•œ i11 ๋Œ€์ฒดํ’ˆ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Sway๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณต๊ฐ„์ ์œผ๋กœ๊ฐ€ ์•„๋‹ˆ๋ผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ™”๋ฉด์— ์ฐฝ์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐฝ์€ ํ™”๋ฉด ๊ณต๊ฐ„์„ ์ตœ์ ์œผ๋กœ ํ™œ์šฉํ•˜๊ณ  ํ‚ค๋ณด๋“œ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์ฐฝ์„ ๋น ๋ฅด๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฒฉ์ž ๋ชจ์–‘์œผ๋กœ ๋ฐฐ์—ด๋ฉ๋‹ˆ๋‹ค.

์™„์ „ํ•œ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋จน์—ˆ๋‹ค (KDE ์œ ํœด ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค), ์Šค์›จ์ด๋ฝ (ํ™”๋ฉด ๋ณดํ˜ธ๊ธฐ), ๋งˆ์ฝ” (์•Œ๋ฆผ ๊ด€๋ฆฌ์ž), ๋ƒ‰ํ˜น ํ•œ (์Šคํฌ๋ฆฐ์ƒท ์ฐ๊ธฐ), ์†Œ๋ฆฌ๋‚ด์–ด ๋จน๋Š”๋‹ค (ํ™”๋ฉด์—์„œ ์˜์—ญ ์„ ํƒ), wf-๋ ˆ์ฝ”๋” (๋น„๋””์˜ค ์บก์ณ), ์›จ์ด๋ฐ” (์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ‘œ์‹œ์ค„), ๋ฒ„ํŠธ๋ณด๋“œ (์Šคํฌ๋ฆฐ ํ‚ค๋ณด๋“œ), wl-ํด๋ฆฝ๋ณด๋“œ (ํด๋ฆฝ๋ณด๋“œ ์ž‘์—…), ์›”ํ‹ธ์Šค (๋ฐ์Šคํฌํƒ‘ ๋ฐฐ๊ฒฝํ™”๋ฉด ๊ด€๋ฆฌ).

Sway๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์œ„์— ๊ตฌ์ถ•๋œ ๋ชจ๋“ˆ์‹ ํ”„๋กœ์ ํŠธ๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šธ๋ฃจ์ธ , ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž์˜ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ๊ธฐ๋ณธ ๊ธฐ๋ณธ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Wlroots์—๋Š” ๋‹ค์Œ์„ ์œ„ํ•œ ๋ฐฑ์—”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
ํ™”๋ฉด ์•ก์„ธ์Šค ์ถ”์ƒํ™”, ์ž…๋ ฅ ์žฅ์น˜, OpenGL์— ์ง์ ‘ ์•ก์„ธ์Šคํ•˜์ง€ ์•Š๊ณ  ๋ Œ๋”๋ง, KMS/DRM, libinput, Wayland ๋ฐ X11๊ณผ์˜ ์ƒํ˜ธ ์ž‘์šฉ(Xwayland ๊ธฐ๋ฐ˜ X11 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ ˆ์ด์–ด๊ฐ€ ์ œ๊ณต๋จ) Sway ์™ธ์—๋„ wlroots ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ™œ๋ฐœํžˆ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธํฌํ•จ Librem5 ะธ ์ƒˆ์žฅ. C/C++ ์™ธ์—๋„ Scheme, Common Lisp, Go, Haskell, OCaml, Python ๋ฐ Rust์šฉ ๋ฐ”์ธ๋”ฉ์ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ:

  • create_output ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๊ฐ€ ์—†๋Š”(ํ—ค๋“œ๋ฆฌ์Šค) ์‹œ์Šคํ…œ์—์„œ ์ถœ๋ ฅ์„ ๋™์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(๋‹ค์Œ์„ ํ†ตํ•ด ์ž‘์—…์ž์— ๋Œ€ํ•œ ์›๊ฒฉ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ). WayVNC).
  • ๋ฅผ ํ†ตํ•ด ์›จ์ด๋žœ๋“œ ํ”„๋กœํ† ์ฝœ ์ž…๋ ฅ ๋ฐฉ๋ฒ• ํŽธ์ง‘๊ธฐ(IME)์— ๋Œ€ํ•œ ์ž…๋ ฅ ๋ฐฉ๋ฒ• ๋ฐ ํ…์ŠคํŠธ ์ž…๋ ฅ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒŒ์ž„ ๋‚ด ์ด๋ฏธ์ง€ ์ง€ํ„ฐ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ ์‘ํ˜• ๋™๊ธฐํ™”(VRR, Variable Refresh Rate)๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ „ ๊ฒŒ์ž„์˜ ์„ฑ๋Šฅ๊ณผ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ทฐํฌํ„ฐ ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒํ™” ๋ฐ ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ ์•ก์„ธ์Šค ์‹œ์Šคํ…œ์—๋Š” ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค๋ฅผ ๊ฐ€๋กœ์ฑ„๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ ์ง€์› wlr-์™ธ๊ตญ-์ตœ์ƒ์œ„-๊ด€๋ฆฌ, ์ž์‹ ๋งŒ์˜ ํŒจ๋„๊ณผ ์ฐฝ ์Šค์œ„์น˜๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€