macOS Sierra に Karabiner-Elements 入れて「英数」キーを「Command」にして、単独で押した時は「英数」として認識させた話

2017/07/08 追記

本エントリは 2016年12月現在の情報です。それから半年+α 経って、ついに本家の Karabiner-Elements で同機能がサポートされました。その詳細を、次のエントリに記載しましたので、今後はこちらを参考にしてください。

ngzm.hateblo.jp

以下、当時の情報です。

はじめに

タイトル長い。。

MAC OS Sierra がリリースされてはや3ヶ月。"そろそろアップデートしないとなー"と思いつつも、これまで Karabiner にお世話になっていたこともありなかなかバージョンアップに踏み切れずいたのですが、、先日、改めて調べてみると Karabiner-Elements でいけそうな気配を感じたので、思い切って Sierra にアップデートしました!!という、その時の話です。

すなわち、MAC OS Sierra にアップデートした後、Karabiner-Elements でタイトルのようなことをゴニョゴニョしたときのメモです。

これまで Karabiner にお世話になっていたこと

自宅のMACでは日本語キーボードを使っています。なので、別に Karabiner 使わなくても何とかなるのですが、日本語キーボードは英語キーボードに比べ、左「Command」キーの位置が左に寄り過ぎていて気に食わない、そこで、できれば「英数」キーを左「Command」キー的に利用したい。さらに単独で「英数」キーや左「Command」キーを押した時は「英数」として認識してほしいというのが私の願望でして、その願望をうまいこと叶えてくれていたのが Karabiner でございました。

また、会社では英語キーボードを使用しており、単独で左「Command」キーを押した時は「英数」として、右「Command」の時は「かな」として認識してもらわないと、なおのこと日本語切り替えに困惑する訳でありまして、やっぱし karabiner の導入は必須となってしまうのです。

今回導入した Karabiner-Elements について

「英数」キーを左「Command」キー的に利用したいというのは、本家の Karabiner-elements でも問題なく実現できるのですが、単独で「英数」キーや左「Command」キーを押した時は「英数」として認識させるということはできませんでした。

ここで諦める訳にはいかないので、さらに調査を進めてみると、wwwjfy さんが単独で何かのキーを押した場合だけ、特別な認識をさせるという、いわゆる「StandAlone Key」という機能を開発されていて、これをマージすればよさげなことが分かりました。さっそくマージだ!とビルド環境を整備していた矢先、なんと wwwjfy さんご自身でマージ版のインストールパッケージご提供されておりましたよ。至れり尽くせり、ありがたや。

github.com

ということで、「StandAlone Key」がマージされた Karabiner-Elements を Sierra にインストールしました。

Karabiner-Elements の設定内容

無事にインストールが完了したら、まず最初にキーボードの種類をきちんと設定します。現在 Karabiner-Elements の “Keybord Type” のデフォルトが、英語配列になってますので、日本語配列のキーボードを利用する場合は、"Keybord Type" を “JIS” に変更する必要があります。以下のように Karabiner-Elements の設定画面上で設定します。

f:id:ngzm:20161222003352p:plain

続いてキースワップを設定します。今回は「英数」キーを左「Command」として認識するように設定します。こちらも Karabiner-Elements の設定画面上から行います。

f:id:ngzm:20161222003357p:plain

そしていよいよ StandAlone Key の設定です。すなわち、単独で「英数」キーや左「Command」キーを押した時は「英数」として認識させます。これについては、Karabiner−Elements の設定画面で設定できないので、定義ファイルを直接編集して行います。定義ファイルは ~/.karabiner.d/configuration/karabiner.json *1です。これに以下の定義を追加します。

   "standalone_keys" : {
       "left_command" : "japanese_eisuu"
    }

一部だけだとよく分からないので、ここまでの設定が反映された karabiner.json 全体を以下に示します。

