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) ํ๋ฉด์ ๋ํ ๊ธฐ๋ณธ ์ง์์ด ์์ต๋๋ค.
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