Wayland์šฉ ์ปดํฌ์ง€ํŠธ ์„œ๋ฒ„์ธ labwc 0.6 ์ถœ์‹œ

labwc 0.6(Lab Wayland Compositor) ํ”„๋กœ์ ํŠธ์˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Openbox ์ฐฝ ๊ด€๋ฆฌ์ž๋ฅผ ์—ฐ์ƒ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ Wayland์šฉ ๋ณตํ•ฉ ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค(์ด ํ”„๋กœ์ ํŠธ๋Š” Wayland์šฉ Openbox์˜ ๋Œ€์•ˆ์„ ๋งŒ๋“ค๋ ค๋Š” ์‹œ๋„๋กœ ์„ ์ „๋ฉ๋‹ˆ๋‹ค). labwc์˜ ๊ธฐ๋Šฅ ์ค‘ ๋ฏธ๋‹ˆ๋ฉ€๋ฆฌ์ฆ˜, ์†Œํ˜• ๊ตฌํ˜„, ๊ด‘๋ฒ”์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ์˜ต์…˜ ๋ฐ ๊ณ ์„ฑ๋Šฅ์ด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” C ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ GPLv2 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

wlroots ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Sway ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ•˜๊ณ  Wayland ๊ธฐ๋ฐ˜ ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž์˜ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ™•์žฅ๋œ Wayland ํ”„๋กœํ† ์ฝœ ์ค‘ ์ถœ๋ ฅ ์žฅ์น˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด wlr-output-management๊ฐ€ ์ง€์›๋˜๊ณ , ๋ฐ์Šคํฌํƒ‘ ์…ธ์˜ ์ž‘์—…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด layer-shell์ด โ€‹โ€‹์ง€์›๋˜๋ฉฐ, ์ž์‹ ์˜ ํŒจ๋„๊ณผ ์ฐฝ ์Šค์œ„์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด foreign-toplevel์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ์ƒท ์ƒ์„ฑ, ๋ฐ”ํƒ• ํ™”๋ฉด์— ๋ฐฐ๊ฒฝ ํ™”๋ฉด ํ‘œ์‹œ, ํŒจ๋„ ๋ฐ ๋ฉ”๋‰ด ๋ฐฐ์น˜์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜„์œผ๋กœ ์• ๋“œ์˜จ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ, ๊ทธ๋ผ๋””์–ธํŠธ ๋ฐ ์•„์ด์ฝ˜(์ฐฝ ๋ฒ„ํŠผ ์ œ์™ธ)์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Wayland ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ X11 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด XWayland DDX ๊ตฌ์„ฑ ์š”์†Œ์˜ ์‚ฌ์šฉ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ํ…Œ๋งˆ, ๊ธฐ๋ณธ ๋ฉ”๋‰ด ๋ฐ ๋‹จ์ถ•ํ‚ค๋Š” xml ํ˜•์‹์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ†ตํ•ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋†’์€ ํ”ฝ์…€ ๋ฐ€๋„(HiDPI) ํ™”๋ฉด์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์›์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Wayland์šฉ ์ปดํฌ์ง€ํŠธ ์„œ๋ฒ„์ธ labwc 0.6 ์ถœ์‹œ