{
    "profiles": [
        {
            "devices": [
                {
                    "disable_built_in_keyboard_if_exists": false,
                    "identifiers": {
                        "is_keyboard": true,
                        "is_pointing_device": false,
                        "product_id": 599,
                        "vendor_id": 1452
                    },
                    "ignore": false,
                    "keyboard_type": 42
                },
                {
                    "disable_built_in_keyboard_if_exists": false,
                    "identifiers": {
                        "is_keyboard": true,
                        "is_pointing_device": false,
                        "product_id": 627,
                        "vendor_id": 1452
                    },
                    "ignore": false,
                    "keyboard_type": 42
                }
            ],
            "fn_function_keys": {
                "f1": "vk_consumer_brightness_down",
                "f10": "mute",
                "f11": "volume_down",
                "f12": "volume_up",
                "f2": "vk_consumer_brightness_up",
                "f3": "vk_mission_control",
                "f4": "vk_launchpad",
                "f5": "vk_consumer_illumination_down",
                "f6": "vk_consumer_illumination_up",
                "f7": "vk_consumer_previous",
                "f8": "vk_consumer_play",
                "f9": "vk_consumer_next"
            },
            "name": "Default profile",
            "selected": true,
            "simple_modifications": {
                "japanese_eisuu": "left_command"
            },
            "standalone_keys" : {
              "left_command" : "japanese_eisuu"
            }
        }
    ]
}

一番下にある定義が、StandAlone Key の設定ですね。。

さて、これでOKかテストして、うまくいきましたよ。今回は、「英数」と左「command」キーだけでやって見ましたが、「かな」と右「command」でも同様に設定可能です。

また、英語キーボードの場合でも、この StandAlone Key を使えば「Commnd」キー単独の時は「かな」や「英数」となるように設定できるので便利かと思います。

ご注意

このエントリは2016年12月20日時点のことなので、将来は状況が変わっているためご注意ください。

なお、wwwjfy さんの StandAlone Key 機能は、現在のところ、本家の Karabiner−Elements に Pull Request が上がっております。こちらがマージされれば、本家の正式版でも同様の設定が可能になるはずです。楽しみですね。

*1: 2017年4月現在では、~/.config/karabiner/karabiner.json に変更されています

Homebrew で nodebrew をインストールしたら少々はまった

MAC OS 10.11 の MAC BOOK PRO にて。

タイトルどおりはまったのでメモ。はまった内容ですが、普通に Homebrew から nodebrew をインストールして、

$ brew install nodebrew

PATH を追加しろとか言ってくるので、その通りに PATH を設定して、さぁ stable版 node を入れようとしたら、次のエラーに遭遇したのでした。

$ nodebrew install stable

Fetching: https://nodejs.org/dist/v6.6.0/node-v6.6.0.tar.gz
Warning: Failed to create the file
Warning: /Users/naoki/.nodebrew/src/v6.6.0/node-v6.6.0.tar.gz: No such file or
Warning: directory

curl: (23) Failed writing body (0 != 940)
download failed: https://nodejs.org/dist/v6.6.0/node-v6.6.0.tar.gz

ちょっと調べてみると、どうやら同じエラーに遭遇した先輩がたくさんいる模様。原因は、 $HOME/.nodebrew が作成されていなかったから? ということで、それ作成してリトライ。

$ mkdir ~/.nodebrew
$ nodebrew install stable

Fetching: https://nodejs.org/dist/v6.6.0/node-v6.6.0.tar.gz
Warning: Failed to create the file
Warning: /Users/naoki/.nodebrew/src/v6.6.0/node-v6.6.0.tar.gz: No such file or
Warning: directory

curl: (23) Failed writing body (0 != 940)
download failed: https://nodejs.org/dist/v6.6.0/node-v6.6.0.tar.gz

あらっ?またか。
どうやら $HOME/.nodebrew/src も必要なようです。でも、なんだかこのまま行くと、「あれも」「これも」という感じで、次々に同様の作業を繰り返す気がします。なのでさらに調査してみます。。

すると、今回の正解らしき情報が得られました。それは、わざわざ手でこれらのディレクトリを作るのではなく、コマンド nodebrew setup をたたくということです。

$ nodebrew setup

Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew

========================================
Export a path to nodebrew:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================

これで nodebrew の実行に必要な環境がセットアップできたはずです。

$ ls ~/.nodebrew

completions/ current@     default/     iojs/        node/        nodebrew*    src/

よさそうですね。再度、node 安定版をインストールしてみます。

$ nodebrew install stable

Fetching: https://nodejs.org/dist/v6.6.0/node-v6.6.0.tar.gz
######################################################################## 100.0%
creating  ./icu_config.gypi

... (省略)
...

$ nodebrew use v6.6.0
use v6.6.0

$ nodebrew ls
v6.6.0

