自作キーボードとMagic Trackpadを一体化させたSparrow62

私にとっての、キーボードのエンドゲームにでたどり着きました。

f:id:j74th:20210211105118j:plain

写真自体はTwitterで挙げてきましたが、改めて工夫している点をまとめた記事になります。

今回の改修で以下の特徴を持つ自作キーボードになりました。

  • 60%キーボード(ファンクション、テンキーなし)
  • Column-Staggeredの配置(キー配置が縦に揃っている)
  • 左右分離
  • Cherry MX互換スイッチ対応
  • 薄型スイッチ Kailh Choc v1/v2 対応 
  • Kailhソケットを使い、交換が可能
  • 薄さを優先し、Pro Microはキーボードの横に配置
  • キーの変更が容易なVIAに対応
  • Magic Trackpad 2と一体型プレート対応し、トラックパッドをキーボードと同じ高さで使える ← New

ソケットに対応していることで、様々なスイッチを気軽に試して探求することができます。

Trackpadがキーボードと同じ高さにあることで、Trackpadを理論上最低限の指の移動で使用できるようになります。

ここまでの背景

  • Lily58を使っていた
  • MacBookProに右手キーボードを乗せてTrackpadと一緒に使っていた。トラックパッドが低い位置にあったため、薄さが重要だった。
  • Kailh Choc v2が試したくなって、Sparrow62を設計した
  • 薄さ優先で、ボトムプレート、トッププレートを廃したキットにした
  • 欲がでて、Cherry MX互換スイッチにも対応した
  • Magic Trackpad 2を使うようになった(MacBookProをクラムシェルモードで、また自作PCで)

Lily58に追加4キーを行ったSparrow62ですが、左手に2キー追加したことで、右手からキーの数を減らしても良いことに気づきました。

そして、Trackpad 2とSparrow62のボトムプレートを兼ねたアクリルプレートを制作し、一体化させることができました。

これを使うには?

基本のキットには、このプレートは含まれていません。

当初は薄さを優先すること、Kailh Chocスイッチはトッププレートと高さの点で干渉しうる点から、トッププレート、ボトムプレートを廃したキーボードキットにしています。そもそもKailh Choc v2を使うときには使っていないものを付属するのは違うと思ったからです。

一方、スイッチの高さのあるCherry MX互換キースイッチを使う場合には、トッププレートがないとしっかりと固定されません。そのため、トッププレートだけは付いたバージョンも用意しました。

そして、今回のMagic Trackpad 2への対応は、あまりユーザが多くないと考え、プレートを注文するためのデザインファイルを提供し、遊舎工房のレーザーカットサービスを利用して注文できるようにしました。

https://github.com/74th/sparrow62-buildguide#magic-trackpad-2-%E3%82%92%E5%BF%AB%E9%81%A9%E3%81%AB%E4%BD%BF%E3%81%86%E3%83%88%E3%83%83%E3%83%97%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%9C%E3%83%88%E3%83%A0%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88

その他、組み立てに必要なものについては、ビルドガイドに記載しています。

https://github.com/74th/sparrow62-buildguide#%E3%82%AD%E3%83%83%E3%83%88%E4%BB%A5%E5%A4%96%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%82%82%E3%81%AE

できるスタイルは?準備が必要なものは?

このキーボードは以下のスタイルで使うことができます。

薄型キースイッチChoc v1/v2を、ボトムプレート、トッププレートなしで使う

Choc v1は5ピンのため、安定性に問題がないとおもわれます。Choc v2も多少高さがありぐらつく場合もありますが、大きくは問題ないと思っています。

f:id:j74th:20210211113254j:plain

基本セットを購入ください。

薄型キースイッチChoc v1/v2を、トッププレートと一緒に使う

Choc v2はv1よりも高さがあり、安定性に問題を感じる場合、トッププレートを使うと、多少安定します。しかし、私自身は使用していません。

基本セット購入後に、以下のデザインファイルで遊舎工房のレーザーカットサービスをご利用ください。なお、ネジの用意はなくて大丈夫です。

https://github.com/74th/sparrow62-buildguide/blob/master/additional_plate/Sparrow62_top_Laser_A4.svg

薄型キースイッチChoc v1/v2を、トッププレート、ボトムプレートと一緒に使う

トッププレート、ボトムプレートx2を使うことで、自作キーボードとしてのパッケージらしくなります。しかし、私自身は使用していません。

