Linux 版本的 Telegram Desktop 是 QT 寫成的,雖然說是跨平臺框架,但實際上又是另一碼事了。官方提供的二進位檔案是 .tar.gz
,沒有包管理器。在 Fedora 上,由於 Telegram Desktop 本身的一些協議問題,官方源是不提供 telegram-desktop
包的;RPM Fusion 有打包好的 RPM 包,但一來更新相對官方較慢,二來又日常爆炸。
尤其最近一段時間,RPM Fusion 版的 telegram-desktop
在 Fedora 31 上(可能舊版也爆炸),甚至可以說的命運多舛。先是由於 ibus-rime
出問題導致整個系統無法使用 RIME;後來在一次 ibus-rime 和 librime 更新後,RIME 可以正常部署了,但 QT 的應用程式無法使用輸入法,好在只是環境變數的問題,在 .desktop 中添加 QT_IM_MODULE="ibus"
後就可以正常使用了。然而最近又開始讀不到 GTK 主題了,不管在 GNOME 下還是 CInnamon 下都因爲自己不夠變態而顯得格格不入,甚是煞眼。乾脆,用 Flatpak 版本替代一下,省得費心去找原因再修。
安裝 Flatpak 版本的 Telegram Desktop 比較簡單,Flathub 有官方維護的版本。
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak install flathub org.telegram.desktop
Looking for matches…
org.telegram.desktop/x86_64/stable (runtime/org.kde.Platform/x86_64/5.13) 所要求的執行時環境在 flathub 遠端中有找到
您想要安裝嗎? [Y/n]: y
org.telegram.desktop permissions:
ipc network pulseaudio wayland
x11 dri file access [1] dbus access [2]
[1] xdg-config/kdeglobals:ro, xdg-download
[2] com.canonical.AppMenu.Registrar, com.canonical.Unity,
org.freedesktop.Notifications, org.freedesktop.portal.Fcitx,
org.kde.StatusNotifierWatcher
ID Arch 分支 遠端 下載
1. org.kde.Platform x86_64 5.13 flathub < 321.8 MB
2. org.freedesktop.Platform.GL.default x86_64 19.08 flathub < 90.8 MB
3. org.freedesktop.Platform.VAAPI.Intel x86_64 19.08 flathub < 8.7 MB
4. org.freedesktop.Platform.openh264 x86_64 19.08 flathub < 593.4 kB
5. org.kde.KStyle.Adwaita x86_64 5.13 flathub < 5.8 MB
6. org.kde.Platform.Locale x86_64 5.13 flathub < 337.7 MB (partial)
7. org.telegram.desktop x86_64 stable flathub < 42.2 MB
8. org.freedesktop.Platform.ffmpeg-full x86_64 19.08 flathub < 3.6 MB
Proceed with these changes to the Default system installation? [Y/n]: y
爲了裝一個 40M 的東西下載了超過 600M 的依賴,這也算是 Flatpak 的日常了。由於 Flatpak 的沙河機制,兩個 Telegram Desktop 的資料位置不一樣。接下來直接遷移一下用戶資料,就可以省去登入、設定等步驟。
$ mkdir -p ~/.var/app/org.telegram.desktop/data/TelegramDesktop
$ mv ~/.local/share/TelegramDesktop/tdata ~/.var/app/org.telegram.desktop/data/TelegramDesktop
Telegram Desktop 的本體資料量不多,一下子就能遷移好。趕緊打開 Flatpak 版的 Telegram Desktop,發現它正確地讀取了 GTK 主題。這太棒了!然而等資料載入後就發現,中文和日文顯示不來,這太尷尬了。
由於不想動腦子,浅羽直接在 Google 上搜尋相關問題,果然在 Flathub 官方 Repository 找到了相關的 Issue。解決方案有二,浅羽選擇讓 Telegram Desktop 使用系統的字型(而非自己指定字型)。編輯 ~/.var/app/org.telegram.desktop/data/TelegramDesktop/tdata/fc-custom-1.conf
,然後把 /run/host/fonts/
加入字型搜尋檔案夾。
....
<fontconfig>
<dir>/run/host/fonts</dir>
....
保存,重新打開 Telegram Desktop,就可以正常地顯示 CJKV 了。但是還有一個問題:IME 無法正常使用。還是經過搜尋和測試,最終的解決方法是在啓動項上加入相關環境變數:打開 /var/lib/flatpak/app/org.telegram.desktop/current/active/export/share/applications/org.telegram.desktop.desktop
編輯,在 Exec=
一行的指令碼最前,加入 env QT_IM_MODULE=ibus
。等待桌面環境重新讀入檔案,再打開 Telegram Desktop 就可以用 IME 了。
發佈留言