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

์ค€๋น„๋œ ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค ์Šค์›จ์ด 1.2, 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์šฉ ๋ฐ”์ธ๋”ฉ์ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

  • ์ฐฝ ๊ด€๋ฆฌ์ž์™€์˜ ํ˜ธํ™˜์„ฑ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    i3 4.17.

  • ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹œ์ž‘ํ•˜๋Š” ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐฝ์„ ํƒญ์œผ๋กœ ๋ถ„ํ• ํ•˜๊ฑฐ๋‚˜ ๋‚˜๋ž€ํžˆ(์Šคํƒ) ๋ถ„ํ• ํ•˜๋Š” ๊ธฐ๋ณธ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๋Š” ํ† ๊ธ€์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ ์ „ํ™˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๊ฐœ์„ ๋˜์—ˆ๊ณ , ์ž…๋ ฅ ์žฅ์น˜ ์œ ํ˜• ๊ฒฐ์ •์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ๋ช…๋ น xkb_switch_layout์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด xcursor_theme ๋ช…๋ น์ด ์ œ์•ˆ๋˜๋Š” ๋ณ€๊ฒฝ์„ ์œ„ํ•ด ์ปค์„œ ํ…Œ๋งˆ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ ˆ์ด์–ด ์‰˜์— ํŒ์—… ์ฐฝ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Wayland ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์› ๊ตฌํ˜„ wlr-์ถœ๋ ฅ-๊ด€๋ฆฌ-v1, ์ถœ๋ ฅ ์žฅ์น˜ ์„ค์ •์šฉ์ž…๋‹ˆ๋‹ค.
  • wlr_output API๋ฅผ ํ†ตํ•ด ํ™”๋ฉด ์„ค์ •์„ ์›์ž์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ„ฐ์น˜ ์Šคํฌ๋ฆฐ ๋ณด์ •์„ ์œ„ํ•œ Calibration_matrix ์„ค์ •์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ช‡ ๊ฐ€์ง€ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐ ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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