ModifierFlag::NONE コンビネーションキーのカスタマイズ for Orzレイアウト

親指シフトのOrzレイアウトにした時にコンビネーションキーの組み合わせも変更する設定を作った時に丸1日悩んでしまいました。原因は「ModifierFlag::NONE」を分かっていなかった事でした。

まあ丸一日といっても煮詰まったので、つぷやいたり、ブログの違う記事書いたり、キートップを切ったりしていた訳で、現実逃避が得意です。すいません。

かなり泥臭いコードになってきた気もしますが、きれいなコードを求めるより、使えることを優先します。これが大切なはず。

やりたいこと

Orzレイアウト上での Control+M 入力をリターンキーにします。キートップの刻印では 「Control+ , 」になります。 左Controlキーのみをターゲットに、Macは右controlキーがありませんし。HHKBもそんな感じ。他の場合でも右のcontrolキー押すならリターンキーの方が近いからです。

Control+M to Return

KeyRemap4Macbookに同梱されている emacs_mode.xmlの設定にControl+Mはあります。

<item>
<name>Control+M to Return</name>
<identifier>option.emacsmode_controlM</identifier>
<not>{{EMACS_MODE_IGNORE_APPS}}</not>
<autogen>KeyToKey KeyCode::M, VK_CONTROL, KeyCode::RETURN</autogen>
</item>

これのキーを書き直せばいいと気楽に構えていました。

動作ソフトを制限している <not>{{EMACS_MODE_IGNORE_APPS}}</not> を消してKeyToKey KeyCode::M を KeyToKey KeyCode::COMMA にしたら出来上がり!のはずでした。しかし動きません。あれ ?

トラブル原因

orzレイアウトは右手側のキーを一つ一つ丁寧にリマップ定義しています。

<autogen>–KeyToKey– KeyCode:: COMMA, KeyCode::M</autogen>

これで「, 」を「m」に変更しています。 ModifierFlag::NONE を使っていなかったのがトラブルを呼びました。上のままだと、「, 」単体でも「, 」+ control などの組み合わせも一切合切に「m」に変更してしまいます。

参考 ・ ModifierFlag::マニュアル

ModifierFlag::NONE

なので、キー入力の定義にModifierFlag::NONE を追加します。これを上のコードに追加すると、「, 」を「m」にリマップするけど、「, 」+ control はリマップしない設定になります。

これです、コレがわからずに 以下略。

<autogen>–KeyToKey– KeyCode:: COMMA,  | ModifierFlag::NONE, KeyCode::M</autogen>

コレに変えたら、見事に動きました。control + m で リターン! 素晴らしい。英字入力でも日本語入力でも大丈夫です。

Shift

できたーと思いながら、テストしていたときに再びあれ?です。英字入力で「M」が入力できないのです。 m(キートップでは , ) + Shiftキーで「< 」になってしまいます。上の ModifierFlag::NONE  設定の副作用でShiftキーの組み合わせも必要でした。

<autogen>–KeyToKey– KeyCode:: COMMA,  ModifierFlag::SHIFT_L | ModifierFlag::NONE, KeyCode::M,  ModifierFlag::SHIFT_L </autogen>

これを追加したら、英字大文字「M」が入力できました。日本語入力モードでもきちんと動くことを確認しました。すごく力業のような気もしますが。。これで良いはず。

まとめ

Orzレイアウト上での Control+M(キートップの刻印はControl+ , )の入力をリターンキーに設定しました。

  • ModifierFlag::NONEを使わないと、controlキーコンビネーションを区別できない
  • コンビネーションを区別すると、Shiftの英字大文字も定義する
  • 日本語入力時でもControl+M >> リターンキーとして動作OK

今回、学んだことです。基本設定を変更するので、orzレイアウト設定ファイルの次回バージョンでは全ファイルの上書きが必要になります。大切な事なので予告しておきます。

ある程度の設定定義は春分の日には準備できると思いますので、お待ちいただけるとうれしいです。

この記事を書いた人

ものくろ(Webコーチ)

フリーランスのブロガー・Web&Blogコーチ。個人・法人様を問わず、情報発信をコンサルティングとサポートしています。親指シフトのorzレイアウト開発者でもあり、日本語入力のエキスパート。
活動実績はこちら

ブログは月間65万PVを記録(2016年1月)したことも。200回を超えるワークショップ開催・のべ1,000名のブログサポートに携わっています。WordPressが得意です。WordPressコミュニティのイベントにも参加しております。お会いした時はよろしくお願いします。

東京 秋葉原に拠点と住民票がありますが、大阪や名古屋を中心に、日本を移動しながら仕事をしつつ暮らしています。

この記事が気に入ったら
いいね!しよう

最新の情報をお届けします

Web・Blogコーチのご依頼はこちら

Web・ブログのコンサルティング・ご相談のご依頼を受け付けております。

  • Webを活用して本気でビジネス・人生を切り開きたい方
  • Webのテクニカルな改善でお悩みの方
  • アイディアはあるのに、記事の文章にするのがうまくいかない方
  • 親指シフトを本気で習得したい方

そんな多様なお悩み、そして、さらに隠れていて見えないお悩みも見つけます。

ダイレクトにアドバイス。そして、ご自身の問題解決力を手にしていただく時間を。このブログ2400記事をアウトプットした経験に基づく良質なノウハウ・スキルを手に入れてください。時間の大切さを感じてるあなたへオススメです。

ものくろキャンプ Web・Blogコーチ セッション

お申し込みはこちらのお問い合わせフォームからお願いします。

お申し込みはこちらのお問い合わせフォームからお願いします。

ものくろキャンプ イベント案内

ものくろキャンプの開催スケジュールはこちら