LoginSignup
1
1

More than 5 years have passed since last update.

Ctrl+HでDelete(Backspace)したいアプリをどうにかする

Last updated at Posted at 2016-07-02

初投稿。

ほぼタイトルの通りなんですが、Ctrl+H叩いた時に(おそらく制御コードが送られてて)文字消えねーよ!!!バーン ってなったときの対処方法。

自分はMac用のLINEでこうなったのがきっかけです。これ結構ストレスマッハなんすよね……

なおこの記事書いた時点でのバージョンは、

  • OSX: 10.11.5(15F34)
  • Karabiner: 10.20.0

です。

前提事項

Karabinerをいれる。以上。
簡単に言うと色々いい感じにキーリマップいじれる定番ツールですね。
この記事で書いてることをどうにかしたいような人は大抵の場合入ってるような気がしています。

主旨からは外れるので、Karabinerの導入方法は省略します。手順もくそもないとは思うけど

どうすればいいのか

Karabinerにはキーリマップとかを自分でカスタム定義できる機能があるらしく、それを使用します。
左右コマンドキーを英数/かなに置き換えることにしか使ってなかったので全く知りませんでした。

private.xml の場所を調べる

たぶん ~/Library/Application Support/Karabiner だと思うけど一応手順を。
Karabinerを開いてメニューから "Misc&Uninstall" を選択し、その中の "Open private.xml" というボタンをクリック。
Open private.xml
Finderでprivate.xmlの格納ディレクトリが開かれます。
ここにオリジナルのキーリマップを定義できます。

private.xml の編集

公式マニュアルなどを参考に直していきます。
(といってもデフォルトでは<root>要素しかないと思いますが)
先に自分のxml内容を晒してしまうとこんな感じ。

private.xml
<?xml version="1.0"?>
<root>
  <appdef>
    <appname>LINE</appname>
    <equal>jp.naver.line.mac</equal>
  </appdef>

  <item>
    <name>Ctrl+HでDelete</name>
    <identifier>private.CtrlH_to_Del</identifier>
    <only>LINE</only>
    <autogen>__KeyToKey__ KeyCode::H, ModifierFlag::CONTROL_L, KeyCode::DELETE</autogen>
  </item>
</root>

ざーっと言ってしまうと、
<appdef>要素でアプリケーションを定義
<item>要素でキーリマップを定義
しています。

appdefを定義

まずはこの設定の対象とするアプリケーションを定義していきます。複数定義するならその分並べましょう。
<appname>要素にはわかりやすい名前を自分でつけてください。
<equal>要素には、アプリケーションidをつけます。

アプリケーションidの調べ方には、

  • アプリケーションのInfo.plistを直接覗く
  • Karabiner付属のEventViewerを使う

などがあります。
書くのが面倒横道に逸れまくってもアレなので、ここの説明も省きます。

キーリマップの設定

<item>要素
キーリマップ1つ1つの単位になります。

<name>要素
適当に好きな名前をつけてください。ここの内容が設定ウィンドウに出てきます。

<identifier>要素
設定のidをつけます。かぶらないようにお好きなのをどうぞ。
公式では、"private."をプリフィックスにつけるのをおすすめしてます。

<only>要素
対象とするアプリケーションを定義します。
<appdef>要素内の<appname>要素につけた名前を入れてください。
複数のアプリケーションを対象とする場合はカンマ区切りで設定します。

<autogen>要素
設定時の動作を定義します。
ここでは、__KeyToKey__によりKeyCode::H, ModifierFlag::CONTROL_L(=Ctrl+H)をKeyCode::DELETE(=Deleteキー)にリマップしています。

これでprivate.xmlの編集は終了です。

private.xmlを読み込ませる

Karabinerを開いてメニューから "Change Key" を選択し、その中の "Reload XML" というボタンをクリック。
Change Key
すると、一覧のトップにprivate.xmlで定義した内容が出てきます。


参考にさせていただきました

Karabiner: private.xml Reference Manual
Karabiner の private.xml 設定方法 | Qiita

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1