Debian

如何只在執行Wayland時為Debian下系統的所有使用者設置環境變數?

  • March 18, 2022

在 Wayland 下執行 Gnome 時,我想為每個使用者設置一個環境變數。在 X11 下執行 Gnome 時不應設置該變數。具體來說,假設我想在執行 Wayland 時將變數設置QT_QPA_PLATFORM為該值。wayland

我嘗試QT_QPA_PLATFORM=wayland輸入/usr/share/gdm/env.d/wayland-env(按照此處提到的文件)(希望這僅在 Wayland 下有效)但這似乎沒有效果,即使在 Wayland 下也是如此:重新啟動後,在 Gnome / Wayland 下登錄,打開終端:沒有任何效果。echo $QT_QPA_PLATFORM

我使用新安裝的 Debian Bullseye。

應該 在debian下工作:

您可以創建一個簡單的腳本來確定機器是在 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

引用自:https://unix.stackexchange.com/questions/669962