menu.xml์„ ํ†ตํ•ด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ์ œ๊ณต ๋ฃจํŠธ ๋ฉ”๋‰ด ์™ธ์—๋„ bemenu, fuzzel ๋ฐ wofi์™€ ๊ฐ™์€ ํƒ€์‚ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋‰ด ๊ตฌํ˜„์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจ๋„๋กœ Waybar, sfwbar, Yambar ๋˜๋Š” LavaLauncher๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ ์—ฐ๊ฒฐ์„ ์ œ์–ดํ•˜๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด wlr-randr ๋˜๋Š” kanshi๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. swaylock์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™”๋ฉด์„ ์ž ๊ธ‰๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • wlroots์—์„œ ์ œ๊ณตํ•˜๋Š” ์žฅ๋ฉด ๊ทธ๋ž˜ํ”„ API์˜ ์‚ฌ์šฉ์„ ๋Œ€ํญ ์žฌ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌ๋Š” ๋ Œ๋”๋ง, ์ฐฝ ์žฅ์‹, ๋ฉ”๋‰ด ๋ฐ ํ™”๋ฉด ์…ธ ๊ตฌํ˜„์— ๋ฐ˜์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ธฐ ์ „์˜ ์ด๋ฏธ์ง€ ๋ฐ ๊ธ€๊ผด ์ฒ˜๋ฆฌ๋Š” ํ…์Šค์ฒ˜(wlr_texture ๊ตฌ์กฐ) ๋Œ€์‹  ๋ฒ„ํผ ์‚ฌ์šฉ์œผ๋กœ ์ „ํ™˜๋˜์–ด ์ถœ๋ ฅ์˜ ์˜ฌ๋ฐ”๋ฅธ ์Šค์ผ€์ผ๋ง์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ธ๋“ค๋Ÿฌ๋ฅผ wlr_scene_nodes ๋…ธ๋“œ์— ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ„์†Œํ™”๋œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ํ–ฅ์ƒ๋œ ๋””๋ฒ„๊น… ์˜ต์…˜.
  • ๊ฐ€์ƒ ๋ฐ์Šคํฌํ†ฑ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ ๋ฉ”๋‰ด์—์„œ ๋‹ค๋ฅธ ์–ธ์–ด ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„๋””์˜ค๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ์‹œ๊ฐ„ ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ„ฐ์น˜ ์žฅ์น˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒ ํ˜„์‹ค ํ—ฌ๋ฉง์— ํ‘œ์‹œ๋  ๋•Œ ์™ผ์ชฝ ๋ˆˆ๊ณผ ์˜ค๋ฅธ์ชฝ ๋ˆˆ์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„ํผ๊ฐ€ ์žˆ๋Š” ์Šคํ…Œ๋ ˆ์˜ค ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” drm_lease_v1 ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒ ํ‚ค๋ณด๋“œ ๋ฐ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์ฐฝ ์œ„์— ์ฐฝ์„ ๊ณ ์ •ํ•˜๋Š” ๋ชจ๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(ToggleAlwaysOnTop).
  • ์ฐฝ ํ”„๋ ˆ์ž„์˜ ๋„ˆ๋น„์™€ ์ƒ‰์ƒ์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด osd.border.color ๋ฐ osd.border.width ์„ค์ •์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ‚ค๋ณด๋“œ ์ง€์—ฐ ๋ฐ ๋ฐ˜๋ณต ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋Š” ์„ค์ •์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž‘์—…์„ ๋งˆ์šฐ์Šค ํœ  ์Šคํฌ๋กค์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ์Šคํฌํ†ฑ์—์„œ ์Šคํฌ๋กคํ•  ๋•Œ ๊ฐ€์ƒ ๋ฐ์Šคํฌํ†ฑ ๊ฐ„ ์ „ํ™˜์ด ์ˆ˜ํ–‰๋จ).
  • ๋ถ€๋“œ๋Ÿฌ์šด ๊ฐ€๋กœ ์Šคํฌ๋กค์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • xwayland๊ฐ€ ์•„๋‹Œ ๋นŒ๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ Debian, FreeBSD, Arch ๋ฐ Void ๋นŒ๋“œ์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธ€๊ผด์˜ ๊ธฐ์šธ์ž„๊ผด ๋ฐ ๋‘๊ป˜ ์กฐ์ • ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๊ธฐ์šธ์ž„๊ผด ๋ฐ ๊ตต์€ ๊ธ€๊ผด ์‚ฌ์šฉ).
  • ์ถ”๊ฐ€๋œ ์„ค์ • ๊ฐœ์š” ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์ผค์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  • ํ•˜์œ„ ๋ฉ”๋‰ด์— ๋Œ€ํ•œ ํ™”์‚ดํ‘œ ๋ Œ๋”๋ง์„ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๋ถ„ ๊ธฐํ˜ธ์— ๋Œ€ํ•œ ์ง€์›์ด ๋ฉ”๋‰ด์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • xdg-desktop-portal-wlr ํ”„๋กœํ† ์ฝœ์€ ์ถ”๊ฐ€ ์„ค์ • ์—†์ด ์ž‘๋™ํ•˜๋„๋ก ํ™œ์„ฑํ™”๋˜์–ด(dbus ์ดˆ๊ธฐํ™” ๋ฐ systemd๋ฅผ ํ†ตํ•œ ํ™œ์„ฑํ™” ์™„๋ฃŒ) OBS Studio ์‹คํ–‰ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.



์ถœ์ฒ˜ : opennet.ru

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