bouzuya.hatenablog.com

ぼうずやのにっき

Let's Split で Mod Tap がうまく動かなかった

昨日 (2017-09-06) に続いてキーボードの話。

昨日は QMK の Mod Tap を使って ErgoDox EZ での使用キーを 36 まで減らした。……ところが、家で同じ配列を Let’s Split で試したら、これがダメ。 A のひっかかりが特に致命的で使い物にならない。頻繁に使うキーなので誤爆されると困る。リストレストやキー配置などの指とキーの位置の問題なのか、それとも機器に何かが……。どちらにせよ動かないのだから避けるまで。もともと避けたいものなので避けていく。

諦めて Let’s Split 向け v7 は Mod Tap を減らした新しい配列にした。レイヤーの切り替えキーを減らすことで押し込めた。じゃあ、なぜ Mod Tap を……。 GUI / Space としてのみ Mod Tap を使っている。

レイヤー 2 についてはレイヤー 1 のシフトでしかないので、 JIS キーボードとして使えるようにすれば不要になる。その変更を進めたほうが良さそう。タイプライタペアリングが嫌なんだよな……。


なわとびを再開した。まだ首は痛いけど、いつまでも休みたくないので。

QMK の Mod Tap を使う

毎週のように書いている気がするのだけど、またキー配列の話。

2017-09-01 に「押しやすいキーだけで構成すると 36 キーになる」という話を書いた。実はこの形のキーボードがあるようだ(想像しうるだいたいのものはある)。

……と、こういう流れできて、「あれ 36 って」と思い出した。どうやら ErgoDox EZ の 76 キーから Let’s Split の 48 キーへと向かってきた、ぼくのキー配列は minidox の 36 キーへと向かっているようだ。

36 キーは数字を含まない基本の 30 キーと親指部分の 6 キーだ。ここにぼくの必要なものを押し込めるだろうか。 modifier 4 レイヤー切り替え 2 スペースキー 1 。普通に考えると足りない。

この状況を打開するため、避けていた mod tap を導入することにした。

QMK 内で mod tap と呼ばれているこの機能 は、「窓使いの憂鬱」で SandS: Space and Shift という名称で呼ばれていたことで知った。 ErgoDox EZ のサイトでは dual-function keys として書かれている。挙動としては、押し続けると Shift などの modifier 、タップすると Space などの key として送られる。

良い点は 2 キーを 1 キーにするのでキー数を削減できることだ。良い場所に配置できることもそうかもしれない。悪い点は誤爆すること。タップのつもりが同時押しとして判定されてしまう、その逆もある。

とりあえず ErgoDox EZ で試してみた。v19 として gist に貼った 。なかなか良さそう。これで minidox (36 キー) に収まる。

A と Ctrl 、 Z と Shift 、 / と Shift を兼ねさせて節約する。 ; と Ctrl を兼ねていないのは CTL_T(OSL(L3)) のような単純な方法では動かないからだ。このあたりは余裕があればそのうちに書く。ソースコードを追えば分かるが、 QMK が特殊な処理をするキーコードをふたつ同時に指定してしまっており、動かない。

一日これを試してみたが、特に大きな問題はなさそうだ。ぼくのキー配列がまた前進 (?) したようだ。

bouzuya/mr-jums 進捗

bouzuya/mr-jums ほとんど進まず。テストをすこしだけ足したくらい。 bouzuya/beater のレポーターが成功もすべて表示してうるさいので、もうすこし静かな tap reporter を探そうかな。


映画『 16 Blocks 』を見る。ブルース・ウィリスが撃たれるいつもの映画だった。


首の痛みはおさまってきたが、まだ違和感がある。

blog.bouzuya.net 4.4 向けの作業中……

bouzuya/mr-jums (blog.bouzuya.net 4.4) の JavaScript を書いている。だいたい動くけど、いろいろ動いてない。

フォーカス移動時にすべての記事のインデックスを取得するようにした。純粋な (SSR された) HTML としては指定された日付の前後半月分しか保持していない。記事の一覧をうまく切り替えていくためには、追加で取得する必要がある。そこでフォーカスの移動時に全件を取得するようにした。

そもそも前後半月分しか保持していないのは理由がある。全件の取得時間は大した問題ではないが、すべての記事に全件が含まれるようになっていると、静的ページの再生成の範囲が大きくなってしまうからだ。再生成の時間も実は大したことないのだけど、アップロードの時間はわりと大きい。結果として再生成の範囲は狭める必要がある。

ほかにも余計なリクエストを送っているのを直した。

せっかく細切れにできるフレームワークなのに、横着して細かい単位でテスト書いてないので、いろいろ残念だ。


