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

labwc 0.7(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์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™”๋ฉด์„ ์ž ๊ธ‰๋‹ˆ๋‹ค.

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

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

  • wlroots 0.17 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ƒˆ๋กœ์šด ๋ถ„๊ธฐ๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ผ๋ จ์˜ ์ปค์„œ ์ด๋ฏธ์ง€๋ฅผ ์ „์†กํ•˜์—ฌ ์ปค์„œ ๋ชจ์–‘์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Wayland ํ”„๋กœํ† ์ฝœcursor-shape-v1์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž๊ฐ€ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ํ‘œ๋ฉด ์Šค์ผ€์ผ๋ง ๊ฐ’์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” Wayland ๋ถ„์ˆ˜ ์Šค์ผ€์ผ ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ˜์˜ฌ๋ฆผ๋œ ์Šค์ผ€์ผ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„๊ตํ•˜์—ฌ wp_viewport ๊ฐ์ฒด์— ๋Œ€ํ•ด ๋ณด๋‹ค ์ •ํ™•ํ•œ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐฝ ์ œ๋ชฉ ํ‘œ์‹œ์ค„์— ์•„์ด์ฝ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐฝ ๊ฐ„ ์ „ํ™˜์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” ์™ผ์ชฝ ๋˜๋Š” ์œ„์ชฝ ํ™”์‚ดํ‘œ๋ฅผ ๋ˆŒ๋Ÿฌ ๋’ค๋กœ ์Šคํฌ๋กคํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒ ๋ฐ์Šคํฌํ†ฑ ๊ฐ„ ์ „ํ™˜์„ ์œ„ํ•ด ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ธ๋„ค์ผ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” osd.workspace-switcher.boxes.{width,height} ์„ค์ •์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒ ์ถœ๋ ฅ ์žฅ์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์ž‘์—… VirtualOutputAdd ๋ฐ VirtualOutputRemove๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํฌ๊ธฐ ์กฐ์ •์„ ์œ„ํ•œ ResizeTo ์ž‘์—…์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ToggleOmnipresent ์ž‘์—…๊ณผ "Always on Visible Workspace" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ญ์ƒ ์ฝ˜ํ…์ธ ๋ฅผ ํ™œ์„ฑ ๋ฐ์Šคํฌํƒ‘์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • XWayland๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ _NET_WORKAREA ์†์„ฑ์ด ์„ค์ •๋˜์–ด ํŒจ๋„์ด ์ฐจ์ง€ํ•˜์ง€ ์•Š๋Š” ํ™”๋ฉด์˜ ์—ฌ์œ  ์˜์—ญ ํฌ๊ธฐ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด Qt์—์„œ ํŒ์—… ๋ฉ”๋‰ด ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค).

์ถœ์ฒ˜ : opennet.ru

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