current: v6.6.0

うまくいきました。done。

【補足】nodebrew は、環境変数 NODEBREW_ROOT で node のインストール先を変更できますが、このときも nodebrew setup を実行すると一発で必要な環境が作成されるので非常に便利。ぜひ覚えておきましょう。

川崎RUBY会議の運営(会場係)をやりました

2016年8月20日に「川崎RUBY会議01」が開催されました。私は会場係として運営に参加いたしました。

regional.rubykaigi.org

こっちは twitter まとめ

togetter.com

運営に参加したきっかけ

数年前から毎月第4水曜日に「kawasaki.rb」という地域RUBY勉強会を行っていまして、今回は、kawasaki.rb の主催者である @chezou さんが「川崎RUBY会議01やるよ!!!」とお声を掛けてくださったのが始まりです。わたしは、kawasaki.rb の会場として会社の会議室を提供することが多かったので、そのご縁もあって、このRUBY会議の会場係として運営に参加させてもらったのでした。

参加者の皆さんのレポートご紹介

さっさとブログ書けばいいのに、忙しいとか何とかでグズグズしていたら既に1週間以上経過してしまいました。そうこうしている間に、参加者のすごい皆さんがいろいろな素敵なレポートを書いてくださいましたので、ここでは、私などがぐたぐた書くよりも、それらレポートをまとめ的にご紹介したいと思います。

最初にご紹介するのは、基調講演をしていただいた @mametter さんのブログです。@mametter さんの講演は「Ruby で高速なプログラムを書く」ということで、「Optcarrot」というファミコンソフト(NES)のRUBYエミュレータを開発した経験から、いかにしてプログラムを高速化すべきか?という非常に参考になるお話しでした。高速化する上での心構えとか必見ですね。コミッタおそるべしです。

d.hatena.ne.jp

お次は、@ryonext さんのレポートです。そういえば、この前の kawasaki.rb でもためになる話を聞かせてもらいました。あざました。

ryonext.hatenablog.com

続いては @koic さんのブログです。懇親会で初めて知り合ったのですがとても楽しい人でした。紹興酒カメと果敢に戦っていた姿が印象的で、また機会があればぜひ飲みたいですね。

koic.hatenablog.com

こちらは、「RubyRoombaをハックする」というタイトルで発表された @kon_yu さんのレポートです。ルンバと猫の組み合わせが最強なので、ぜひ動画見てほしいです。

konyu.hatenablog.com

そしてこちらは「Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ」を発表した @pachirel さん。個人的に興味ありありだったのでありがたいお話でした。

pachirel.hatenablog.com

次は、一緒に運営した @Peranikov さんのレポートです。ペラちゃんは 「Rubyistを誘うScalaの世界 2.0」という ScalaRUBYではなく?)の話を発表した人でもあります。相変わらず面白い人だ。

norizabuton.hateblo.jp

そしてここでのトリはやはり主催者である @chezou さんのブログです。会場の件とかご心配おかけしました。本当にお疲れさまでした。
サイトリンクになぜか Elixir本の画像・・

chezou.hatenablog.com

しばらくすると、本家のるびまレポートが出るので楽しみに待っていましょう。

会場の様子とかの写真

せっかく会場係やったので設営した会場とか懇親会の写真でも貼って終わりにします。

会場設営の様子 f:id:ngzm:20160828165428j:plain

エントランスのポスター(かわいい) f:id:ngzm:20160828163522j:plain

会場の張り紙 f:id:ngzm:20160828165423j:plain

始まる前にインドカレー食って会場に戻るところ(スタッフTシャツもかわいい) f:id:ngzm:20160828163520j:plain

Java 勉強会もやってた f:id:ngzm:20160828163521j:plain

セッション中 f:id:ngzm:20160828163523j:plain

懇親会にでた紹興酒カメの封印を解くお店の大将 f:id:ngzm:20160828163524j:plain

紹興酒カメを飲み干した記念 f:id:ngzm:20160828163519j:plain

とにかく最高に楽しい1日でした。運営やらせてもらって本当によかったです!

凍結したはずなのに・・故人ゆうちょ銀行口座に振込みがあった

先日、凍結したはずの口座に振込みがあり、大いに奇異を感じたのでここに記録しておく。

凍結した口座は、7月下旬に亡くなった母の口座「ゆうちょ銀行」である。

