TL;DR

  • LabWC, Noctalia shell, Alacritty를 조합해 XWayland 없이 Wayland 자체를 통한 블러 터미널 환경을 구성함.
  • 컴포지터마다 지원하는 Wayland 프로토콜이 다르며, LabWC는 KWin보다 지원 범위가 좁아 Noctalia의 블러와 투명도를 사용할 수 없음.
  • XWayland를 켜는 기존 우회 방식은 관성 스크롤과 다른 최신 기능을 깨뜨리는 문제가 있음.
  • ext-background-effect-v1 지원을 LabWC와 Alacritty 양쪽에 패치해 공식 Wayland 경로를 구현함.
  • Arch 기반 배포판용 labwc-blur와 alacritty-blur 패키지를 제공하며, 업스트림 병합 여부와 관계없이 코드는 GitHub에 공개돼 있음.

Wayland에서 블러가 어려운 이유

  • 오픈 소스, 자유, 모듈성을 갖춘 리눅스 생태계에서는 여러 구성 요소가 맞물려야 기능을 사용할 수 있으며, Wayland에서 이런 조합이 특히 어려움.
  • 컴포지터별 실제 기능 지원을 보여주는 Wayland 프로토콜 표에서 KWin은 가장 많은 프로토콜을 지원하고 LabWC는 상대적으로 적은 프로토콜을 지원함.
  • 그 결과 LabWC에서는 Noctalia의 블러와 투명도 기능을 사용할 수 없음.
  • 기존 우회 방법인 XWayland를 활성화하면 관성 스크롤과 다른 최신 기능이 깨짐.

LabWC와 Alacritty 패치

  • 양쪽 구성 요소를 직접 패치함.
  • LabWC의 ext-background-effect-v1 지원: 패치
  • Alacritty 터미널의 블러: 이슈
  • Alacritty의 기존 블러 구현은 KWin과만 통신해 다른 컴포지터에서는 사용할 수 없었음.
  • 공식 Wayland 경로를 지원하려면 배경 효과 관리자(background effect manager)를 구현해야 하며, 두 패치가 이를 처리함.
  • 패치는 AI 지원을 받아 작성했으며 업스트림 리뷰 절차를 거치고 싶지 않았고, 주변 철학보다 라이선스를 더 중요하게 여김.
  • 업스트림에서 패치를 받아들일지는 확신하지 않으며, 병합되면 좋겠지만 그렇지 않아도 코드는 GitHub에 공개돼 있음.

Arch 기반 배포판 패키지

  • 결과물은 Arch 기반 배포판용 패키지로 제공함.
  • labwc-blur: 기본 LabWC를 대체함.
  • alacritty-blur: 배경 효과 패치와 관성 스크롤을 포함함.
  • 패키지를 다시 컴파일하고 설정에서 불투명도와 스크롤을 활성화하면 해당 환경을 구성할 수 있음.