首がまだ痛い。そろそろ治ると信じている。

2017-W35 ふりかえり

2017-W35 をふりかえる。

2017-08 の目標

  • bouzuya/mr-jums を公開する

2017-09 の目標

  • blog.bouzuya.net 4.x に区切りをつける
  • 本を読む

2017-W35 の目標 とその記事

目標。

  • ☑ 『数学ガール』を読み終える
  • ☑ blog.bouzuya.net 4.3 のことを書く
  • Factorio 2-2 のことを書く
  • blog.bouzuya.net 4.4 をつくる

記事。

Let's Split の到着とその設定、あとは Factorio

見出しに見えない要素として、けものフレンズの再放送を見終えたり、数学ガールを読み終えている。あとは定期の散髪も。

blog.bouzuya.net はほとんど進んでいない。

つくったもの

2017-08-28/2017-09-03

先週コミットをしていなかった blog.bouzuya.net 4.3.0 。

oikurs はまとめ買い価格に対応した 0.3.0 。特に書いてない。

oikurs のバージョンアップついでに『それでも町は廻っている』を買った。

その他

blog.bouzuya.net が進んでいない。 4.4 でスマホ向けの JavaScript 対応、 4.5 でパソコン向けの JavaScript 対応をしたい。

自宅作業用に冷却パッド・ bluetooth イヤホン・トラックボール M570t を買った。

時機を外している感はあるけど、冷却パッドを買った。軽く試した感じ、思ったよりも冷却できていそう。 Macbook Pro が熱くなると性能低下しているように感じるので、対策になればいいなあ。

bluetooth イヤホン。 bluetooth ヘッドホンを買ったのだけど、重くてつらいので有線のイヤホンを使っていた。線の数が多すぎるので、これで減らしたい。

トラックボール M570t 。これで何台目だろう。おそらく 5 台目。ひょっとするともっと多いかもしれない。 Wireless Trackball の機種である Trackman Wheel から使っている。この 14, 5 年くらいで何度も乗り換えている。 2017-07-03 に書いたとおり REALFORCE -> ErgoDox EZ と合わせて Digio2 を試していたが、しっくりこなかった。諦めて自宅・会社ともに M570t へと置き換えた。

首の痛みが治らない。一週間ほどでおさまらなければ医者かな……。

2017-W36 の目標

  • Factorio 2-4 のことを書く
  • blog.bouzuya.net 4.4 をつくる

Factorio 新たなる希望 level-02, 03

昼食をひさしぶりに外でとったあと、「すこし昼寝を……」と横になったら、気づけば夜だった。今日は何をしたんだっけという状態だ。

そういう状態なので Factorio のことを書く。ネタバレ注意。

Factorio は遊びたいのだけど、時間がなかったり家族から嫌な目で見られるなどするので、控えている。それでも steam のプレイ時間記録によると 20h ほど遊んでいる。

キャンペーンを前から順に遊んでいる。『小さな一歩』はデモ版に含まれている。レーダーで宇宙船を探すところまでだったかな……。『新たなる希望』からは製品版に含まれている。 level-01 は自動車をつくり仲間のところへ向かう。 level-02 は、残骸を再利用して、列車を開通させる。列車で鉱山の資源を確保しつつ、次への移動の準備をする。 level-03 は移動してきた先で宇宙船の残骸を見つけるものの、バイターの近くにある……というもの。ここまで進んでいる。

level-01 でサイエンスパック 1 & 2 の自動化に手こずったことは 2017-08-26 に書いた。

level-02 はもう簡単だろうと思ったら、そうでもなかった。サイエンスパック 1 & 2 の先に列車が待っていた。研究はカンストしたんだけど、そこからもわりと長かった。線路を引き直すための鋼材や、最終的に必要な弾薬類などの生産設備が全然なかったからだ。研究終了後に資源が枯渇ぎみになってつらかった。鉱山からうまく運んでこれるようになったころには鉄板が限界だった。銅板のほうは鉱山から運ばずにクリアした。そもそも面倒でもコンベアかなにかで引いてきたほうが安定したかもしれない。

level-03 は資源なしで、バイターを倒す。自動車の資源に気づいていなくて、弾薬不足に困っていた。気づいてからはそんなにかからなかった。森に逃げ込むとイージーなせいか、うまく追ってこれなくなる気がする。タレットで安全地帯をつくりつつ、ロケットランチャーでひとつずつ倒していけばなんとかなるはず。ここまでとはちょっと毛色が違った。戦闘訓練のような。あのごついの倒せるんだなって。


