저는 Debian 11을 사용하고 있으며 wlroot Wayland 신디사이저인 Sway를 사용하고 있습니다.
로그인할 때마다 Sway가 자동으로 열리도록 설정했습니다.(터미널 내부에서만 /dev/tty1
):
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/1
└─> cat .bash_profile
# Only /dev/tty1 can open sway
if [ "$(tty)" = "/dev/tty1" ]; then
exec sway
fi
또한 다음을 보장하기 위해 환경 변수를 설정했습니다.모두export QT_QPA_PLATFORM=wayland
애플리케이션은 Xorg( ) 대신 Wayland 백엔드( )를 사용합니다 export QT_QPA_PLATFORM=xcb
.
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/1
└─> cat /etc/environment
export QT_QPA_PLATFORMTHEME=qt5ct
export QT_QPA_PLATFORM=wayland
# export QT_QPA_PLATFORM=xcb
export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_TYPE=wayland
이것은 의미한다모두Xorg만 인식하는 애플리케이션은 Wayland 백엔드를 사용하려고 하기 때문에 실행되지 않습니다!
내 솔루션:
작동하려면 먼저 Xwayland를 설치해야 합니다.
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/1
└─> sudo apt install xwayland
하지만 그 후에도 Xorg 애플리케이션은 여전히 Wayland를 사용하려고 시도하지만 여전히 실패합니다.
제 경우에는 애플리케이션을 실행하기 전에 환경 변수를 내보내면 Xorg 애플리케이션이 제대로 작동하도록 할 수 있었습니다. 예는 다음과 같습니다.
env QT_QPA_PLATFORM=xcb DISPLAY=:0 freecad
노트:Xorg는 DISPLAY=:0
Wayland( )와 WAYLAND_DISPLAY=wayland-0
다른 디스플레이 태그( )를 사용하므로 애플리케이션이 Xorg 백엔드를 사용해야 한다고 주장하는 경우 백엔드에 대한 디스플레이도 제공해야 합니다. 그렇지 않으면 실패합니다.
질문:
이 솔루션은 작동하지만 모든 Xorg 응용 프로그램을 따라잡는 것은 어렵습니다. 예를 들어...
기본 kicad
패키지를 설치했는데 Kicad가 Wayland를 지원하지 않습니다. 그래서 수동으로 해야해요실행 파일 이동에서부터 :/usr/bin/kicad
/usr/bin/kicad.bin
┌───┐
│ $ │ ziga > ziga--workstation > Downloads
└─┬─┘ /dev/pts/0
└─> sudo mv /usr/bin/kicad /usr/bin/kicad.bin
그리고실행 파일을 스크립트로 교체 /usr/bin/kicad
실행 전 필수 환경변수 설정모바일 실행 파일즉 /usr/bin/kicad.bin
:
┌───┐
│ $ │ ziga > ziga--workstation > Downloads
└─┬─┘ /dev/pts/0
└─> sudo touch /usr/bin/kicad
┌───┐
│ $ │ ziga > ziga--workstation > Downloads
└─┬─┘ /dev/pts/0
└─> sudo chmod +x /usr/bin/kicad
┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/1
└─> cat /usr/bin/kicad
#!/bin/bash
env QT_QPA_PLATFORM=xcb DISPLAY=:0 kicad.bin
이 작업은 시간이 많이 걸리며 패키지를 다시 설치할 때마다 반복해야 합니다! 이것은 끔찍한 해결책입니다. 그럼 다른 해결책은 없을까요?
QT_QPA_PLATFORM
설정하지 않은 상태 로 두고 애플리케이션이 자동으로 설정되도록 하는 것이 가능하다는 내용을 어디선가 읽었습니다 . 무엇을 바꿔야 합니까?