MacでもEmacsでWebKitブラウザする!
Emacs 27がリリースされたので、Emacs 28していく時期ですね!(エッ)
環境: macOS Mojave (10.14.6)
MacでのWebKitブラウザ機能がマージされた
上に3つ、関連するコミットを挙げました(2つ目と3つ目は別コミットです)。
皆さんご存知の通り、現在のEmacsはWebKitGTKを利用して、Emacs内で本格的にWebブラウジングをすることができます(xwidget-webkit-browse-url
)1。この機能はWebKitGTKを使っていることからわかるように、ツールキットとしてGTKを使うようにビルドしたEmacsでのみ利用可能なものでした。
今回のコミットで、そんな変態な機能がmacOSでのEmacs(Cocoaを使うようにビルドしたEmacs)でも利用可能になりました。
早速試しましょう。--with-xwidgets
が必要です2。
./autogen.sh
./configure --with-xwidgets
make
src/emacs -q
でビルドしたEmacsを実行します。M-x xwidget-webkit-browse-url
して、URLとしてhttps://gnu.org/software/emacsを入力してみると...
ということでWebページを閲覧できました。
まあ、GNU/Linuxプラットフォームでは既に利用できてた機能なので目新しさはないですが、多くのプラットフォームで使えるようになると嬉しいですね。
操作感
h
(もしくは?
)を押すことでxwidget-webkit-mode
でのキーバインドを確認できます。おなじみのキーバインドだけでなくマウス3でも操作できそうです。ページの戻る/進むはb
/f
でできます。C-s
で検索といったことはできません。
一つ気になったのは、私の環境の問題なのか実装上仕方ないことなのかわかりませんが、ブラウザをマウスでクリックすると、Emacsのキーバインドが利用できなかったり(xwidget-webkit-mode
のSPC
が効かない)、Emacsの文字入力ができなくなってしまったり(M-x
した後文字が入力できない)しました。こうなったときはC-g
(連打)で抜けられるようです。
また、今回はMac版を試しましたが、Mac版ではC-x 2
などでウィンドウを分割する際、1ウィンドウにしかWebページが表示されないという制限があるようです。
マージの経緯
「今回のコミットで(中略)利用可能になりました。」と書きましたが、実はこの機能はGitHub上でかなり前から開発されていたものでした。
Mac用の機能(Mac上でのみ動作するコード)ということで紆余曲折あったようですが、Lars Ingebrigtsenさんの尽力でEmacs本家にマージされることとなりました。圧倒的感謝。
下はメーリングリストでの議論。気になる人用。
https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-08/msg00766.html
おしまい
MacでもEmacsでWebKitブラウザを利用できるようになりました。 現在grip-modeやxwwpなどWebKitブラウザ機能を利用した便利なパッケージもすでに開発されています。
Emacsだけで完結することが大好きな人は、既存のパッケージを使ったり📦自分でEmacs Lispを書いたり💪して、どんどんWebKitブラウザ機能を使っていきましょう!