海月玲二
2020-05-20(水)

無題

自作キーボードという趣味がちょっと前から気になっていたので,試してみることにした.

「自作」と言っても,「キットを組み立てる」というレベルだ.まあガレージキットみたいなもんだ.いきなり設計とかできるわけないしな.そもそもそれ以前に,キットを組み立てるのすら正直自信がないので,今回はまず簡単そうなテンキー型のキットを頼んでみた.サリチル酸という人が配布しているSetta21なるキットである.

というかいろいろ調べてる間は,「表面実装ダイオードを手ではんだ付け」とか見てこの界隈の正気を疑っていたのだが,実際やってみると,思ったよりなんとかなってびっくりした.LEDも特に失敗なくふつうに動いてしまった.温度調整はんだごてをわざわざ買ったかいがあったというものだ.40過ぎてもまだまだ意外に工作とか楽しめるんだな.ハズキルーペ的な奴はほしくなるけど.

今回ちょっとやらかしてしまった点としては,「microUSBコネクタを補強するときにエポキシ接着剤を盛りすぎて,あやうくヘッダがちゃんと入らないところだった」とか「ネジ止めするとき適当にやったら1本少しナメてしまった」あたりかな.次は本命のキーボードにトライしてみるつもりなので,そのへん気をつけよう.

あとファームウェアを書きこむときに,てきとうにググったら出てきたdfu-programmerというコマンドを使ったら,うんともすんとも言わないので少し焦った.どうも,使ってるマイコンによって別の書きこみソフトを使わないといかんらしいな.このキットが指定しているPro Microの場合,avrdudeとかいうやつなら問題なく動くようだった.

自作キーボード界のデファクトスタンダードらしいqmk firmwareとかいうやつ,なかなか機能豊富だし,カスタマイズするのも楽なのでおもしろい.もしかすると「キリル文字を直接入力するレイヤー」とか作れるんじゃないか?

2020-05-29(金)

無題

授業のための動画を撮って,あとで編集したり確認したりしていると,当然「録音された自分の声はなんか違う気がする」問題が発生するわけだが,人間の脳とはすごいもので,しばらく聞いてるうちに全然気にならなくなった.というかそこまで自分の動画を見るはめになるとは全然思ってなかったね.

ところで,動画を撮るときは,もちろん一発で全部撮るわけではない.いくつかのカットに分けて撮ったり,あとから変なところを部分的に撮りなおしたりする.そういうわけなので,同じ服を用意したりするのが微妙に大変だ.いっそいつもスーツだったら楽そうだが,ふだん俺はスーツなんか着ないので,じっさいはよけいに大変になる.

今日は近所の1000円カットがやっと復活したので,ひさしぶりに髪を切ってもらって来たのだが,これまたタイミングの調整がめんどうだった.撮影がきりのいいところで行かないと,「説明してる途中で突然髪が短くなる人」みたいな感じの動画ができてしまう.もうめんどくさいなあ.みんなこういう問題はどうしてるんだろう?

あと動画を編集するとき,最終的に書き出す(というかエンコードする)ときの処理がけっこう重い.CPU温度が85度とかになってちょっと心配になってきたので,しょうがないからもう少しマシなCPUクーラーを買ってしまった.6千円もしたけど,ちゃんと10度以上下がって一安心.

マシンパワー自体は,たまたま去年A300とRyzen 2400Gを買っていたので,そこまで問題にはならなかった.ディスク容量についても,たまたま今年のはじめに簡単なNASとディスクを買っていたので十分だ.しかしこれは本当にたまたまで,マシン買い替えのコストや環境再設定の手間の負担を余儀なくされてる人もけっこういそうである.

2020-05-31(日)

無題

qmk firmwareをあれこれ試してみている.複雑なソフトなので,「このキーを押すとこの字が出る」以上のこともできるわけだが,それなりに謎が出てくることも多い.

いわゆるMod-TapとかLayer-Tapとか言うのか,「長押しするとモディファイヤキーやレイヤー変更になり,普通に打つと違うキーになる」という機能がある.だが,普通は実際にやりたいのは「押す長さで機能を変える」のではなく「何かとの同時押しか,そうでないかで機能を変える」ということなのだ.SandSとかそういうやつだ.

ちゃんとそのためのオプションがあって,RETRO_TAPPINGを#defineすると「長押し検知時間にかかわらず,同時押しでなければ単独押しキーが発動する」となり,PERMISSIVE_HOLDを#defineすると「長押し検知時間にかかわらず,他キーと同時押しなら同時押しとして働く」となる……はずなのだ.うまく動かないんだけど.どうもPERMISSIVE_HOLDはキーを離す順序が関係あるせいのようだ.でもRETRO_TAPPINGがうまく動かない理由はよくわからない.あまりにも押してる時間が長すぎる場合は駄目なんだろうか?

まあ結局これらはキーを押す長さで判断する機能ベースだからなのだ.たぶん.あきらめてここのページを参考に,static変数を導入して自前で判定することにしたら,俺が希望するような動作になった.よかったよかった.「同時押しだとシフトで単独だとスペース」みたいなキーコードを組み合わせごとにいちいち作る感じになって,なんか無駄が多いような気もするが,別に大量に作るわけでもないからいいか.

あとキリル文字を直接入力するのはちょっと難しそうだ.要するにunicodeを直接入力する方法が統一されていないかららしい.linuxだとibusを使ってれば可能性があるらしいが,そのためだけに変えるのもめんどくさい.