GTKのキーバインドを変更する
キーバインドをEmacs風にする、という記事はそこら中にありますが、任意のキーバインドにする方法はなかなか見つからなかったのでメモ。
以下は、gtk-2.0でのやり方です。gtk-3.0の場合は参考のページを読めばできると思いますが、確認していません。
~/.themes
以下にテーマを作成し、作成したテーマを利用するように設定するという流れです。おなじみのEmacsという設定は、/usr/share/themes
にデフォルトで用意されているEmacsというテーマを選択していたわけです。
mkdir -p ~/.themes/MyTheme/gtk-2.0-keyvi ~/.themes/MyTheme/gtk-2.0-key/gtkrc
C-dとC-hを定義してみた例。
binding "gtk-mytheme-text-entry" { bind "<ctrl>d" { "delete-from-cursor" (chars, 1) } bind "<ctrl>h" { "delete-from-cursor" (chars, -1) }}
class "GtkEntry" binding "gtk-mytheme-text-entry"class "GtkTextView" binding "gtk-mytheme-text-entry"
ここはEmacsのテーマを選択する時と同様ですね。
gconftool-2 -s /desktop/gnome/interface/gtk_key_theme --type string "MyTheme"gsettings set org.gnome.desktop.interface gtk-key-theme "MyTheme" # Unityの場合はこちら
テーマの詳細な記述方法や詳しい話は、参考のリンク先やEmacsのテーマを参照してください。