なわとびで首を痛めたようだ。いつものように飛びはじめたところ、数十回ほど跳んだところで首に痛みが出た。寝違えたような痛みだ。続けて跳んでいられないくらいには痛かったので、なわとびは中止。そのあともずっと痛い。寝返りが打てない。

Let's Split の配列を考える

Let’s Split の 2 台目を依頼した。もう一台欲しいとツイートしていたら、また @kmtoki につくってもらえることになった。ありがたい。前回とほとんど同じ構成で、今度は 25,000 円の予定。前回ほど安すぎ感がなくなっていて、ほっとする。体感的にはまだ安い気もするけど、「それで食ってるわけじゃないので」とのことなので……。とにかく楽しみだ。家と会社の両方で使えるようになる。

そういえば使用感について書いていなかった。一日だけ業務で使った。それだけでもう ErgoDox じゃなくていいやという感想を持つまでに至った。ぼくの配列だと既に ErgoDox のキー数を必要としていない。

そういえばぼくの配列についても書いていなかった。一応 Gist として公開している。ErgoDox のときの設定のベタ移植だ。

https://gist.github.com/bouzuya/38cf85e55fb3a064e9efc49cfec8a6c4

親指にもう 1 キーずつほしかったので、ホームポジションをひとつ小指側にずらしているのが特殊だと思う。

キーの位置を説明しづらいので以降、[行,列] と書く。行は水平に伸びるもの (qwe…) 、列は垂直に伸びるもの (qaz…) で、 それぞれ 1 からはじまるものとする。図示すると↓のような形だ。

,-----------------------------------------. ,-----------------------------------------.
|  1,1 |  1,2 | 1,3  | 1,4  | 1,5  | 1,6  | | 1,7  | 1,8  | 1,9  | 1,10 | 1,11 | 1,12 |
|------+------+------+------+-------------+ +------+------+------+------+------+------|
|  2,1 |  2,2 | 2,3  | 2,4  | 2,5  | 2,6  | | 2,7  | 2,8  | 2,9  | 2,10 | 2,11 | 2,12 |
|------+------+------+------+-------------+ +------+------+------+------+------+------|
|  3,1 |  3,2 | 3,3  | 3,4  | 3,5  | 3,6  | | 3,7  | 3,8  | 3,9  | 3,10 | 3,11 | 3,12 |
|------+------+------+------+-------------+ +------+------+------+------+------+------|
|  4,1 |  4,2 | 4,3  | 4,4  | 4,5  | 4,6  | | 4,7  | 4,8  | 4,9  | 4,10 | 4,11 | 4,12 |
`-----------------------------------------' `-----------------------------------------'

さきの 2,4 が左手人差し指、2,9 が右手人差し指の位置。ちなみに親指のホームポジションは 4,5 と 4,8 にしている。それぞれ L1 と L2 を割り当てている。

いろいろと悩みはある。

できれば小指を使わないようにしたい。 Cmd を [4,1] に割り当てているのだけど、これの利用頻度が高くてつらい。親指に持っていきたいのだけど、ちょうど良い場所がない。

4,2 / 4,3 / 4,10 / 4,11 はかなり押しづらい。薬指・中指はこの位置に通常は届かないからだ。同様に届かない人差し指の [4,4], [4,9] は親指で押す。 Cmd + Alt + Up / Down が Visual Studio Code の矩形選択になっているので、よく使う。

4,x については 4 5 6 7 8 9 だけを使いたいのだけど、現実には modifier キーを残しておかないとアプリケーションのショートカットキーでしばしば詰む。

x,6 / x,7 は 4 を除くと、素早く押せない。親指が手前のキーにあたってしまうし、人差し指ではホームポジションが大きく崩れる。

押しやすいキーだけで構成すると 36 キーしかないんだよね……。このキー数で困らない配列が果たしてつくれるのだろうか。

,----------------------------------.               ,----------------------------------.
|  1,1 |  1,2 | 1,3  | 1,4  | 1,5  |               | 1,8  | 1,9  | 1,10 | 1,11 | 1,12 |
|------+------+------+------+------+               +------+------+------+------+------|
|  2,1 |  2,2 | 2,3  | 2,4  | 2,5  |               | 2,8  | 2,9  | 2,10 | 2,11 | 2,12 |
|------+------+------+------+------+               +------+------+------+------+------|
|  3,1 |  3,2 | 3,3  | 3,4  | 3,5  |               | 3,8  | 3,9  | 3,10 | 3,11 | 3,12 |
|------+------+------+------+-------------+ +------+------+------+------+------+------|
                     | 4,4  | 4,5  | 4,6  | | 4,7  | 4,8  | 4,9  |
                     `--------------------' `--------------------'