『おやすみ警報』ふかふか団地
第二十五回文学フリマ東京にて入手。4人の作者による短篇4本の合同誌です。以下、おのおの感想を書きます。
(表紙がキュート)
「Good Morning Glory」伝右川伝右
子供のころの一時期だけ会ってそれきりの友だちの記憶というのはけっこう後々まで印象に残っていて思い起こす都度みずみずしい憧憬を伴うんだけど本作にはそういう一夏の思い出のキラキラ感がしっかり表現されていると思うし、そこに人間が出来たやさしいおばあちゃんが出てくるもんだから心が温まらないわけがないんだよなあ。祖母:孫娘の関係性に脆弱性があることに気付かされてしまった。
「The Queen Is Dead」尾瀬みさき
去年の『ニュータウン』に寄稿されていた短篇もそうだったけど、作者が書く主人公とヒロインの掛け合いがめっちゃ好きなんですよね。で本作のヒロインの設定はぼくの脆弱性を完全に突いてきていてぐおお……とかくああ……とか変な声でうめきながら読んだ。自意識過剰系の語りはむかし佐藤友哉とかを好んで読みまくってたのでスッと読めた。結末にかけては「ん?」なんだけどまあ「ん?」な部分も含めて好きです。
「ペーパードライバー短編集」さんらいと
「乱脈な気孔」が好きかな。ビール飲みながら読んでいたせいかもしれないけど所々でくすっと笑わせに来る。こういう読者にとっては日常的なことを大仰な語りで語ることでコミカルな印象を出してるんだと思うんだけど成功していると思う。とはいえ、その大仰な語りが鼻につかないというとそんなこともなかった。
「夢のとなり」愛宕恵
これが一番好き。設定とプロットを丁寧に織り込んでいって結末できちんと高ぶらせてくる。というかぼくは丸岡さんに完全に感情移入していて丸岡さんの気持に完全にシンクロしてしまって最後は普通に泣いた。いやぼくは声優にあまり興味がないので、そういう表面的なシンクロではなくて、もっとね、根っこの部分でシンクロさせられてしまったってワケ。欠点を上げるとしたら冒頭で設定を陳列しているところが退屈だった点か。とはいえこれは痛切な救済の物語でありオレたちの新しいアンセムだ。
Planckキーボードのキーレイアウトの話 その2
最近、Planckキーボードのレイアウトを変えて大変しっくり来たので記録。
両手の小指の付け根でレイヤー切り替えを行う形。右下のキーは、右矢印キーとレイヤー切り替えキーを同居(tap/hold)。
* ,-----------------------------------------------------------------------------------.
* | Tab | Q | W | E | R | T | Y | U | I | O | P | - |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | LCtrl| A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / | Up |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Raise| Ctrl | Alt | GUI | eisu |Space |Enter | kana | GUI | Left | Down |Lw/Rgt|
* `-----------------------------------------------------------------------------------'
*/
[_MAC] = {
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS},
{KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP},
{MO(_RIS), KC_RCTL, KC_LALT, KC_LGUI, KC_LANG2,KC_SPC, KC_ENT, KC_LANG1,KC_RGUI, KC_LEFT, KC_DOWN, LT(_LWR, KC_RGHT)}
},
/* Raise
* ,-----------------------------------------------------------------------------------.
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | F1 | F2 | F3 | F4 | ( | ) | F7 | F8 | F9 | ~ | ¥ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | [ | ] | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Del | | | | Bksp | Bksp | | | | |Right |
* `-----------------------------------------------------------------------------------'
*/
[_RIS] = {
{KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL},
{_______, KC_F1, KC_F2, KC_F3, KC_F4, S(KC_9), S(KC_0), KC_F7, KC_F8, KC_F9, S(KC_GRV), KC_BSLS},
{_______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______},
{_______, KC_DEL, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, _______, _______, KC_RGHT}
},
/* Lower
* ,-----------------------------------------------------------------------------------.
* | | ! | @ | # | $ | % | ^ | & | * | | UP | + |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | HOME | | DEL | RGHT | | BKSP | Enter| | | ` | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | PGDN | LEFT | DOWN | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_LWR] = {
{_______, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), _______, KC_UP, S(KC_EQL)},
{_______, KC_HOME, _______, KC_DEL, KC_RGHT, _______, KC_BSPC, KC_ENT, _______, _______, KC_GRV, S(KC_BSLS)},
{_______, _______, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
},
Planckキーボードのレイヤー切り替えとかな/英数切り替え設定
Planckキーボードにおいてレイヤー切り替えキー(Raise/ Lower)は非常に押下頻度の大きいキーであり、できれば親指で押下できるエリアに配置したいものである。ところがMacの日本語キーボードにおけるかな/英数切り替え方法(スペースキーの両脇のかな/英数キーによる切り替え)に慣れ親しんだものにとって、Raise/ Lowerの位置にこそかな/英数キーを配置したいと思うのが人情である。
そこで、QMKファームウェアの”Momentary Switch with tap toggle”機能を使ってこのジレンマに終止符を打ったというのが本記事の趣旨である。
つまり、
LT(layer, kc)
を割り当てたキーをタップするとkcが入力され、長押しするとlayerに切り替わるので、Raise/ Lowerキーとかな/英数キーを2つのキーに割り当てることができる。
長押しと判定されるまでの時間は、デフォルトでは200(ms)に設定されている。ぼくの場合この設定は長すぎで、Raise+qと押下してqが入力されるといったことが頻発したので、
qmk_firmware-master/tmk_core/common/action_tapping.h
にて
/* period of tapping(ms) */
#ifndef TAPPING_TERM
/* #define TAPPING_TERM 200 */
#define TAPPING_TERM 75
#endif
としたらぼくにはちょうどよかった。
最後に、現在のWindowsマシン用のキー設定は以下の通り。なお、Windowsマシンではkeyhacにて、変換/無変換キーにIME切り替え機能を付与している。その他、左CtrlをemacsキーバインドのC-に、右Ctrlを普通のコントロールキーに設定している。
define _WIN 0
define _LWR 1
define _RIS 2
// Macro name shortcuts
#define WIN M(_WIN)
#define LWR M(_LWR)
#define RIS M(_RIS)
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* WIN
* ,-----------------------------------------------------------------------------------.
* | Tab | Q | W | E | R | T | Y | U | I | O | P | - |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | lCtrl| A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / | Up |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Esc | GUI | Alt | rCtrl|Raise |Space |Enter |Lower | rCtrl| Left | Down |Right |
* `-----------------------------------------------------------------------------------'
*/
[_WIN] = {
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS},
{KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP},
{KC_ESC, KC_LGUI, KC_LALT, KC_RCTL, LT(RIS,KC_MHEN), KC_SPC, KC_ENT, LT(LWR,KC_HENK), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT}
},
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | rClic| lClic| ( | ) | | | { | } | ¥ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | mUp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | | | | | Bksp | Bksp | | | mLft | mDwn | mRgt |
* `-----------------------------------------------------------------------------------'
*/
[_RIS] = {
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL},
{_______, _______, _______, KC_MS_BTN2,KC_MS_BTN1, S(KC_9), S(KC_0), _______, _______, KC_LBRC, KC_RBRC, KC_BSLS},
{_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MS_UP},
{KC_DEL, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT}
},
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | | UP | + |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | DEL | RGHT | ( | ) | | | { | } | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | LEFT | DOWN | F7 | F8 | F9 | F10 | Vol+ |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | | | | | Bksp | Bksp | | | Mute | Vol- | Next |
* `-----------------------------------------------------------------------------------'
*/
[_LWR] = {
{S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), _______, KC_UP, S(KC_EQL)},
{_______, _______, _______, KC_DEL , KC_RGHT, S(KC_9), S(KC_0), _______, _______, S(KC_LBRC), S(KC_RBRC), KC_PIPE},
{_______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_F7, KC_F8, KC_F9, KC_F10, KC_VOLU},
{KC_DEL, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, KC_MUTE, KC_VOLD, KC_MNXT}
},
Atreus62のキーマップの話
Atresu62が届いてキーマップも作ったのでご紹介。
ちなみにAtreus62とは、profet keyboardsにて販売されている60%キーボードである。肩を開いて打鍵できるエルゴノミクス設計と、親指で打鍵するエリア(ふつうはスペースバーがあるエリア)に複数のキーが配置されていることが特徴。日夜左手の小指を酷使し腱鞘炎と闘うemacserたちも、これを使えばたちどころに手首や肩への負担が軽減され見違えるような健康体となりらんらんと目が輝いてくることうけあいの超絶素敵アイテムであります。
この前のPlanckキーボードと同様に、QMKでファームウェアをビルドする。Flashingの手順は公式のビルドガイドに詳しい。
今回Atreus62用にぼくが考案したさいきょうのキーマップは以下の通り。
default ,-----------------------------------------. ,-----------------------------------------. | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | |-----------------------------------------| |-----------------------------------------| | Tab | Q | W | E | R | T | | Y | U | I | O | P | - | |------+------+------+------+------+------| |------+------+------+------+------+------| | Ctrl | A | S | D | F | G | | H | J | K | L | ; | " | |------+------+------+------+------+------| |------+------+------+------+------+------| | Shift| Z | X | C | V | B |-----. ,-----| N | M | , | . | / | Up | |------+------+------+------+------+------| | | |------+------+------+------+------+------| | Fn | Win | Alt | GUI | MHEN |Space | ( | | ) |Enter | HENK | GUI | Left | Down |Right | `-----------------------------------------------' `-----------------------------------------------' _FN ,-----------------------------------------. ,-----------------------------------------. | ` | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | PgUp | |-----------------------------------------| |-----------------------------------------| | | |WHEEL+| END | | | | F11 | F12 | INS | | Up | PgDn | |------+------+------+------+------+------| |------+------+------+------+------+------| | | HOME |WHEEL-| DEL | RGHT | Esc | | Bksp | | | | | \ | |------+------+------+------+------+------| |------+------+------+------+------+------| | | rClic| lClic| | PgDn | Left |-----. ,-----| Down | | | | | mUp | |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| | | | | DEL | | Bksp | { | | } | Bksp | | | mLft | mDwn | mRgt | `-----------------------------------------------' `-----------------------------------------------'
ポイントは
- 多用するスペースキーとリターンキーはもちろん親指で打鍵できるように配置した
- MHENとHENKは無変換/変換キー。職場のWindows PCではこれらにIME ON/OFFを割り当てているので、Macの英数/かなキーと似た感覚で日本語の作文ができる。利用頻度の高さから親指エリアに配置した
- 普段から日本語配列キーボードとUNIX配列キーボードを併用している身として一番困惑するのがパーレン・ブラケット・ブレイスの位置。日ごろの鬱憤を込めて親指エリアの一番大きいキーにまとめてアサインした
- emacserの生命線であるCtrlキーは親指エリアに配置してもよかったけど、そうすると他のキーボードを使う必要に狩られた際に初めてキーボードを与えられた赤子のような手つきになってしまうので、いつも通りAの左側の定位置に配置した
- Fnキー押下時にemacsのキーバインドを再現しているのは、iPadやiPhoneに接続したときのため。iOSは一部emacsキーバインドに対応しているが、なぜかC-nとC-pには対応していなくて不便なのだ
- mLftとかrclicとかはマウス操作。wheel+とwheel-はマウスホイール。が、正直トラックポイントの方がずっと使いやすい。AtreusもTEX Yodaみたいにトラックポイント付きのモデル設計してくれないかな……
ちなみにぼくはLightning - USB 3カメラアダプタ経由でiPadやiPhoneにメカニカルキーボードを接続しています(消費電力が大きいキーボードもバッテリーと同時に接続可能)。カフェドヤ活動等に便利ですが、こういう用途で作られた商品ではないので利用の際は自己責任でお願いします。
ねじれ双角錐群『望郷』@11/23水祝 文学フリマ東京
nejiresoukakusuigun.tumblr.com
サークル『ねじれ双角錐群』の小説合同誌『望郷』を、11/23(水・祝)開催の第二十三回文学フリマ東京にて頒布します。ブースはイ-46です。その他、詳細情報、参加者および作品あらすじは上記リンクをご参照ください。
ぼくの小説はほんのりSF仕立ての幻想譚 feat.のじゃロリ狐ババアなものとなっております。文学フリマ東京にお越しの各位に於かれましてはふらっと購入しましょう。当日はcydonianbananaの影武者(5人いる)の内の一人が売り子をする予定です。よろしくお願いします!
新海誠『君の名は。』
1回目を見た感想を書く。2回目を見たら見解が変わると思う。
# overview
『君の名は。』観たけどこれはもう秒速五センチメートルで約束の地を追われた俺たちがエジプトを出奔し過酷な放浪の末にようやくカナンにたどり着くまでのいきさつを描いた壮大な叙事詩の最終章だったというか、なんかもう新海誠作品群はメタな視点から見たときに新海誠の成長譚として受容されてしまいもはや主人公:新海誠といった状態なのでもう以降は『劇場版新海誠』と呼ばせていただくが、今回の『劇場版新海誠』は作中の全ての意図が説明ではなく描写によって解明されておりぼくはただただ涙を流すだけの機械と化してしまった。なんかもう「フィクションはこれにて完成です!有史以来ご苦労様でした!!解散!!!」という感じだった。生きてこの映画が見られて本当によかった。新海誠と同じ時代に生きていて本当によかった。ああ今はこの世界を創りたもうた神々に感謝することしかできないよ俺は。
# theme
思春期の残滓、青春の不可能性、一回性、二度と戻ってこないあの感覚を奇跡によって克服してしまった残酷な映画という感じがする。君の名を忘れてしまったら、もう二度と元には戻れない。それに気づいてそれでも前を向いて歩き出すのが『秒速五センチメートル』だったが、『君の名は。』では「君の名前は?」ともう一度聞くチャンスが、奇跡・偶然によってもたらされている感じがして残酷な救済という印象。序盤の交代するモノローグ、終盤のすれ違うシーンなどはそのまま『秒速五センチメートル』だが、本作ではその続きが奇跡によって成就してしまった世界が描かれている。これは残酷なのか?それとも、希望なのか?
三葉の父親は、宮水家の入れ替わり現象の情報を少なからず持っていたと思われる。それは、瀧in三葉に胸倉を掴まれたときのリアクションからそう思われる。彼はそれを妄言癖と形容していた。また一葉は、夢を見たことがあることを覚えている。
隕石事故を無くしてしまうということの意味をよく考えた方がいいかもしれない。忘却について。ラーメン屋のおやじについて。単なる物語や意味に回収できない不穏なもの、その集合が形成する結末の別の解釈を求めたい。
「ここではないどこかへ行きたい」「今の自分は本当の自分じゃないんじゃないか」という想いが新海誠作品にあらわれる分裂したふたつの世界として表出されていたが、本作では岐阜と東京だった。その間には時間の差異が横たわっており、しかしその跳躍にはSF的な説明は付されず、物語の波に乗る僕らと新海誠の感情に即して都合よく乗り越えられていく。こうなると、これまで描かれてきた、たどり着けなくてもなんとかやっていこうというポジティブさ、悲しいハッピーエンドは、どうなってしまうのか。それは、否定されて二度と戻ってこないのか? それを救うような解釈を、君の名は。に求めたい。ぼくはそれを考え続けたいと思う。
思春期の残滓、青春の不可能性、人生の一回性。君の名は。は二度と戻ってこないあの感覚を奇跡によって克服してしまった極めて残酷な映画なんじゃないか?という要約になる。君の名を少しずつ忘れながら生きていかざるをえない僕らにとって、忘却は最良の友であり温厚な看守であった。そのやさしくも冷たい孤独を苦悩の裡に受け入れ、それでも前を向いて歩き出した秒速五センチメートルの達成を、君の名は。は部分的に肯定するものの、「君の名前は?」ともう一度聞く機会を偶然によってもたらしている。これは、あまりに残酷すぎないか?ラーメン屋のオヤジの悲しみを、奇跡の名の下になかったことにしてもいいのか? ぼくにはまだ判断がつかない。
# Performance
- 瀧の中に入りたての三葉がカフェに行くシーン、司たちが木ぐみの天井に感銘を受けている場面で、三葉in瀧は当然そんなものには目もくれずにパンケーキに夢中なのだ。糸守に木ぐみの天井はありふれているらしいということがわかるシーン
- もしかしたら、三葉の自宅の天井を描いたシーンがあったのではないか?僕だったらそれを入れていく
- 勅使河原は序盤でオカルト好きであることが明示されているので、終盤に隕石が落ちてくるという話を信じたことの説明は一応できる
- 瀧の仕事で糸守の街を再建する未来が見える
- 三葉in瀧がバイトを初日からこなし始めるシーン。三葉ハイスペックすぎると思うが、夢だと思いながらヤケクソでやってるからなんか成立してる、という説明は一応できる
- 瀧in三葉が美術の時間に机を蹴って威圧するシーン、言の葉の庭と韻を踏んでいる
- 糸守の絵を見て瀧に協力する高山ラーメン屋のオヤジの視点は、視聴者の視点とシンクロしているので高ぶる。つまり、視聴者は美しい糸守の景色をこれでもかと見せられてきて、そしてそれが破滅してしまった現在の様子を見せられる。俺たちはその悲しさを、ラーメン屋のオヤジと共有しているんだ
- 糸守の湖を序盤に見ると、隕石湖かカルデラ湖か、といった印象を一発で与える。しかしそれについて説明はなく、描写して見せているだけなので、終盤に彗星の話が出てきたときに、物語の快楽を生じる。すなわち、視聴者の頭の中で情報が結合して快楽を生じる
- 御神体の中で口噛み酒を飲んだ直後のシーンの走馬灯
- 描写によって駆動するということは、シチュエーションを描くということであり、シチュエーションの中で物語の整合性などの理屈を描かなければならない。そのハードルは高い。新海誠はその点にそこまで成功していない、もしくは重視していないという指摘があるが、君の名は。に関して言えば、かなり成功しているように思える
思うところはたくさんあるけど結論としては、ぼくは新海誠の、映像と音声によって人間を強制的に快楽の坩堝に叩き落とす行為に共鳴するのでこの映画の評価は常に満点ということになります。人間は動物です。ありがとうございました。
ErgoDox組立てとキーマップの話
この前組み立てたInfinity ErgoDoxのキーマップが固まりつつあるのでご紹介。
ちなみにErgoDox とはオープンソースの左右セパレート型キーボードで、名前の通りエルゴノミクスな設計により肉体への負荷を軽減してくれるキーボードであり、朝起きてから寝るまでキーボードの前に座って腱鞘炎と闘うemacser御用達の素敵アイテムであります。
ErgoDoxの優れている点は、親指という最も強靭な指を効率的に使えるように広大な親指エリアが設けられていること、ファームウェアもオープンソースなので自由なキーマップがプログラムできること、あと左右セパレート型なので肩や手首への負担が軽減できること、などです。
腕を開いて胸を張った自然な姿勢で打鍵していると、これがタイピングのあるべき姿なのだという感慨がふつふつと湧いてきます。ぼくは今から予言しておきますが、今後は左右セパレート型じゃないキーボードを会社が提供した場合即労災が適用されるようになってくると思います。
ErgoDoxの入手先
現状でErgoDoxの購入先は3つくらいある。
- IndiegogoにてErgoDox EZ(完成品)を注文することができる。高さ調節用のチルトが付いてたり、見た目に手作り感がなくてなんとなくクォリティが高い感じがする。
- FalbaTechではパーツの素材やカラーに選択の自由がある。パーツによってはかなりキューティクルな見た目のErgoDoxに仕上げることも可能。
- MassdropにてInfinity ErgoDoxの組み立てキットが提供されており、半田ごてを用意して自分で組み立てる必要がある。僕の場合、Massdropで注文してからkitが届くまでに2,3ヶ月かかった。Infinity ErgoDoxには上部にLCDディスプレイが付いており、ファームウェアを書き換えることでLCDの発光パターンや表示パターンを自由に設定することができる。
ファームウェアについては、ErgoDox EZは前回のPlanckキーボードと同じqmk firmwareが提供されている。Infinity ErgoDoxについてはKiiBohd controllerが提供されている(WhiteFoxも同じ。Massdrop系はこっちっぽい)。
ぼくはしばしばMassdropで買い物してる流れでInfinity ErgoDoxを購入して組み立てました。
ファームウェアのビルド
ファームウェアをビルドする前にdfu-utilを用意する。Macの場合はhomebrewで準備するのが楽チン。
brew install dfu-util
オープンソースのFirmwareとしてKiiBohd controllerが提供されている。使い方としては、以下のシェルスクリプトを実行すると、
./controller-master/Keyboards/ergodox.bash
以下の2つのディレクトリができる。右手部分がICED-R、左手部分がICED-Lに対応している。
./controller-master/Keyboards/ICED-L/
./controller-master/Keyboards/ICED-R/
ファームウェアを上書きするときは、右手部分・左手部分それぞれについて、ErgoDox背面のリセットボタンを押した状態で下記コマンドを打てばいい。
dfu-util -D ./controller-master/Keyboards/ICED-L/kiibohd.dfu.bin
キーマップをいじるときは、ergodox.bashでDefaultMapに指定されているファイルを編集する。
./controller-master/kll/layouts/mdergo1Overlay.kll
キーマップをいじるとこを詳しく知りたい人はKiibohd.comを読む。もし単純なキーマップで事足りるならKLL Keyboard Configuratorでバイナリファイルを生成してくれるので楽チン。でもCtrl+Alt+Deleteとかマウス操作の設定とかは多分できない。あと、LCDディスプレイの表示をいじりたいときはCustomizing the Ergodox Infinity LCD Logoが参考になる。
キーマップ
これがぼくが考えたさいきょうのキーマップだ!
# Keymap 0: Basic layer
#
# ,--------------------------------------------------. ,--------------------------------------------------.
# | Grv | 1 | 2 | 3 | 4 | 5 | Esc | | CADel| 6 | 7 | 8 | 9 | 0 | =+ |
# |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
# | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | -_ |
# |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
# | LCtrl | A | S | D | F | G |------| |------| H | J | K | L | ; | '" |
# |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
# | LShift | Z | X | C | V | B | | | | N | M | , | . | /? | \| |
# `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
# | Hyper| RCtrl| LAlt | LGUI | MHEN | | HENK | Left | Up | Down | Right|
# `----------------------------------' `----------------------------------'
# ,-------------. ,-------------.
# | L1 | PgUp | | DEL | L2 |
# ,------|------|------| |------+------+------.
# | | | PgDn | | BSpc | | |
# | Space|Lshift|------| |------| LCtrl| Enter|
# | | | SAlt | | RAlt | | |
# `--------------------' `--------------------'
# Keymap 1: Func layer
#
# ,--------------------------------------------------. ,--------------------------------------------------.
# | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
# |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
# | | |mouseU| | | | | | | | | | | | |
# |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
# | |mouseL|mouseD|mouseR| | |------| |------| | | | | | |
# |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
# | | | | | | | | | | | | |LClick|RClick| |
# `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
# | | | |RClick|LClick| | |mouseL|mouseU|mouseD|mouseR|
# `----------------------------------' `----------------------------------'
# ,-------------. ,-------------.
# | L1 | | | | L1 |
# ,------|------|------| |------+------+------.
# | | | | | | | |
# | | |------| |------| | |
# | | | | | | | |
# `--------------------' `--------------------'
ポイントは、
- 親指でShift, Ctrl, Alt, Enterがそれぞれ押せること。Back SpaceについてはCtrl+Hで事足りる(Windowsのときはkeyhacでemacsキーバインドを再現してる)。
- HENKとMHENとあるのは、変換キーと無変換キーで、WindowsではこれらをIMEのOn/Offにアサインしている。このため、Macと同じ感覚で、全角/半角の切り替えができる。
- CADelとあるのはCtrl+Alt+Delete。
- Hyperは Ctrl+Shift+Alt+GUI。ソフト側で変なショートカットを設定したいときに使う。
- L1とあるのはファンクションキーで、これを押している間はレイヤー1のキーマップになる。レイヤー1には試験的にマウス操作を割り当てていて、この操作感がまあ悪くない。でもトラックポイントと比べるとやっぱり使いづらい。
- 職場のWindows用を考えているので、メディアキーの割り当てとかはしていない。
という感じ。
左手小指を酷使しなくなるだけで、左手首や肘の痛みが楽になったことを実感できる。
未来感
最近はPlanckキーボードを中央に配置して未来感を演出するのにハマってる。
こちらからは以上です。