と言ってもメール・コンポーザ、いわゆる gtkhtml-4.0 を使った編集機能で Emacs 同様のキーバインディングを利用する方法だけれども、初めてうまく設定できた。もしかしたら自分だけかもしれないけど 。
今までのバージョンの Evoliution では gtkhtml-editor ライブラリで一応 Emacs のキーバインディングをサポートした実装がはいっており、デスクトップと統合されるようになってからは (org.gnome.desktop.interface.gtk-key-theme=”Emacs”)、別途メールコンポーザのメニュー項目にあるショートカットキーのうち、Emacs のキーバインディングで衝突するもの、例えば 「全て選択(A)」の Ctrl-A なんかを [Delete] キーを使って削除しておくだけでよいとずっと思っていた。
実際のところ、この設定だけでは全然足りなくて、それらしいキーワードを検索してたまたま見つけた情報をそのまま実施してみるとうまく使えるようになったんだけど。
一部古いところ (GConf は obsoleted) もあるので修正して紹介しておくと:
-
デスクトップ設定の “/org/gnome/desktop/interface/can-change-accels” を ON にする:
$ gsettings set org.gnome.desktop.interface can-change-accels true $ gsettings get org.gnome.desktop.interface can-change-accels true
-
同様に “/org/gnome/desktop/interface/gtk-key-theme” を ‘Emacs’ にする:
$ gsettings set org.gnome.desktop.interface gtk-key-theme 'Emacs' $ gsettings get org.gnome.desktop.interface gtk-key-theme 'Emacs'
- Evolutionを起動して [新規]-[メッセージ(M)] でメール・コンポーザを起動し、メニューを開いて、Emacs のキーバインディングと同じショーカットを持つメニュー項目の上にマウス・カーソルを載せてから [Delete] キーを押下するとキーバインディングが解除される。それから Evolution を一度閉じる
- そしてこのファイルをダウンロードして ${HOME}/.config/gtk-3.0/gtk.css として保存する
-
それからコマンドラインから次のファイルの書き込みを禁止しておく
$ chmod u-w ~/.gnome2/accels/evolution
- 最後に Evolution を起動し再びメール・コンポーザを開いて Emacs のキーバインディングを確認する
ということで、もうかれこれ10年くらい気になっていたのだけれど、やっとすっきりしたよ 。
Emacs keybindings in GNOME Evolution 3.x: Evolution の3系で Emacs のキーバインディングを設定する方法