Wayland環境下のLinux版MSEdgeでタッチパッドジェスチャーとfcitxを使う
要約
Microsoft Edgeの起動オプションに以下の項目を追加しよう。
microsoft-edge --ozone-platform-hint=auto --enable-features=TouchpadOverscrollHistoryNavigation,WaylandTextInputV3
または
microsoft-edge --ozone-platform-hint=auto --enable-features=TouchpadOverscrollHistoryNavigation --enable-wayland-ime --wayland-text-input-version=3
GNOMEランチャーからの起動時にジェスチャを使用するには、エントリファイルに上記のオプションを追記する。
環境
- Ubuntu 24.04.1 Desktop
- fcitx5-mozc
- Microsoft Edge 131.0.2903.48 64bit
きっかけ
Microsoft Edgeの垂直タブが快適すぎて、Ubuntuにもインストールして使っている。ところが、Linux版ではタッチパッドジェスチャーが使えない。2本指でのズーム操作や戻る・進む操作ができないのは結構しんどい。
Linux版Edgeに関する情報は多くないのだが、2020年からChromiumベースになっているのでChromeの情報が使えたりする。
Point 1. ブラウザをWaylandネイティブで起動する
WaylandというのはX11 window systemに代わる新しいディスプレイサーバーだ。Ubuntu21.04からデフォルトセッションとして置き換えられている。
第663回 Ubuntu 21.04の主な変更点 | gihyo.jp
ChromiumはWaylandに対応しているが、デフォルトではX11モードで動作する。これをWaylandネイティブに切り替えてやると、タッチパッドジェスチャーが使えるようになる。
起動時のコマンドライン引数から設定する方法
次のオプションをつけて起動する[1]。
--ozone-platform-hint=auto
もしうまく行かない場合は、代わりにこれを使う。
--ozone-platform=wayland
chrome://flagsから設定する方法
chrome://flags
にアクセスし、Preferred Ozone platform
をWayland
にすれば良いらしい。
Point 2. 「戻る・進む」を有効化する
2本指スワイプでの戻る・進む操作には、さらにオプションの指定が必要だ[2]。
--enable-features=TouchpadOverscrollHistoryNavigation
Point 3. IMEへの対応
ここまでやってみた人は、日本語入力ができないことにお気づきだろう。この問題はIMEとWaylandの間のプロトコルの不一致が原因だ。
GNOME側がtext-input-v3を使用するのに対して、Edge側はtext-input-v1を使用する。そのためIMEが使用できないようだ。
この方が詳しく書いている。
このオプションを追加すると、text-input-v3を有効化できる。
--enable-features=WaylandTextInputV3
戻る・進むと同時に有効化するときは、カンマでつなげて指定しよう。
--enable-features=TouchpadOverscrollHistoryNavigation,WaylandTextInputV3
代わりに以下のオプションでも動作した。
--enable-wayland-ime --wayland-text-input-version=3
アプリケーションエントリの編集
コマンドで起動するときのやり方はわかったが、普段ブラウザを使うときはGNOMEランチャーから選択すると思う。対応するエントリファイルも編集しておくと、特別な操作無しでタッチパッドジェスチャを使用できるようになる。
/usr/share/applications/microsoft-edge.desktop
を適当なテキストエディタで開く。exec=
の項目が実行されるコマンドなので、そこにオプションを追加しよう。
通常の起動、「新しいウィンドウ」、「新しいInPrivateウィンドウ」の3箇所あるはずだ。
編集後のエントリを見る
[Desktop Entry]
Version=1.0
Name=Microsoft Edge
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
GenericName=Web Browser
GenericName[ar]=متصفح الشبكة
GenericName[bg]=Уеб браузър
GenericName[ca]=Navegador web
GenericName[cs]=WWW prohlížeč
GenericName[da]=Browser
GenericName[de]=Web-Browser
GenericName[el]=Περιηγητής ιστού
GenericName[en_GB]=Web Browser
GenericName[es]=Navegador web
GenericName[et]=Veebibrauser
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[gu]=વેબ બ્રાઉઝર
GenericName[he]=דפדפן אינטרנט
GenericName[hi]=वेब ब्राउज़र
GenericName[hu]=Webböngésző
GenericName[it]=Browser Web
GenericName[ja]=ウェブブラウザ
GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
GenericName[ko]=웹 브라우저
GenericName[lt]=Žiniatinklio naršyklė
GenericName[lv]=Tīmekļa pārlūks
GenericName[ml]=വെബ് ബ്രൌസര്
GenericName[mr]=वेब ब्राऊजर
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador da Internet
GenericName[ro]=Navigator de Internet
GenericName[ru]=Веб-браузер
GenericName[sl]=Spletni brskalnik
GenericName[sv]=Webbläsare
GenericName[ta]=இணைய உலாவி
GenericName[th]=เว็บเบราว์เซอร์
GenericName[tr]=Web Tarayıcı
GenericName[uk]=Навігатор Тенет
GenericName[zh_CN]=网页浏览器
GenericName[zh_HK]=網頁瀏覽器
GenericName[zh_TW]=網頁瀏覽器
# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
GenericName[bn]=ওয়েব ব্রাউজার
GenericName[fil]=Web Browser
GenericName[hr]=Web preglednik
GenericName[id]=Browser Web
GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
GenericName[sk]=WWW prehliadač
GenericName[sr]=Интернет прегледник
GenericName[te]=మహాతల అన్వేషి
GenericName[vi]=Bộ duyệt Web
# Gnome and KDE 3 uses Comment.
Comment=Access the Internet
Comment[ar]=الدخول إلى الإنترنت
Comment[bg]=Достъп до интернет
Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
Comment[ca]=Accedeix a Internet
Comment[cs]=Přístup k internetu
Comment[da]=Få adgang til internettet
Comment[de]=Internetzugriff
Comment[el]=Πρόσβαση στο Διαδίκτυο
Comment[en_GB]=Access the Internet
Comment[es]=Accede a Internet.
Comment[et]=Pääs Internetti
Comment[fi]=Käytä internetiä
Comment[fil]=I-access ang Internet
Comment[fr]=Accéder à Internet
Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
Comment[he]=גישה אל האינטרנט
Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
Comment[hr]=Pristup Internetu
Comment[hu]=Internetelérés
Comment[id]=Akses Internet
Comment[it]=Accesso a Internet
Comment[ja]=インターネットにアクセス
Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
Comment[ko]=인터넷 연결
Comment[lt]=Interneto prieiga
Comment[lv]=Piekļūt internetam
Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക
Comment[mr]=इंटरनेटमध्ये प्रवेश करा
Comment[nb]=Gå til Internett
Comment[nl]=Verbinding maken met internet
Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
Comment[pl]=Skorzystaj z internetu
Comment[pt]=Aceder à Internet
Comment[pt_BR]=Acessar a internet
Comment[ro]=Accesaţi Internetul
Comment[ru]=Доступ в Интернет
Comment[sk]=Prístup do siete Internet
Comment[sl]=Dostop do interneta
Comment[sr]=Приступите Интернету
Comment[sv]=Gå ut på Internet
Comment[ta]=இணையத்தை அணுகுதல்
Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి
Comment[th]=เข้าถึงอินเทอร์เน็ต
Comment[tr]=İnternet'e erişin
Comment[uk]=Доступ до Інтернету
Comment[vi]=Truy cập Internet
Comment[zh_CN]=访问互联网
Comment[zh_HK]=連線到網際網路
Comment[zh_TW]=連線到網際網路
Exec=/usr/bin/microsoft-edge-stable --ozone-platform-hint=auto --enable-features=TouchpadOverscrollHistoryNavigation,WaylandTextInputV3 %U
StartupNotify=true
Terminal=false
Icon=microsoft-edge
Type=Application
Categories=Network;WebBrowser;
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=New Window
Name[am]=አዲስ መስኮት
Name[ar]=نافذة جديدة
Name[bg]=Нов прозорец
Name[bn]=নতুন উইন্ডো
Name[ca]=Finestra nova
Name[cs]=Nové okno
Name[da]=Nyt vindue
Name[de]=Neues Fenster
Name[el]=Νέο Παράθυρο
Name[en_GB]=New Window
Name[es]=Nueva ventana
Name[et]=Uus aken
Name[fa]=پنجره جدید
Name[fi]=Uusi ikkuna
Name[fil]=New Window
Name[fr]=Nouvelle fenêtre
Name[gu]=નવી વિંડો
Name[hi]=नई विंडो
Name[hr]=Novi prozor
Name[hu]=Új ablak
Name[id]=Jendela Baru
Name[it]=Nuova finestra
Name[iw]=חלון חדש
Name[ja]=新規ウインドウ
Name[kn]=ಹೊಸ ವಿಂಡೊ
Name[ko]=새 창
Name[lt]=Naujas langas
Name[lv]=Jauns logs
Name[ml]=പുതിയ വിന്ഡോ
Name[mr]=नवीन विंडो
Name[nl]=Nieuw venster
Name[no]=Nytt vindu
Name[pl]=Nowe okno
Name[pt]=Nova janela
Name[pt_BR]=Nova janela
Name[ro]=Fereastră nouă
Name[ru]=Новое окно
Name[sk]=Nové okno
Name[sl]=Novo okno
Name[sr]=Нови прозор
Name[sv]=Nytt fönster
Name[sw]=Dirisha Jipya
Name[ta]=புதிய சாளரம்
Name[te]=క్రొత్త విండో
Name[th]=หน้าต่างใหม่
Name[tr]=Yeni Pencere
Name[uk]=Нове вікно
Name[vi]=Cửa sổ Mới
Name[zh_CN]=新建窗口
Name[zh_TW]=開新視窗
Exec=/usr/bin/microsoft-edge-stable --ozone-platform-hint=auto --enable-features=TouchpadOverscrollHistoryNavigation,WaylandTextInputV3
[Desktop Action new-private-window]
Name=New InPrivate Window
Name[ar]=نافذة InPrivate جديدة
Name[bg]=Нов прозорец InPrivate
Name[bn]=নতুন InPrivate উইন্ডো
Name[ca]=Finestra InPrivate nova
Name[cs]=Nové okno InPrivate
Name[da]=Nyt InPrivate-vindue
Name[de]=Neues InPrivate-Fenster
Name[el]=Νέο παράθυρο InPrivate
Name[en_GB]=New InPrivate Window
Name[es]=Nueva ventana InPrivate
Name[et]=Uus InPrivate-aken
Name[fa]=پنجره InPrivate جدید
Name[fi]=Uusi InPrivate-ikkuna
Name[fil]=Bagong InPrivate Window
Name[fr]=Nouvelle fenêtre InPrivate
Name[gu]=નવી InPrivate વિંડો
Name[hi]=नई InPrivate विंडो
Name[hr]=Novi prozor InPrivate
Name[hu]=Új InPrivate-ablak
Name[id]=Jendela InPrivate Baru
Name[it]=Nuova finestra InPrivate
Name[iw]=חלון InPrivate חדש
Name[ja]=新しい InPrivate ウィンドウ
Name[kn]=ಹೊಸ InPrivate ವಿಂಡೋ
Name[ko]=새로운 InPrivate 창
Name[lt]=Naujas „InPrivate“ langas
Name[lv]=Jauns InPrivate logs
Name[ml]=പുതിയ InPrivate ജാലകം
Name[mr]=नवीन InPrivate विंडो
Name[nl]=Nieuw InPrivate-venster
Name[no]=Nytt InPrivate-vindu
Name[pl]=Nowe okno InPrivate
Name[pt]=Nova Janela InPrivate
Name[pt_BR]=Nova Janela InPrivate
Name[ro]=Fereastră InPrivate nouă
Name[ru]=Новое окно InPrivate
Name[sk]=Nové okno InPrivate
Name[sl]=Novo okno InPrivate
Name[sr]=Нови InPrivate прозор
Name[sv]=Nytt InPrivate-fönster
Name[ta]=புதிய InPrivate சாளரம்
Name[te]=కొత్త InPrivate విండో
Name[th]=หน้าต่าง InPrivate ใหม่
Name[tr]=Yeni InPrivate Penceresi
Name[uk]=Нове вікно InPrivate
Name[vi]=Cửa Sổ InPrivate Mới
Name[zh_CN]=新建 InPrivate 窗口
Name[zh_TW]=新 InPrivate 視窗
Exec=/usr/bin/microsoft-edge-stable --ozone-platform-hint=auto --enable-features=TouchpadOverscrollHistoryNavigation,WaylandTextInputV3 --inprivate
(参考) libinput-gestures
タッチパッドジェスチャについて検索すると、この方法がけっこうヒットする。
デーモンを常駐させてlibinputというドライバからイベントを受け取り、あらかじめ設定したコマンドを実行する。「2本指スワイプを検出したら、Alt+左矢印を送信」のような仕組みで操作を実現する。
この方法でも悪くないのだが、わざわざ別のプログラムを常駐させるのはあまりスマートではない...
-
https://wiki.archlinux.jp/index.php/Chromium#.E3.83.8D.E3.82.A4.E3.83.86.E3.82.A3.E3.83.96_Wayland_.E3.82.B5.E3.83.9D.E3.83.BC.E3.83.88 ↩︎
-
https://wiki.archlinux.jp/index.php/Chromium#.E3.83.8A.E3.83.93.E3.82.B2.E3.83.BC.E3.82.B7.E3.83.A7.E3.83.B3.E3.81.AE.E3.82.BF.E3.83.83.E3.83.81.E3.83.91.E3.83.83.E3.83.89.E3.82.B8.E3.82.A7.E3.82.B9.E3.83.81.E3.83.A3 ↩︎
Discussion