Ukeleleでさいつよのキーボード配列をつくる


いままで日本語キーボードを使ってきたのですが、IntelliJがデフォルトで認識しているキーボードがどうも英字キーボードのようで、一部のキーバインドが日本語キーボードだとうまく機能しない...とうとう英字キーボードに乗り換えなければならない時が来よったか...そんなわけで**ソフト的に**日本語キーボード配列を英字キーボード配列に変更することにしました。

ちなみに、IntelliJの設定でキーバインドの設定を日本語キーボード配列に合わせて細かく変更してあげても問題の解決にはなるんですけれども...ちょっと整合性を取るのが色々面倒なので、今回はキーボード配列を根本から変えてしまう方法にしました。綺麗に変えたいですもんね。

#英字キーボードに変更する方法
とりあえず、Macの標準の設定機能から英字キーボードに変更してみましょう。PreferenceからKeyboardの設定へ飛んで新しく英字キーボード配列のキーボードを追加してあげます。

1 ) Keyboard設定を開く
<img width="678" alt="keyboard_search.png" src="https://qiita-image-store.s3.amazonaws.com/0/95707/e4941771-d34a-39e2-bea6-fe05faf66445.png">

2 ) 下の+をプッシュ！
![Screen Shot 2016-06-08 at 22.07.23.png](https://qiita-image-store.s3.amazonaws.com/0/95707/1f26bd82-8abc-56b5-2482-615cb975521d.png)


3 ) 英字キーボードに対応したキーボードを追加してあげましょう。確認したものではBritish, Australian, Irishなどのキーボードが英字キーボードに対応していました。(U.S.キーボードはどうやら違うようで...)。ここではひとまず**Australian**を選択してみましょう。
![keyboard_setting.png](https://qiita-image-store.s3.amazonaws.com/0/95707/44759c28-c36a-159c-5cbe-d49724f20c2c.png)

> ###なぜAustralianか?
> 環境によって違いがあるのかは確認していませんが、British, Irishなどの英字キーボードではShift-3、つまり"#"にあたるキー入力が"£"にあたっており、欲しいものとちょっと違う...しかし、Australianではきちんと"#"が入力されるので、今回はAustralianを使うことにしました。

4 ) ツールバーの![kore.png](https://qiita-image-store.s3.amazonaws.com/0/95707/9dd3dfa5-1bc7-f6c9-d528-fc8a86b9d4d5.png)コレをクリックして、Australianを選択してあげると、晴れて英字キーボードが使えるようになりました。ちゃんちゃんっ！


#これで終わり..ではない
さて、ひとまず英字キーボードにすることはできました。しかし私は気がついたのです。日本語キーボードには、英字キーボードで`１`の隣にあるはずのニョロ、そうニョロ(`~`)がないのです。これでは色々と困ってしまいます。特に黒い画面ことterminalを頻繁に使う"ターミネーター"にとっては死活問題です。
![67100f9a1584cad3816b999d2c68deff07078573_l.jpg](https://qiita-image-store.s3.amazonaws.com/0/95707/8f70c9cc-99dc-94a5-78cb-0384784fcd90.jpeg)

#ここで救世主"Ukelele(ウクレレ)"
**Ukelele(ウクレレ)**とはキーボード配列を一から組み立てることのできるツールで、英字キーボードだろうと日本語キーボードだろうとアラビアキーボードだろうと、自分の好きなようにキーボード配列を構築することができます。その実態は、`.keylayout`というXMLベースのファイルのGUIエディターです。これを使ってちゃちゃっと自分だけのキーボード配列を構築していきましょう。

1 ) とりあえずダンロード
[公式サイト](http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele)からUkeleleをダウンロードしてみましょう。
![ukelele_download.png](https://qiita-image-store.s3.amazonaws.com/0/95707/70041bfb-8019-e4fb-7742-5aaa6963b0a5.png)


2 ) インストール
いつも通りインストールしてみましょう。どらっがんどろっぷ。

![ukelele_install.png](https://qiita-image-store.s3.amazonaws.com/0/95707/74052c8b-eff5-a75b-4278-f9e12053939d.png)

> ###Resources
> 右側にある`Resources`はDesktopなりどこかに置いておくと良いでしょう。これはキーボード配列のサンプルたちです。１から作り上げるより、これを使うと差分だけを設定すれば良いことになるので、楽チンです。
> ![resouses.png](https://qiita-image-store.s3.amazonaws.com/0/95707/0f6ca245-dc7d-87f1-4750-38fad785bcdd.png)

3 ) 起動
まっさらなキーボードが表示されます。それぞれのキーをダブルクリックすると、好きなキーを設定することができます。
![ukelele01.png](https://qiita-image-store.s3.amazonaws.com/0/95707/45ae40f7-c4d5-2b46-a716-968361909572.png)

4 ) bundle(束)を作成する
メニューバーからFile-New Keyboard Layout Collectionを選択します。すると下のような画面が出てくるでしょう。これはBundleと呼ばれるもので、複数の`.keylayout`ファイルをまとめることのできるファイル(フォルダ)で、この中にカスタマイズした`.keylayout`ファイルをどんどん入れていきましょう。
![newcollection01.png](https://qiita-image-store.s3.amazonaws.com/0/95707/3603f987-09dd-85ad-db9f-97f662e4a936.png)

5 ) bundleに土台を入れる
右上の![kore.png](https://qiita-image-store.s3.amazonaws.com/0/95707/01db2f11-6d63-dd56-e4bf-03a60993feec.png)コレがキチンと**Australian**になっていることを確認したら、左下の+から、`Capture Current Input Source`を選択します。これで`現在使用しているキーボード配列`のコピーがこのbundleの中に収容されます。いいカンジ！
![Screen Shot 2016-06-08 at 21.14.24.png](https://qiita-image-store.s3.amazonaws.com/0/95707/2c03a399-1cf6-3b27-19ba-3f861ad2d363.png)

6 ) いざ改造作業へ
`Australian`をダブルクリックすると、ある程度設定されたキーボード配列が表示されます。
![Screen Shot 2016-06-08 at 21.17.22.png](https://qiita-image-store.s3.amazonaws.com/0/95707/45d1813e-5a3c-af67-e4b5-37d6a0601d50.png)
ちなみにここで`Shift`などをプッシュするとキーボード配列もそれに伴って変わります。Wow ！インタラクティブゥ！
![Screen Shot 2016-06-08 at 21.18.03.png](https://qiita-image-store.s3.amazonaws.com/0/95707/f5aa6d12-656c-5b9d-42ef-fbb34b680e21.png)

7) キーを設定する
さて、実際にキーを設定してあげましょう。日本語キーボードには`１`の横にはキーがそもそもないので、右端の空いてるキーを借りちゃいましょう。ダブルクリックして、`~`を打ってあげて設定しましょう。
![Screen Shot 2016-06-08 at 21.21.56.png](https://qiita-image-store.s3.amazonaws.com/0/95707/a69d3214-e4e9-c354-f134-bae313681ad5.png)
> あ、この時にはAustralianから![kore.png](https://qiita-image-store.s3.amazonaws.com/0/95707/ecc2d415-8ed7-2db3-ad3e-4979f4040770.png)コレに戻してあげましょう。でないと`~`が打ち込めませんね。

ついでに`Shift`の時の`` ` ``(バッククオート)も設定してあげましょう。
![Screen Shot 2016-06-08 at 21.26.56.png](https://qiita-image-store.s3.amazonaws.com/0/95707/2c64ce0f-8ae8-6516-d529-b13990be4570.png)

8 ) 保存！
設定したレイアウトファイルの名前を変更してあげましょう。これをしないと既存のものと名前がかぶっちゃいますね。対象を右クリックして`Set Keyboard Name and Script`を選択。名前を好きなように変えてあげましょう。今回わたしは`Australian_Extended`とかにしてあげました。`Script`の項は`Unicode`とかでオッケーです。
![Screen Shot 2016-06-08 at 21.40.55.png](https://qiita-image-store.s3.amazonaws.com/0/95707/4908d37c-4ce6-16a4-32c0-609cca3535dd.png)
![Screen Shot 2016-06-08 at 21.43.58.png](https://qiita-image-store.s3.amazonaws.com/0/95707/957be87d-9876-3c40-71be-22fb64760183.png)


9 ) .bundleファイル
続いて、メニューバーのFile-Saveをして保存してあげましょう。保存場所はどこでも良いです。今回はDesktopに保存してみました。
![Screen Shot 2016-06-08 at 21.29.34.png](https://qiita-image-store.s3.amazonaws.com/0/95707/a37bf271-570a-269e-d6c5-a176be7cd2fc.png)

> ###File Format
> ここで、File Formatは`Keyboard Layout Bundle`を選択してください。もう一つの`Keyboard Layout`は単体のLayoutで、bundle内に１つのLayoutしか作成されていない時にこの形式で保存できます。![keylayout&bundle.png](https://qiita-image-store.s3.amazonaws.com/0/95707/f6d78004-6b6b-8b89-6b05-7908cd1f4c95.png)

こんなファイルができましたね。![bundle_file.png](https://qiita-image-store.s3.amazonaws.com/0/95707/d55ac689-8b8e-0672-d482-2f5a5e3c7fe9.png)

10 ) bandleファイルをMacにインストール
それでは次に、作成したbundleファイルをMacにインストールしてあげて、有効化してみましょう.メニューバーからFile-Install For Current Userでインストール完了です(完了のアクションが何もないためわかりづらいですが、完了しているはずです)。インストールされているか確認するため、記事の上の方にある`英字キーボードに変更する方法`の項目でやった作業をもう一度やってみましょう。
######キーボード設定を開いて
<img width="678" alt="keyboard_search.png" src="https://qiita-image-store.s3.amazonaws.com/0/95707/45f666ac-efdc-9c93-ea9d-300ec8d20c42.png">
######入っているかな...
![Screen Shot 2016-06-08 at 22.13.25.png](https://qiita-image-store.s3.amazonaws.com/0/95707/870f4c55-96bc-b204-667d-2d2cbf3c209a.png)

######あ..ある！あるぞ！!
![Screen Shot 2016-06-08 at 21.49.08.png](https://qiita-image-store.s3.amazonaws.com/0/95707/28414f34-c9ab-6012-0d8f-f52802cb9d27.png)


11 ) では、有効化
最初の手順通り、`Add`して![kore.png](https://qiita-image-store.s3.amazonaws.com/0/95707/cb91400b-00b8-d481-51b2-a9094581900a.png)コレを**Australian_Extended**に変更して、試しタイピングしてみましょう。
![keyboard.png](https://qiita-image-store.s3.amazonaws.com/0/95707/a3209808-5096-85b0-39a4-31732bbb3c3a.png)


12 ) 打てる...打てるぞ！
![Screen Shot 2016-06-08 at 21.53.15.png](https://qiita-image-store.s3.amazonaws.com/0/95707/fefe35ee-b195-6817-9b9c-1ff5d7c3e715.png)

> ####適用されて...ない！そんな時は...
> 原因はよくわかりませんが、インストール作業をした後に反映されていないことが多々あります。どうもインストールしてからKeyboard設定に変更が適用されるまでにタイムラグがあるようです。もしうまく適用されていないと感じたら、コーヒーを一杯飲んで気長に待ちましょう。

#無事、`~`も打てるようになった
#####**やったね！** 
![nyorozo.png](https://qiita-image-store.s3.amazonaws.com/0/95707/fd21daf4-66c2-ed60-1bba-932d79a761c6.png)


#Ukeleleのその他の機能
**Ukelele**では**一つのキーで複数の文字を入力する**ことができたり、**[デッドキー](https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%83%E3%83%89%E3%82%AD%E3%83%BC)**の設定なんてのもできたりします。色々とカスタマイズして自分だけの最強キーボード配列をつくりあげましょう。

![dup.gif](https://qiita-image-store.s3.amazonaws.com/0/95707/b428b3c9-7443-32d1-f4c3-69071b2418ab.gif)



#備考
**Ukelele**は非常に細かな設定までできる優秀なツールなので、この記事では全てを網羅することはできませんが、わたしの試した限りでの基本的な使い方は以上です。何かご指摘等がありましたらコメントまでお願い致します。


#<i class="fa fa-exclamation" style="font-size:1em;" aria-hidden="true"></i> 追記
**Karabiner**の`Change Keyboard Layout` - `Use Japanese Keyboard as US keyboard`を有効にする方法も簡単で良さげです。