はうすてんぼぶ

コードかいてて疑問に思ったことや、興味あることをつらつらと暇なときに書く場所、ここはそんな場所

WindowsでApple Wireless Keyboard(US)を快適に使う

はじめに

Apple Wireless Keyboard(US)を買ってしばらく経った。

WindowsのIDEAでコード書くがてら、ちゃんと色々調整しんとダメだこりゃってなったので、
明朝徹夜のよく分からないテンションで調整仕切った。

一応、自分の中でまぁこれくらいできれば十分快適かなというレベルに達したのでメモ代わりに書いておく。

別にUbuntu上でIDEA触ればいいんだけど、最近ハマっているLeague of LegendsはUbuntu上で動かないので…

Apple Wireless Keyboard (US) MC184LL/B

Apple Wireless Keyboard (US) MC184LL/B

方針

以下のことができれば良いやという方針。

  • CmdキーがCtrlキーになる
  • CapsLockがCtrlキーになる
  • Cmd + SpaceでIMEのON/OFF切り替えができる
    • でもコード書くときの補完のためのCtrl+Spaceは阻害したくない
  • Fnキーが使える
    • Fn + Delete ができればよい

以前書いた記事、Windows7でAppleのUSキーボードを使う - はうすてんぼぶで、AppleKbWinの詳細情報 : Vector ソフトを探す!を取り上げたけれども、
Cmd + SpaceのIME切り替えの反応のラグが気になって気になってしょうがなかったので使うのはやめました。

キーバインドの変更

キーバインドの変更は「のどか」を使います。
有料ですが、すごい細かい設定もできるので(まだ使いこなせていない)、おすすめ。
再起動が不要なのもとてもいい。

汎用キーバインディング変更ソフト「のどか」
http://www.appletkan.com/nodoka.htm

キーバインドの変更で、CmdとCapsLockキーをCtrlにするだけならよくあるアプリで簡単にできる。
ただ、IMEのON/OFFの切り替えはCmd+Space、入力補完はLeftCtrl+Spaceでやりたいので、
キーバインド入れ替えだけで対応するのは無理ぽ。

のどかは、アプリケーションごとにキーバインドの変更もできますが、
今回は割愛。

やること

ようは、

  • Cmd + Spaceが押されたときはIMEのON/OFFが切り替わる
    • Ctrl + Spaceのイベントは送出しないようにする
      • コード補完とIME切り替えが同時に行われるのは地獄や…
  • それ以外のときはCmdキーはCtrlキーと同様の振る舞いをする
    • Ctrl+Sや、Ctrl+Xが普通に使える状態

これをやりたい。

初期状態のCmdキーはLeftWindowsに該当するので、これをよしなにする。

設定ファイルの書き方

設定ファイルはちょっと独特?な感じがするのでマニュアルを見ながらぺちぺち書きましょう。

「のどか」 - MANUAL
http://www.appletkan.com/nodoka-doc/MANUAL-ja.html

ぺちぺち書いてみた結果以下のようにすれば、要件は満たした。

# 左WindowsキーをCtrlキーにする
mod windows -= LeftWindows
mod control += LeftWindows
key *LeftWindows = *LeftControl

# mod0のモディファイヤにCmdキー(LeftWindows)を入れる
# こうすることで、Cmdキーを押したときに、m0も押されたことになる
mod mod0 += LeftWindows

# CmdキーとSpaceが押された時のみIMEのON/OFFを切り替える
# D-C-D-Spaceだけだと全てのCtrl+Spaceで反応してしまうので、m0も切り替え条件に加える
key D-m0-D-C-D-Space = $ToggleIME

# CpasLockキーをCtrlキーにする
mod control += CapsLock
key *CapsLock = *LeftControl

#これやらないと常時controlがon状態になる
mod mod1 += CapsLock

ここに行き着くまで結構時間がかかったけど、
これでキーバインドの調整はおっけー!

Fnキー+Deleteの有効化

のどかで設定しようとしたのだけども、
そもそもApple KeyboardのFnキー押されたこと検知できてねぇ…という問題にぶちあたった。

そこで、Apple Wireless Keyboard Helper for Windows」というアプリケーションを使うことにした。

Apple Wireless Keyboard Helper for Windows - Misuzilla.or
http://www.misuzilla.org/Distribution/AppleWirelessKeyboardHelper/

Apple Wireless Keyboard Helper for Windowsは、
Apple Wireless KeyboardのFnキーやEjectキーなどの特殊キーをWindows上で扱えるようにしてくれる。

