WaylandでGnomeを実行するときは、各ユーザーの環境変数を設定したいと思います。 X11でGnomeを実行するときは、この変数を設定しないでください。具体的には、QT_QPA_PLATFORM
Waylandを実行するときに変数にその値を設定したいとします。wayland
QT_QPA_PLATFORM=wayland
(/usr/share/gdm/env.d/wayland-env
下に)を入れてみました。文書言及するここ)(これはWaylandでのみ動作することを願っています。)しかし、これはWaylandでも効果がないようです。再起動後、Gnome / Waylandでログインして端末を開くとecho $QT_QPA_PLATFORM
結果はありません。
私は新しくインストールされたDebian Bullseyeを使用しています。
答え1
これしなければならない 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
セッションが環境変数の1つとして、またはを使用していることを$DISPLAY
確認することもできます。$WAYLAND_DISPLAY
Bashでは、すべてのユーザーにログイン後に実行させるスクリプトを配置できます/etc/profile.d
。実行可能にし、拡張子を.sh
。
答え2
に関する投稿を偶然発見しました。システムこれは可能な答えにつながります。 (私の質問に答えて申し訳ありません。)
まだ起動時にどのファイルがどの条件で実行されるのか正確にはわかりませんが、少なくとも私のシステムでは、/etc/profile
Gnomeが起動したとき(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
グラフィックではなくシェルを実行するときにこれらの変数を設定しないなど、よりエレガントな解決策があると思います。しかし、少なくともこのアプローチは私の特定の問題を一時的に解決しました。