2013年9月1日日曜日

Inkscape のキーカスタマイズ

Inkscape ではキーボードショートカットが使えるわけですが、頻繁に使う機能がファンクションキーに割り当てられていて、ちょっといまいちです。カスタマイズできないかとマニュアルを見ると、同じコマンドに対して複数のキーが割り当てられている事が分かりました。例えば選択ツールは F1 または s、ペンツールは F6 または b など。これならカスタマイズしなくていいかなと思いましたが、キーをど忘れした時にツールチップで確認すると望んでいるものとは異なるキーが表示されて残念な気持ちになります。先ほどの選択ツールなら、指の移動量の少ない s の方を表示して欲しいのに F1 と表示されます。

何とかならないものかと調べてみると、ショートカットキーはインストール先の share\keys\default.xml を編集すれば変更できるそうです。

# 同フォルダにはいくつか他のアプリケーションのショートカットを模したファイルがあるので、default.xml にリネームすればごっそり切り替えられます。

ファイルの先頭にコメントで説明が書かれているので目を通しておきましょう。

インストール先の default.xml を書き換えると全ユーザに影響が出るので、%APPDATA%\inkscape\keys (一度でも Inkscape を起動した事があればフォルダが作成されているはず)に同じく default.xml を作成してこちらを編集しましょう。システム設定をユーザ設定で上書きするというおなじみの動作ですね。これなら Inkscape のアップデート時に share\keys\default.xml を退避するなどの気を使わなくて済みます。

メニューやツールチップに表示されるキーは、display 属性で制御するようです。選択ツールは初期状態では以下の様になっています。

<bind key="F1" action="ToolSelector" display="true" />
<bind key="s" action="ToolSelector" />
<bind key="S" action="ToolSelector" />

これを s の方に display~ と記述すればツールチップに "(S)" と表示してくれます。もちろんキーの変更も実行する内容も自由に変更可能です。

キーの名前はコメントにあるように、 https://git.gnome.org/browse/gtk+/plain/gdk/gdkkeysyms.h を参照。

アクションはソースファイルの src/verbs.cpp を見ろとありますが、この default.xml には全てのアクションが記述されているそうなので、希望のアクションを探し出してキー部分を書き換えるのが良さそうです。

一部のキーは、英語配列キーボードを元に記述されているため、日本語キーボードだとうまく効かないものがあるのでついでに書き換えると良いかもしれません。


以下、脱線。

数値入力用のスピンボックスなどの文字が消えてしまいまともに編集できない現象が発生して困っていましたが、環境変数 LANG に en をセットして言語を英語にして起動すればとりあえず回避できるそうです。

ポータブル版では発生しないそうですが、設定ファイルの位置、その他諸々の理由により私は使用していません。


さらに、脱線。

ふと、開発版を使用してみたら、文字が消える現象は直っていませんでしたが、起動時のウィンドウ最大化や各種ダイアログの表示状態の記憶などが行える様になっていてかなり良い感じでした。挙動がややいまいちながら、設定ダイアログからショートカットキーの変更が行える様になっていますよ(keys\default.xml の書式(主に改行位置)が大幅に書き換えられるので、実行前にユーザ側の keys\default.xml のバックアップをお勧めします)。

0 件のコメント:

コメントを投稿