ただ、現状、上のリンク先のdownloadにおいてある実行ファイルが少し古いようで、
自分の使っているキーボードの型番、MC184LL/Bだと、
Apple Wireless Keyboardが接続されていません。」
とキーボードを繋いでいてもエラーダイアログが表示されてしまう。

そのため、少し遠回りして使えるようにしてあげる必要がある。

※実行してみてエラーダイアログがでなければ特に以下の手順は必要ないです。

手順

  1. GitHubからApple Wireless Keyboard Helperのソースコードを入手する
  2. Microsoft Visual Studio 2010 Expressをインストールする
  3. ソースコードをビルドし直す
  4. 実行ファイルを上書き

参考にしたのは以下のサイトさん。

エスプレッソな日々 Apple wireless keyboard helper for windows を編集して使いやすくしてみる。
http://espressoaddshot.blog74.fc2.com/blog-entry-503.html

公式ページに置いてある実行ファイルよりも、外部に置いてあるソースコードのほうが新しい!
ということみたい。

ソースコードの入手

今はGitHubでソースコードが見れるようになっている。

mayuki/AppleWirelessKeyboardHelper
https://github.com/mayuki/AppleWirelessKeyboardHelper

このソースコードを使って、最新版で実行ファイルを作れば大丈夫!といった感じ。

gitが使える環境であれば、clone。
無いのであれば「□ZIP」ってとこを押してzipで落とす。
f:id:Silent-Bob:20130203145133p:plain

これを解凍して、よしななところに置いてください

Microsoft Visual Studio 2010 Expressをインストールする

すでにVSが入っているのであれば飛ばしちゃってください。
上の参考サイトさんで、2010を使っていたので、それを真似しました。
2012でも大丈夫だとは思います。

ダウンロード | Microsoft Visual Studio 2012
http://www.microsoft.com/visualstudio/jpn/downloads#d-express-windows-desktop

Visual Studio 2010 Expressの項目にある、
(+)Visual C# 2010 Expressってところをクリックすると、以下のようになるはず。
f:id:Silent-Bob:20130203145725p:plain

そこの、「今すぐインストール」を押して、インストーラをダウンロードする。
ダウンロードが終わったらインストールしちゃってください。

インストールに結構時間がかかります。
最終的に2.5GBぐらい容量食いますが、用が済んだらVSを消せばいいだけなので、気にせずGO!

ソースコードをビルドし直す

ソースコードを解凍したフォルダ内に、

AppleWirelessKeyboardHelper-master\Misuzilla.Applications.AppleWirelessKeyboardHelper.sln

というファイルがあると思います。

f:id:Silent-Bob:20130203150214p:plain

VSファイルをインストールしたことでslnファイルが開けるようになっていると思うので、
ダブルクリックして開いてください。

開いたら、画像のように、
Misuzilla.Applications.AppleWirelessKeyboardHelperを右クリックしてビルドを選択。
f:id:Silent-Bob:20130203150838p:plain

ビルドが通ったことを確認した後に、

Misuzilla.Applications.AppleWirelessKeyboardHelper\obj\x86\Debug

に移動して、AppleWirelessKeyboardHelper.exeがあることを確認します。
f:id:Silent-Bob:20130203151151p:plain

※objディレクトリ以下のx86\Debug部分は環境に寄って変わります。

実行ファイルを上書き

Apple Wireless Keyboard Helper for Windows - Misuzilla.orgのdownloadから、AppleWirelessKeyboardHelper-20091230.zipをダウンロード&解凍。

AppleWirelessKeyboardHelper-20091230ディレクトリ内にある、
実行ファイルであるAppleWirelessKeyboardHelper.exeを、さっき作ったexeファイルで上書きします。

実行!確認!

これで実行できるはず!!

Fnキー + Deleteキーで、前の文字が消えることを確認できたらおっけー!
ついでに、スタートアップ時に自動的にexeが起動するように設定しておきましょう。

あと、VSを日頃から使わない方はこのタイミングでアンインスコするのを強く推奨します。

おわりに

だいぶ時間を取られたけれど、これで自分なりに満足いくキーボードになったと思う。

「のどか」は色々キーバインドいじれるので夢がひろがりんぐ。

Apple Wireless Keyboard Helper for Windows」は実行するまで手こずったけれども、実行できたらFnキーが有効になってとても便利!

以上。