基本セットを購入し、遊舎工房のアクリルレーザーカットサービスをご利用ください。

その他、必要な部品、アクリルレーザカットに必要なデザインファイルは以下を参照ください。

https://github.com/74th/sparrow62-buildguide/blob/master/additional_plate/Sparrow62_set_Laser_450x300.svg

Cherry MX互換キースイッチを、トッププレートと一緒に使う

Cherrry MX互換キースイッチを使用する場合には、高さがあるため、トッププレートがあると非常に安定します。

f:id:j74th:20210211113648j:plain

トッププレート付きのセットを購入ください。トッププレート付きのセットに、スペーサー、ねじを含んでいます。

ボトムプレートも欲しくなった場合には、遊舎工房のレーザーカットサービスをご利用ください。詳細

Cherry MX互換キースイッチを、トッププレート、ボトムプレートを一緒に使う

トッププレート、ボトムプレートx2を使うことで、自作キーボードとしてのパッケージらしくなります。私自身は、テーブルとの安定性を高めるために使用しています(テーブルとトッププレート間は「魔法テープ」を使っています。

基本セットを購入いただき、遊舎工房のレーザカットサービスを利用して注文ください。デザインファイルは以下になります。

https://github.com/74th/sparrow62-buildguide/blob/master/additional_plate/Sparrow62_set_Laser_450x300.svg

さらに必要なものについてはいかに記載があります。

https://github.com/74th/sparrow62-buildguide#cherry-mx-%E4%BA%92%E6%8F%9B%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81-%E3%82%92%E4%BD%BF%E3%81%84%E3%83%88%E3%83%83%E3%83%97%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%9C%E3%83%88%E3%83%A0%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%92%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%82%8B

Cherry MX互換キースイッチを、Magic Trackpad 2と一体化して使う

記事の最初で紹介した、私の現在のスタイルです。

トッププレート、ボトムプレートは遊舎工房のレーザーカットサービスにて注文ください。デザインファイルは以下になります。

https://github.com/74th/sparrow62-buildguide/blob/master/additional_plate/Sparrow62_set_Laser_450x300.svg

必要なものは以下にまとめています。

https://github.com/74th/sparrow62-buildguide/blob/master/README.md#magic-trackpad-2-%E3%82%92%E5%BF%AB%E9%81%A9%E3%81%AB%E4%BD%BF%E3%81%86%E3%83%88%E3%83%83%E3%83%97%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%9C%E3%83%88%E3%83%A0%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88

結局どれを買ったり用意すればいいの?

薄型キースイッチChoc v1/v2を試したい場合、基本セットを購入ください。Cherry MX互換スイッチを試す場合、トッププレートつきを購入ください。

74th.booth.pm

その後、ボトムプレート、トッププレートがほしい!となった場合、遊舎工房のレーザーカットサービスを利用して、作るのがおすすめです。

はんだ付けしたくない場合

はんだ付けを私が行ったものも販売しております。キースイッチとキーキャップとケーブルを買うだけですぐに使うことができます。

booth.pm

すぐ動くものが欲しい場合

以下の組み合わせの、完成品を用意しています。私が実際に使っているものと同じ構成になります。

  • Kailh Speed Switch Copper(タクタイル、ゲーマー軸)
  • DSA キーキャップ

booth.pm

終わりに

Magic Trackpad 2、あの1/6くらいの面積で良いのに。

Trackpad一体型を試す人や、そのような自作キーボードキットが増えると楽しいと思っています。

技術書典9で出会った本

技術書典9が今日から始まりました。

私も、コンテナの中で開発環境を作るVS Codeの技術であるDev Containerを使い始めから、開発環境コンテナとはどうあるべきかに迫る本を書きました。 よろしければお求めください。 物理本とPDFのセット、PDF単体のどちらも同じ値段の1,000円とさせてもらっています。 ぜひこの機会にお求めください。 (一時物理本の登録冊数を間違えており、品切れが発生していました。もしこの時に買われている方で物理本が本当は買いたかったという方がおりましたら、手配させていただくので、お手数ですがTwitter、メールsite@74th.techまでお知らせください!)

techbookfest.org

オンライン開催ということで、コーヒーを飲みながら、クリックしてPaypalで支払う作業を行った後、買った熱量のまますぐに読書に入ることができました。

今日読んだ本の感想をまとめます。また、読み終わるたびに #技術書典 #読書感想文 でツイートしています。ぜひ読んだらツイートをしてみてください。それを見て買うかもしれません。

Amazon Web Servicesコスト最適化入門 第2版

techbookfest.org

サラッと読みました。自分がリザーブインスタンスの計算の仕方を思い込みで誤解していたことが分かったり、Lambdaなどにも適用できる割引があったり、コストについて体系的に知らないともったいない所を知ることができました。そして、割引の適用にあたってきちんと正しく使えているか確認する方法はいろいろあって、監視する方法も書かれていて、効果的な内容と思いました。

サークル味噌とんトロ定食の表紙の作り方、考え方。

techbookfest.org

素敵な数々の表紙をどう考えて作られていたのか、どう考えるとよいのかを、説明してくれて、次表紙作る時参考にしようと思いました。ターゲットを決めるとか、一番伝えたいことを書き出すとか、言われるとそのとおりなのだけれど、それを表紙作る時に意識していなくて、機会損失していたのかもと反省しました。

Clean Architecture for React

techbookfest.org

サラッと見ましたが、もっとじっくり読まないとダメな濃い本でした。最初、Clean Architecturについてしっかりページを割いて知識を追いつけるようにした後に、TypeScriptのDI、SPA、ReduxをClean Architectureで解釈し直すと、こうできるというのを、ソースコードの実例で示してくれる。ソースコードを読み込んで、自分の中で腑に落ちるまで理解したいと思いました。

Gitのサブモジュールで困ったら読む本

techbookfest.org

gitsubmoduleには今まで散々苦しめられてきました。その時にこの本があったら良かったのにという気持ちです。無料なので、ぜひ手元に一つ。

Webセキュリティのミライ 不正指令電磁的記録問題に寄せて

techbookfest.org

技術書典のYouTubeLiveで紹介されていたのが気になって読みました。家宅捜索を受けて、どういうことを聞かれて、どういう起訴状で、というのが綴られており、一つの事件を知ることができて勉強になった。一つの時代の節目だったのだなと感じた。そして、技術書典もそういうものの一種になりうると思うのと、他人事には感じられなかった。

Vivliostyleで本を作ろう Vol.4

techbookfest.org

私の本もVivlioStyleを使って出力していますが、VFM使ってなかったり、現状できればいいやとオレオレな感じでやってたりするのを、多くVivlioStyleのツールセットが充実してきているのがわかり、積極的に使っていきたいと思いました。

van Damプロトコル

techbookfest.org

"『情報因果律』という量子論でも破れない絶対的な法則を、破る方法"というのが気になって読みました。非常に短いが、物語と数式の形で、端的にその部分の解説されていて、分かった時驚きがあって、面白い体験だった。

OpenAPI 3を完全に理解できる本 3.0.3対応版

techbookfest.org

どんなことが書いてあるかを確認したくて全体を読みました。雰囲気で分かったつもりになっていたOpenAPIに、定義でどこまで設定できるのかとか、他にどんな属性があるのかとか、実は定義の合成できるんですよとかが載っている。網羅的に辞書的に使える技術書は本当に助かります。これで次はこれをリファレンスにしながらOpenAPIで定義してくぞという気になりました。

Cloudflare Accessではじめるゼロトラストネットワーク

techbookfest.org

ゼロトラストネットワークとは何かを理解したくて読んでみました。その部分は、これまでのVPNなどのセキュリティの何が問題でゼロトラストネットワークの考え方がでてきたかから丁寧に説明されて、短時間でその概念が自分の中で腑に落ちることができました。後半はCloudflareの画面で実例が解説され、理解した内容を設定で見せてくれて、自分はまだその部分を丁寧に読んでいないですが理解した概念を実際に使ってみる感じになり、理解に繋がったと思い良かったです。

SCP Secure. Co. Py SSHハンドブック

techbookfest.org

当たり前のように使っているSSHで、実はこういうことができたんです、と今すぐにも役立ちそうなことが自分の場合3つ(sshfs、X11転送、多段SSHがConfigでかける)もあり、今後使うかもしれないVPNや二段階認証などもあり、こういう当たり前の技術の知らない側面を説明してくれる技術同人誌は読んでおいてよかったと思えます。

Yubikey と OpenSSL で作る電子認証局

techbookfest.org

YubiKeyで電子認証局を作ることに実用性があるのかはわからなかったが、Yubikey自身が証明書を認証したりする機能があって、それが利用して一通りできることがわりと面白かった。仕事で持っていて使っているけれど、OTPだけでなく潜在能力はここまであるとしては知ることができた感じ。

失敗プログラマ

techbookfest.org

最新刊のエッセイ集ということで読みました。何でもできないとと焦るけれど、興味あるところしか伸びないのはそのとおり。こういうエッセイでどうやって今のところまで来たのか、話してくれるのは読み物として面白く、参考になります。

『Visual Studio Code 実践ガイド』を上梓しました

f:id:j74th:20200223113818j:plain:w300

VSCode の解説書、『Visual Studio Code 実践ガイド(技術評論社)』を上梓しました。 入れる価値がある!と思ったことを全部詰め込んだ結果、執筆に 1 年がかかり、さらに 400 ページと分厚くなりました。

gihyo.jp

誰に向けての本なのか

全ての VSCode ユーザのための本を作りました。

VSCode は毎月アップデートがあり、現在のバージョンも v1.42 です。 VSCode は直感的に操作ができるようにできているとはいえ、機能が豊富になり、どんな機能があってどうやって使うかを手軽に知ることが難しくなってきました。 この本により、VSCode がどんな機能を持っているか、どうやって操作することで機能が使えるのかを解説する本になっています。 VSCode に習熟した人も、まだ出会っていない機能があるのではないかと探すつもりで読んでいただけると思います。

また、実際に開発を行う時に必要なことは言語ごとに異なります。 筆者は、実際に Type Script、Go、Python のプロダクト開発で VSCode を活用しています。 第 2 部には、Typs Script でのフロントエンド開発、Go でのサーバ API 開発、Python でのサーバ API、Jupyter の使い方を、ハンズオン形式で解説しています。 各言語ごとにどんな機能が VSCode から得られるのか、VSCode を使って開発を始めるにはどんな準備が必要か、記述しています。

ざっくり構成

第 1 部「Visual Studio Code の基本」は VSCode の全機能を解説したものになっています。 Git の章では定番拡張機能である GitLens などの解説もしています。

第 2 部「実際の開発で Visual Studio Code を使う」では、Type Script、Go、Python を使った実践的な開発方法をハンズオン形式で解説します。

第 3 部「拡張機能の開発と Language Server Protocol」では、拡張機能ではどんな部分が拡張できるのか、その開発方法、マーケットプレイスで公開する方法について解説します。 そして、様々な言語ランタイムとエディターをつなぐ共通基盤となった LSP について、実際にやり取りされるデータを示しながらその動きを解説します。 最後には、LSP を使った VSCode拡張機能開発にまで踏み込みます。

この本の特徴

1. 言語別ハンズオンの章で各言語の様々なデバッグ実行のやり方を書いていること

なにかプログラムで躓いた時にはデバッグ実行が欠かせません。 しかし、デバッグ実行しようと思うと、その環境の整備に手間取ることが多いと思います。 VSCode でも、デバッグ実行が簡単にできるかと言われると、多くの設定が必要になります。 本書では、デバッグ実行できることを当たり前に感じてもらうよう、ユニットテスト、サーバプログラム、フロントエンドプログラムのそれぞれのデバッグ実行のやり方や、そのコツを解説しています。

2. 3 つの言語の使い方を解説していること

VSCode は様々な言語をサポートする万能エディタと言えます。 ただし、言語によって環境構築の仕方や、開発で必要となる機能は違います。 またデバッグに必要となるツールや設定も当然異なります。

一つの言語のためだけでは VSCode の解説書としては足りないと感じていました。 特に筆者が実プロダクトの開発で使っている Type Script、Go、Python ならば、それぞれをかなりのレベルで書くことができると思い、第 2 部の言語を選定しました。 すでにこの 3 つの言語で開発している人も、解説、本書を活用できると思います。

3. LSP の拡張機能を作ること

VSCode の解説書を作るからには、LSP を解説したいと思っていました。 LSP は拡張機能のくくりでプロトコルを解説し、 LSP を解説した書籍は、mattn san の Software Design の連載とこの本くらいなのではと思っています。 さらに、LSP の 1 つのプロトコルを実装する拡張機能開発まで進みます。

解説していないこと

まとめ

アップデートが毎月あり、盛り込めるだけ盛り込み、時間が立つほど機能が増え、それに追われる日々でした。 しかし、開発で使う機能はというと、開発の基盤になり得るほど充実してきており、解説書があっても良い時期になったのではないかと思います。