Wayland를 실행할 때 시스템의 모든 사용자에 대해서만 Debian에서 환경 변수를 설정하는 방법은 무엇입니까?

Wayland를 실행할 때 시스템의 모든 사용자에 대해서만 Debian에서 환경 변수를 설정하는 방법은 무엇입니까?

Wayland에서 Gnome을 실행할 때 각 사용자에 대한 환경 변수를 설정하고 싶습니다. X11에서 Gnome을 실행할 때는 이 변수를 설정하면 안 됩니다. 구체적으로 QT_QPA_PLATFORMWayland를 실행할 때 변수에 해당 값을 설정하고 싶다고 가정해 보겠습니다 .wayland

QT_QPA_PLATFORM=wayland( /usr/share/gdm/env.d/wayland-env아래에 ) 를 넣어 보았습니다.문서언급하다여기) (이것은 Wayland에서만 작동하기를 바랍니다.) 그러나 이는 Wayland에서도 효과가 없는 것 같습니다. 재부팅 후 Gnome/Wayland에서 로그인하고 터미널을 열면 echo $QT_QPA_PLATFORM결과가 없습니다.

저는 새로 설치된 Debian Bullseye를 사용하고 있습니다.

답변1

이것~해야 한다 데비안에서 작업:

컴퓨터가 X11 또는 Wayland에서 실행되고 있는지 확인하는 간단한 스크립트를 만들 수 있습니다.

loginctl show-session "$XDG_SESSION_ID" -p Type --value

반품할 수 있습니다 X11. 또는 Wayland(반품도 가능합니다 tty)

그래서:

if [[ $(loginctl show-session "$XDG_SESSION_ID" -p Type --value) = 'wayland' ]]; then
    export QT_QPA_PLATFORM=wayland
fi

세션이 환경 변수 중 하나로 $DISPLAY또는 를 사용하고 있는지 확인할 수도 있습니다.$WAYLAND_DISPLAY

Bash에서는 모든 사용자가 로그인 후 실행하도록 하는 스크립트를 넣을 수 있습니다 /etc/profile.d. 실행 가능하게 만들고 확장자가 .sh.

답변2

에 관한 게시물을 우연히 발견했습니다.체계이것은 가능한 대답으로 이어집니다. (내 질문에 대답해서 죄송합니다.)

아직은 시작 시 어떤 파일이 어떤 조건에서 실행되는지 정확히 알 수 없지만, 적어도 내 시스템에서는 /etc/profileGnome이 시작될 때(Wayland를 실행할 때 포함) 파일이 실행되는 것 같습니다. /etc/profile.d/파일을 예로 들어 순차적으로 실행됩니다 .im-config_wayland.sh/etc/profile.d/wayland.sh, Wayland 실행 여부에 따라 원하는 환경 변수를 조건부로 설정하는 파일을 만들었습니다 . 이것이 그 내용입니다.

test "$XDG_SESSION_TYPE" = 'wayland' || return
export QT_QPA_PLATFORM=wayland

그래픽이 아닌 쉘을 실행할 때 이러한 변수를 설정하지 않는 것과 같은 더 우아한 해결책이 있다고 생각합니다. 하지만 적어도 이 접근 방식은 내 특정 문제를 일시적으로 해결했습니다.

관련 정보