qutebrowser 是一款以 Vim 操作流程為主、基於 PyQt5 上開發的的輕量化瀏覽器(有點類似 dwb)。2017 年中的時候就知道這款瀏覽器了,但沒有特別強烈的需求,因為我在使用 Firefox 或 Chromium 的時候都有安裝 Vimium 這個套件,所以可以做到一樣的事。
2017 年後半從 Firefox 55.0 開始,使用 Quantum 之後,我就從 Chromium 又跳回 Firefox 的懷抱,但接近 2017 年年底的時候,這篇文章:Firefox is on a slippery slope | Drew DeVault’s Blog,講到了 Firefox 和美國的 NBCUniversal "合作",為該公司新一季的電視劇 "Mr.Robot" 作宣傳。其手法是當你在瀏覽網頁的時候,如果裏面文字有和該劇相關的關鍵字的話,就會被倒過來顯示,而且也會在你造訪某些特定網站的時候,在你的 HTTP request 加入特定的 Header。重點是這是在未經使用者同意就預設開啟的測試功能內,直接幫使用者安裝一個叫作 "Looking Glass" 的 plugin,而且如果你把它關掉的話,在下次更新 Firefox 的時候又會被自動開啟。
再者是,討論這個功能的 ticket 是被鎖定的,只有 Mozilla 內部的人可以看到。這是非常不尊重使用者的行為,尤其 Firefox 又總是以不追蹤使用者、自由的開源軟體自居。雖然 Mozilla 在幾天後發了篇道歉文:Update: Looking Glass Add-on | The Firefox Frontier,但這件事還是讓滿多人留下不好的印象的,畢竟這代表專案主導人不尊重使用者,難保之後不會又發生。
剛好這篇文章的作者有提到他已經換到 qutebrowser 一陣子了,覺得還不錯用。剛好我也有在考慮要不要換過去使用,因為用了 Firefox 一陣子,雖然有比以前快,但還是常常會 crash,而且貌似也有 Memory Leak 的問題,常常用了一陣子記憶體就會愈用愈多,得重開才能解決。所以今天就下定決心拿 qutebrowser 來當預設的瀏覽器。
有機會的話可能會寫篇關於 qutebrowser 的介紹文,因為預設的 qutebrowser 其實不太好用,我花了點時間調整了設定才覺得比較能用。但這篇文章是要紀錄我在 Arch Linux 上安裝了基於 Qt5 開發的 qutebrowser 後,無法在其中使用 gcin 輸入法打中文字的問題。
這篇應該只有在 Arch Linux 上的使用者可能會遇到,解法是在 gcin 論壇的這個討論串看到的:在基於較新版qt 5.9.1的軟體中無法輸入中文。
先附上發生 bug 的軟體版本:
步驟:
gcin
需要的檔案都抓下來,開個資料夾放這些檔案。PKGBUILD
,加上這個 patch,這裡附上 patch 的純文字檔連結:diff --git a/gcin/trunk/PKGBUILD b/gcin/trunk/PKGBUILD
index ca08fcb57f3..7048c13411d 100644
--- a/gcin/trunk/PKGBUILD
+++ b/gcin/trunk/PKGBUILD
@@ -39,6 +39,12 @@ prepare() {
-e '/^MODVERSION=/a INCS+=-I/usr/include/qt/QtGui/$(MODVERSION) -I/usr/include/qt/QtCore/$(MODVERSION)' \
-i qt5-im/Makefile
+ # Patch to make gcin work in qt >= 5.9.x
+ # ref: <https://hyperrate.com/thread.php?tid=33785>
+ sed \
+ -e 's/org.qt-project.Qt.QPlatformInputContextFactoryInterface/&.5.1/' \
+ -i qt5-im/gcin-qt5.h.in
+
# FS#45732
patch -p1 -i ../qt-5.5.patch
makepkg -s
這個指令,就會開始 build gcingcin-2.8.5-2-x86_64.pkg.tar.xz
sudo pacman -U gcin-2.8.5-2-x86_64.pkg.tar.xz
來安裝 patch 過後的 gcinqtplugininfo /usr/lib/qt/plugins/platforminputcontexts/libgcinplatforminputcontextplugin.so
來檢查
$ qtplugininfo /usr/lib/qt/plugins/platforminputcontexts/libgcinplatforminputcontextplugin.so
IID "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1" Qt 5.10.0 (debug)
User Data: {
"Keys": [
"gcin"
]
}
這樣應該就沒問題了。
總之,我發了一個 bug report: FS#56949 : [gcin] gcin 2.8.5-2 cannot run in qutebrowser v1.0.4,希望這個 patch 會被加進去,這樣之後更新應該就沒問題了。
好像有點久沒有自己 build package 了啊,原本打算用 abs
,然後才想起來 abs
已經被 deprecated 了:Arch Linux - News: Deprecation of ABS tool and rsync endpoint
如果覺得我的文章不錯的話,
請幫我按讚、追蹤、訂閱、留言、分享,
有任何問題也都歡迎留言討論,
也可以利用像是 Feedly 等 RSS Reader,
直接訂閱我的部落格:https://blog.m157q.tw。
iThome 這邊我應該只有鐵人賽的時候會使用。