셸 확장 - Qt Wayland Compositor
Wayland에서 셸은 서피스(surface) 시맨틱을 제공하는 확장 기능입니다. 즉, 서버와 클라이언트가 서피스에 대해 통신할 수 있는 방법을 제공합니다. 이 맥락에서 서피스는 흔히 "창(window)"이라고도 불리며, 이는 일반적으로 컴포지터에서 서피스를 표현한 형태를 의미합니다.
셸 확장 기능은 클라이언트와 서버가 특정 사항에 대해 소통할 수 있는 도구를 제공합니다:
- 클라이언트가 서버에 서페이스의 용도를 알릴 수 있는 방법을 제공할 수 있습니다. 예를 들어, 툴팁인지, 팝업 메뉴인지, 아니면 일반 애플리케이션 창인지 등을 알리는 것입니다. 이를 바탕으로 서버는 창의 기하학적 구조와 사용자가 창과 상호작용할 수 있는 방식을 결정할 수 있습니다.
- 또한 크기를 조정하거나, 이동하거나, 숨기는 등 표면을 조작하기 위한 프로토콜을 제공할 수도 있습니다.
다른 확장 기능과 마찬가지로, 셸에 대한 지원은 ` WaylandCompositor ` 최상위 객체의 직접 자식 노드로 인스턴스화하여 컴포지터에 추가됩니다. Qt에서 지원하는 셸 확장 기능은 다음과 같습니다:
- XdgShell 데스크톱 스타일 시스템에 적합한 셸로, 임의의 수의 애플리케이션이 연결될 수 있으며 사용자가 수동으로 창의 크기를 조정하고 위치를 변경할 수 있는 환경을 제공합니다.
- IviApplication 는 원래 In-Vehicle Infotainment 시스템을 위해 고안된 최소한의 프로토콜입니다. 이는 미리 정의된 애플리케이션 세트가, 대개 미리 할당된 화면 영역 내에서 실행되는 임베디드 시스템에 유용합니다. 이 프로토콜에 대한 자세한 내용은 IVI 컴포지터 예제를 참조하십시오.
- QtShell 는 Qt에서 제공하는 창 관리 기능을 지원하는 Qt 애플리케이션 전용 셸입니다. 이 셸은 컴포지터와 클라이언트 애플리케이션 모두 Qt로 작성되었으며, 애플리케이션이 수동 창 위치 조정이나 "최상단 표시"와 같은 기능을 남용하지 않을 것으로 신뢰할 수 있는 플랫폼에 적합할 수 있습니다.
- WlShell 주로 타사 애플리케이션과의 호환성을 위해 유용합니다. 이 역시 데스크톱 스타일의 셸이지만, 현재는 사용이 권장되지 않으며 XdgShell 로 대체되었습니다.
임베디드 시스템을 처음부터 설계할 때, 어떤 셸 확장 기능을 사용할지 정해진 규칙은 없습니다. 일반적으로 XdgShell 또는 IviApplication 중 하나를 선택하게 됩니다. 결정은 시스템에 필요한 기능과, Qt로 작성되지 않았으며 자체 요구 사항이 있는 애플리케이션이 포함되는지 여부에 따라 달라져야 합니다.
Qt Wayland Compositor 은 여러 셸 확장을 동시에 지원할 수도 있습니다. 위에 나열된 세 가지 셸 확장이 모두 지원되는 예시는 ‘Minimal QML’ 예제를 참조하십시오.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.