我一直在尝试编写一个脚本来从游戏模式启动 Steam Deck 上的 Firefox。由于 Steam Deck 管理窗口的方式,直接启动它效果不佳,因此我编写了一个脚本来启动嵌套kwin_wayland
实例并通过它运行 Firefox。它在大多数情况下都有效,但 Firefox 没有对文本进行任何子像素渲染,因此它看起来非常像素化。奇怪的是,KDE 原生渲染的字体显示得很好,所以我在启动 Firefox 时一定错过了一些东西。
kwin_wayland
这就是我在脚本中启动 Firefox 的方式:
_DISPLAY_RESOLUTION="$(xdpyinfo | awk '/dimensions/ {print $2}')"
exec kwin_wayland --no-lockscreen --drm \
--width "${_DISPLAY_RESOLUTION%x*}" \
--height "${_DISPLAY_RESOLUTION#*x}" \
--xwayland --x11-display "${DISPLAY}" \
--exit-with-session=" \
/usr/bin/flatpak run \
--arch=x86_64 --branch=stable \
--file-forwarding --die-with-parent \
--command=firefox org.mozilla.firefox"
这就是我之前所做的设置环境的事情:
export XDG_CONFIG_HOME=$HOME/.local/config/gamescope/firefox
export XDG_CONFIG_DIRS=$HOME/.config:$XDG_CONFIG_DIRS
mkdir -p $XDG_CONFIG_HOME
cat >$XDG_CONFIG_HOME/kwinrc <<KWINRC
[Windows]
BorderlessMaximizedWindows=true
KWINRC
cat >$XDG_CONFIG_HOME/kwinrulesrc <<KWINRULES
[gamescope-fullscreen-windows]
Description=Fullscreen Windows
closeablerule=2
maximizehoriz=true
maximizehorizrule=2
maximizevert=true
maximizevertrule=2
minimizerule=2
noborder=true
noborderrule=2
position=0,0
positionrule=2
shaderule=2
wmclasscomplete=true
wmclassmatch=2
types=66051
[General]
count=2
rules=1,gamescope-fullscreen-windows
KWINRULES
我有完整的剧本在 GitHub Gist 中如果你想看完整的东西。