情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

【Karabiner Elements】記号キーに機能を割り当てる方法と記号キーを送信する方法(コロン・セミコロン・括弧など)

Karabiner Elements (1) Mac (47)

Karabiner Elementsの設定ファイル(json)を書いていて、「コロン」や「セミコロン」など、記号のキーの取扱いが難しいことが分かりました。

例えば、「コロン」キーに機能を割り当てるには、fromに「:」でも「colon」でもなく、なぜか(対応関係は後述)「quote」と書く必要があったり、「](大括弧の閉じる)」を送信するために、設定のtoに対して「]」でも「close_bracket」でもなく「backslash」が必要だったりなど、一見何が起こっているのかよく分からないような指定です。

何か設定の間違いなのか不具合なのかもしれませんが、ひとまずとある対応関係がわかり、それに従うことでうまく設定できたので、早見表を作ってみました。そちらを紹介します。

※話の中にはUSキーボードの配列の話が登場しますが、実際に利用しているMacBook Proのキーボード配列は、日本語配列(JIS配列)で、別にUS配列にして使っているわけでも何でもありません。しかし、Karabiner Elementsを使う上で、US配列を意識する必要が発生してしまいました。

なぜかUSキーボードの配列のことを考慮する必要がある

Karabiner Elementsの設定を行っていて、大抵のキーの設定では素直に「キーボードを見たまま」で、「from」や「to」の「key_code」を設定すれば良いのですが、記号のキー周辺がうまく動作しない問題がありました。

その理由には大きく分けて二つあり、一つは、特定の記号キーのkey_codeは、「;」のような記号を直接指定するのではなく、「semicolon」といった、名称で指定する必要がある、という点です。こちらは矢印キーが「left_arrow」になるなどの具体例から、早めに気が付くことができます。

問題なのは二つ目で、それはたとえ日本語配列のキーボードを使っていても、どういうわけかキーの位置を指定する際に、US配列を使って指定しなければならないという点です。

これはどういうことかというと、例えば日本語キーボードを見て「:」キーを「to」や「from」で指定したい場合に「:」や「colon」とは指定できず、「:」キーの位置はUSキーボードでは「:」ではなく「'」なので、「'」のことを意味するkey_codeである「quote」を指定しなければならない、といったようなものです。

これは記号に限らない話ですが、日本語キーボードとUSキーボードとの際が主に記号であるため、記号をいざ指定しようとした際に変なことになってしまい、この問題に遭遇してしまうのです。そして、なかなか自己解決するには時間がかかってしまいます。

日本語キーボードで「:」を指定するには「quote」、のような対応表が欲しくなる

同じように、「[」キーに機能を割り当てたいからといって「open_bracket」と指定してもダメで、日本語キーボードで「[」の位置はUSキーボードでは「]」なので、「close_bracket」と指定する必要が出てきます(ややこしい)。

対応表

このように、「○○」キーを指定するためには「△△」キーを設定に書く、というのが多数あるため、毎回キー配列を見ながら変換しても良いのですが、設定ファイルを見ていて手間に感じてしまったので、変換表を書きました。

参考にしてみてください(一部、USキーボード上には存在しないキーがあり、特殊なkey_codeを含みます。またsemicolonはJIS/US共通ですが、表に含めないと記載漏れなのかな?と思ってしまう紛らわしさがあるので、一応書いておきました)。

基本的には、一番左の記号(指定したいキーをJISキーボードで見たときに印字されている記号)と、右のkey_code(設定ファイルに書くべき名前)の対応を見ればOKです。

  • JISキーボードでの見た目、USキーボードでの見た目、指定すべきkey_code
  • ^、=、equal_sign
  • \(¥)、該当無し、international3
  • @、[、open_bracket
  • [、]、close_bracket
  • ;、;、semicolon
  • :、'、quote
  • ]、\(¥)、backslash
  • \、該当無し、international1

以下は、変換不要な記号たちです:

  • -、-、hyphen
  • ,、,、comma
  • .、.、period
  • /、/、slash

例:コロン+Command → ]

上記の説明だとよく分からなかったときのために、結局どう設定するの?という部分を例を使って説明したいと思います。

Commandキーを押しながらコロン(:)キーを押したときに、「]」キーを押したことになる(]が入力される)例を紹介します(この設定は説明用で、特に便利というわけではありません)。

"manipulators": [
	{
		"type": "basic",
		"from": {
			"key_code": "quote",
			"modifiers": {
				"mandatory": [
					"command"
				]
			}
		},
		"to": [
			{
				"key_code": "backslash"
			}
		]
	}
]

直感的には、「from」の「key_code」に「:」や「colon」と書きそうになりますが、先ほどの変換表に「:、'、quote」とある通り、「:」の場合は「quote」と書きます。

また「to」のほうにも「]」と書いたり、「close_bracket」と書くのではなく、変換表の「]、\(¥)、backslash」の通り、「backslash」と書きます。

こうすることで、設定が成功します。あまり適当にこのあたりを指定していた場合、ログに「unknown key_code: "colon"」のように指摘されてしまうので注意してください。

コメント(0)

新しいコメントを投稿




  • カテゴリ ナビ
  • 著者紹介

    ブログが趣味で、スマホアプリの利用中に発生するトラブルや不具合の対策手順や障害情報、 設定の変更方法などについて、解説記事をよく書いています。

    自分が困ったことをブログに書けば、次に困る人の参考になって、みんながみんな同じ苦労をせずに済む、というのが原点です。

    最近の関心は、スマホやパソコンが苦手な人の行動や思考、そしてそんな人を手助けする方法です。

    RSS | Facebook | Twitter | About