母が亡くなってしばらくは、悲しすぎて落胆しているわ、混乱しているわ、それでも葬儀とか役所とかで結構やることがあるわで、結局、この口座を凍結したのは8月上旬になってからであった。

ここで少し解説すると、銀行というのは口座名義人が亡くなるとその口座を直ちに凍結しなければならない。凍結された口座は、たとえ家族であってもお金の出し入れはできなくなる。そして凍結を解除するには、故人の一生分の戸籍を取り寄せたり、法定相続人全員の実印入りの署名をもらったりで、まぁ面倒な手続が必要である。場合によっては凍結解除までに半年以上を要するケースもある。一見して非常に面倒臭いが、凍結とはすなわち「故人の財産を守る」「相続人の権利を守る」上で不可欠な措置なのである。

ところが!である。8月15日を過ぎて郵便局で確認してもらったら、凍結したはずの母の口座に年金が振り込まれていた。

「凍結したはずなのにどうして??」と、ゆうちょ銀行窓口の人に問い合わせると次のような説明があった。

8月上旬にお母様の口座を凍結されているが、その直前に年金の支払い処理が走っていたので、そのまま振込みが実行されました。

つまり、、老齢年金というのは、支払い月の一日に支払い処理が実施されており、その後に凍結しても、当月15日には自動的に振り込まれてしまうらしい。

ということで、凍結したはずの故人の口座でも振込みがあったりするので要注意だ。もしかすると、逆に引落としされることもあるのかもしれない。「ゆうちょ銀行」に限った話なのかもしれないが、こうなると「故人の財産を守る」とか「相続人の権利を守る」とか、ちょっと危うい。

HPE ProLiant DL20 Gen9 サーバに Centos 6.7 をインストールする手順メモ

ここでは、HPE ProLiant DL20 Gen9 サーバに Centos 6.7 をインストールする手順をメモっておきます。

結構ハマりました。どのようにはまったかについては、次の記事を読んでください。

ngzm.hateblo.jp

なお、この記事が書かれたのは、2016年7月上旬です。数か月もすれば、状況が異なってくると思いますのでご注意ください。


BIOSで「Virtual Install Disk」を有効にする

1) マシンを起動し、F9キーでBIOS設定画面を表示させる。

2) システム構成を選んで、

f:id:ngzm:20160709193158j:plain

3) BIOS/プラットフォーム構成へ

f:id:ngzm:20160709193159j:plain

4) システムオプション

f:id:ngzm:20160709193200j:plain

5) USBオプションを選択

f:id:ngzm:20160709193201j:plain

6) そうすると、仮想インストールディスク(Virtual Install Disk)の設定があるので、それを有効にする

f:id:ngzm:20160709193202j:plain

7) BIOS 設定を保存して、マシンを再起動します


Centos 6.7 をインストー

1) 普通にDVDメディアからブートします

f:id:ngzm:20160709193203j:plain

2) インストーラが起動する。

f:id:ngzm:20160709193152j:plain

3) 言語(ロケール)を選択

f:id:ngzm:20160709193150j:plain

4) キーボードタイプを選択

f:id:ngzm:20160709193151j:plain

5) このあたりで必要なドライバがないと言ってくるので「Use a driver disk」を選択

f:id:ngzm:20160709193153j:plain

6) Driver Diskの選択で「/dev/sda1」が出ているはず!なのでこれを選択

f:id:ngzm:20160709193154j:plain

7) 続いてDriver Image を選択する必要があるようなので「Linux」をクリック

f:id:ngzm:20160709193204j:plain

8) さらに「Red Hat Linux」を選ぶ

f:id:ngzm:20160709193155j:plain

9) ドライバの種類を選択。
DL20Gen9は、Dinamic Smart Array なので、「hpdsa」のものを選択すること

f:id:ngzm:20160709193156j:plain

この後ドライバのチェックが走る。
この瞬間やや緊張が走るが、無事ドライバを認識できればもう大丈夫!!

10) Centosインストールメディアをチェックするかどうかの確認
今回は、特に必要ないのでスキップ

f:id:ngzm:20160709193157j:plain

11) そうすると、普通にCentosのインストールが始まる

f:id:ngzm:20160709193205j:plain

あとは通常通りインストールを行えばOKのはず!!

以上、参考になれば幸いです。