Fedora Linux Sway 桌面環境變數設置

作者:   發佈於:   #linux #swaywm

在 Fedora Linux 上,要裝設 Sway 的方式是裝 Sway Desktop 這一組套件:

dnf group install 'Sway Desktop'

這麼做完之後,在 GDM 登入畫面內某個不起眼的選單內底就可以選擇使用 Sway。

但只是這樣的話,有一些需要在 sway 啟動前就設定好的環境變數似乎就無法可設。主要是這些:

MOZ_ENABLE_WAYLAND=1
INPUT_METHOD=fcitx
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

稍微找了一下,發現透過 gdm 開的 sway,似乎是叫做 start-sway

# pgrep -lfa gdm
1208 /usr/sbin/gdm
2011 gdm-session-worker [pam/gdm-password]
2151 /usr/libexec/gdm-wayland-session --register-session start-sway

/usr/share/wayland-sessions/sway.desktop 中也可看到這行:

Exec=start-sway

/etc 搜尋 start-sway 這個字串的話,可看到 /usr/bin/start-sway 這檔名出現在 /etc/sway/environment 內。

# sudo rg start-sway /etc/
/etc/sway/environment
2:# from /usr/bin/start-sway script for all users of the system.

/usr/bin/start-sway 這個檔案是個 shell script,讀其程式碼後發現它的主要作用是去讀取 /etc/sway/environment${HOME}/.config/sway/environment 的內容,吃進這兩檔案內所設好的變數之後,再啟動 sway。

看來正好能滿足我的需要。於是將一干變數塞入 ${HOME}/.config/sway/environment 後,登出、重新登入。就管用了。

我猜 start-sway 這 shell scrett 是 Fedora Linux 方面對設定環境變數這需求所實做出的一個變通方法。

目前使用 Sway 主要的問題之一,是在只支援 Wayland 的幾個應用程式視窗內進行打字時,雖可看到輸入的「預編輯」有正確地內嵌在應用程式中,但是選字窗則是完全消失,毫無蹤影。

不少通 Wayland 協定的終端機類程式,如 foot、WezTerm 等等,皆是能打字,但選字窗看不到。反而,那些需透過 XWayland 才能執行的程式,像是 lxterminal 跟 Emacs 就能打字,能看到選字窗:

@wengxt 在 Fcitx5 專案中所留之言,不見選字窗,是因為 Sway 卻乏幾項關於 input_panel 協定之實作,而讓 fcitx5 無法得知該將選字窗繪製在何處。

依照 fcitx5 wiki Using_Fcitx_5_on_Wayland#Sway 這一頁中簡短的說明看來,似乎已經有一解 Sway PR 7226 待併入 Sway 之中。雖然仍需等待,但總之,各類程式都有替代方案,因此都算可用。