Open83

keyball44の設定

ダン@HyperFormダン@HyperForm

環境

$ git -v                  
git version 2.39.3 (Apple Git-146)
$ brew -v                 
Homebrew 4.3.15

メルカリで、組み立て済みのkeyball44を購入。

あとで調べることリスト

ダン@HyperFormダン@HyperForm

Remap開いてみたけど、「対応デバイスが見つかりませんでした」ってなる

ダン@HyperFormダン@HyperForm

付属してたキーボード→PCのケーブルの端子がTypeAだったから、家にあったTypeA→Cに変換するコネクタ使ったけど、このコネクタがデータ転送に対応してないとかある?
可能性低そうではあるけど。

ダン@HyperFormダン@HyperForm

とりあえずファームウェアをダウンロードしてみる。

$ brew install qmk/qmk/qmk

$ git clone --recursive git@github.com:qmk/qmk_firmware.git

$ git clone https://github.com/Yowkees/keyball.git keyball

$ ln -s ~/keyball/qmk_firmware/keyboards/keyball ~/qmk_firmware/keyboards/keyball
ダン@HyperFormダン@HyperForm
$ cd qmk_firmware
$ make keyball/keyball44:via

QMK Firmware 0.25.20
⚠ keyball/keyball44: Build marker "keyboard.json" not found.
☒ keyball/keyball44: LAYOUT_right_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_left_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_dual_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_no_ball: Layout macro should not be defined within ".h" files.
Making keyball/keyball44 with keymap via

⚠ keyball/keyball44: Build marker "keyboard.json" not found.
☒ keyball/keyball44: LAYOUT_right_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_left_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_dual_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_no_ball: Layout macro should not be defined within ".h" files.
/bin/sh: avr-gcc: command not found
/bin/sh: avr-gcc: command not found
Generating: .build/obj_keyball_keyball44_via/src/info_deps.d                                        [OK]
⚠ keyball/keyball44: Build marker "keyboard.json" not found.
☒ keyball/keyball44: LAYOUT_right_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_left_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_dual_ball: Layout macro should not be defined within ".h" files.
☒ keyball/keyball44: LAYOUT_no_ball: Layout macro should not be defined within ".h" files.
/bin/sh: avr-gcc: command not found
/bin/sh: avr-gcc: command not found
sh: avr-gcc: command not found
sh: avr-gcc: command not found
make[1]: *** [gccversion] Error 127
make: *** [keyball/keyball44:via] Error 1
Make finished with errors

エラー出た。"keyboard.json" not found.って書いてあるな。

ダン@HyperFormダン@HyperForm

一旦公式ビルドガイドを読む

Keyball44はReMAPに対応していますのでと特別なソフトをインストールしなくてもファームウェアの書き込みとキーマップの変更が可能です。

ReMAPを使用するために下記のVIA対応ファームウェアを書き込んでください

Keyball44 VIA対応版ファームウェア REMAPカタログのKeyball44ファームウェアページを開き、Keyball44_viaのファームウェアをFLASHしてください。

FLASHボタンを押すと、書き込み方法の説明が表示されます。 USBケーブルを接続しているのにキーボードが認識されない場合は、半田付けしたRESETスイッチを素早く2回押すと認識されると思います。

※必ず左右両方のPro Microに同じhexファイルを書き込んでください。

■ご自身でファームウェアをビルドする場合
Keyball44の最新ファームウェアはGithubのリポジトリにて公開しています。このkeyballフォルダをお手持ちのQMK_Firmware/keyboardsへコピーして自由にキーマップ等を編集してmakeしてください。

なるほど?

ことがわかった。

ダン@HyperFormダン@HyperForm

FLASHしてみる




Writing the firmware finished successfully.

とあるけど

Caterina bootloader is not detected

Error: Reading bytes was timeout.

ともあり、失敗してそう。
Remapのサイトでキーボードを追加しようとしても「対応デバイスが見つかりません」となる。

ダン@HyperFormダン@HyperForm

Bootloaderをcaterinaに設定してFLASHしたけど、他のやつも試す

dfuにしてFLASHボタン押したら、ダイアログにででくる機器が変わった。

そんで接続しようとすると以下のエラーが表示された。

Error: Unsupported device: Vendor ID: 43e Product ID: 9a39

ダン@HyperFormダン@HyperForm

次は、Bootloaderをcopyにして試す


FLASHをクリックしたらフォルダ選択を促されて、適当にダウンロードフォルダを選択したら、以下のエラーが発生

ダン@HyperFormダン@HyperForm

リセットボタンは、Pro microにありそう。

そんで、Promicroがこのキーボードの頭脳で、ここにファームウェアを書き込むわけだから、この作業はキーボードからPromicroを取り外した状態でもできそう。

とはいえ、できればキーボードをつけた状態でやりたい。
どこにリセットボタンあるんだろ。

ダン@HyperFormダン@HyperForm

ここのダブルクリックを、いろいろタイミング変えて何度も試してるけど、promicroとかarduno microとかそういうデバイスがここにでてこない

ダン@HyperFormダン@HyperForm

パッと考えられる可能性としては

  • 組み立て済みのやつ購入したけど、組み立てでミスってる
  • PCに接続するケーブル(とコネクタ)が悪くて、電源供給はできてるけどデータ転送ができてない

ケーブルは別のやつを買ってみるとして、組み立てミスと決める前にもっと調べたり試したりして、原因を切り分けたい。

が、キーボード界の未熟者ゆえ、切り分けのために何をすれば良いかわからん。

ダン@HyperFormダン@HyperForm

買いたいもの

  • TRRSケーブル
    • キーボード同士を繋ぐケーブル
    • 48cmは欲しい
    • やっぱケーブルを巻き取るやつを買って、今あるケーブルを流用することにしたhttps://amzn.to/3M4erk4
ダン@HyperFormダン@HyperForm

明日やること

  • Remapの設定
    • Remapでとりあえず最低限割り当てる
    • 他の人のキーマップも探して、細かい部分の割り当てをする
  • クリック周りの調整
    • ファームウェアとかをいじって「マウスを動かしてから数秒間はレイヤーを変える」みたいなやつがあった気がするからその設定をする
  • Amazonでポチったケーブル類が届いたら、セッティングする
ダン@HyperFormダン@HyperForm

キーマップを考える

  • 1つのキーに、hold時とtap時で別のキーを割り当てることができるので、これは積極的に使っていきたい。
    • holdしか使わないキー
      • command
      • shift
      • control
      • alt
      • レイヤー切り替え
    • tapしか使わないキー
      • tab
      • enter
      • capslock
      • esc
      • 英数切り替え
    • spaceは両方使う(distrokidで動的リリックを登録するときにspaceの長押しが必要)
      • でもそのときくらいしか使わないから、それは別でレイヤー登録すればいいかも。他は基本タップ
        • 本当に時々しか使わないキーは、そのときだけMacbookのキーボード触れば良い
  • デフォルトレイヤーの配列に関して、普段Macbookで使ってる配列からなるべく崩したくない
    • 左手親指で英数、右手親指でかなに切り替える
    • 左手小指でctrl
  • マウス操作系の割り当て方がいまいちわからん。ここを最初に決めちゃいたい
    • 右クリック、左クリック
    • スクロール
    • ドラッグアンドドロップ
    • 進む、戻る
    • 四本指の操作
    • command + クリックは多用するから、これが打ちやすいように調整
  • optionは、cmdとかshiftとか、矢印キーと同時押ししやすいところに配置したい
    • 矢印キーとの同時押しは、個別に割り当ててもいいかも
  • 右手小指付け根のキーをどう活用するか?
  • Remap見てると「MouseBtn1」「MouseBtn2」とかある。これ何?

https://salicylic-acid3.hatenablog.com/entry/qmk-configurator

ダン@HyperFormダン@HyperForm

Remapで、今の自分の設定をチートシートとしてPDFに出力する機能もあるのか

ダン@HyperFormダン@HyperForm

なんか上手くいかないなと思ったら、macbookで使ってるkarabiner elementsのキーの入れ替えが、keyball側にも反映されてた。

ダン@HyperFormダン@HyperForm

あと、ctrlとcapslock入れ替えてた部分だけ、最初上手くいかなかった。
左手小指の一個左のキーをctrlにしてもcapslockにしても、ctrlとして使えなかった。
「swap ctrl capslock」ってキーを使ったら上手くいった。

→一瞬できたけどまたできなくなった。なぜ

ダン@HyperFormダン@HyperForm

システム環境設定 > キーボード > キーボードショートカット > 修飾キー > Karabiner DriverKit VirtualHIDKeyboard 1.7.0のCapsLockをControlに変えたら上手くいった。

ダン@HyperFormダン@HyperForm

よく使うキーを配置したい
あと、他では表現しにくいキーを配置したい

思ってるのは、

  • cmd + option + 矢印
  • option + shift + 矢印
  • option + 矢印
  • command + 矢印

とかが押しにくそう。可能なら、矢印をデフォルトのレイヤーに組み込みたい。上下だけだもいいから

こうなった。あと3つ

ダン@HyperFormダン@HyperForm

トラックボールだと、文字選択がちょっとやりにくそう。
なんか良い方法ないかな?
いや、これは単純に慣れの問題な気がしてきた。

「 Macのフルスクリーンアプリケーション間をスワイプ」をいい感じにしたいかも。
→ Ctrl + 左右キーでいけるのか。そしたらこうだな

あと2つ。

ダン@HyperFormダン@HyperForm

スクロールは、layer3を押しながらトラックボールを動かすことで実現できた。

ダン@HyperFormダン@HyperForm

あとは記号と数字
そしてスクリーンショットのショートカットキーを簡単に呼び出せるようにする

ダン@HyperFormダン@HyperForm

これから慣れは必要だけど、やりたいことはすでに結構できてる気がするな
案外早かった
ファームウェア周りもっとちゃんと理解しないとやりたい設定できないと思ってたけど、ポチポチしてたらいい感じになった
嬉しいような寂しいような
家でしか使わないから、無線化は不要
キーキャップは、最初に送られてきたやつと後から買ったやつがどっちも悪くなかった。この2種類で十分戦える
ポチったキースイッチが届いたらそれをつけてみる

ダン@HyperFormダン@HyperForm

しばらく使ったら、テンティングは試したい
ケースが微妙にシンデレラフィットしてないから、3Dプリンターで自作したい
キーボードの仕組みをざっと理解するのに、本を1冊ポチろう
最初はロープロファイル版のkeyballに興味あったけど、持ち運ぶ訳じゃないからピッチ狭くない方が良いし、ストロークもキーキャップとキースイッチ変えたら大分浅くできそうだから、今の基盤のままでいいかも

ダン@HyperFormダン@HyperForm

というわけでこれからやることは

  • キーボードの仕組み的な本をポチって読む
  • キースイッチ届いたら交換する
  • (しばらく使ったら)テンティング試す
  • (どっかのタイミングで)3Dプリンター覚えてケースとか作る
ダン@HyperFormダン@HyperForm

今見えてる残りの課題は

  • ズームイン / アウト
  • ブラウザの「進む」「戻る」をいい感じにする
ダン@HyperFormダン@HyperForm

ズームについて、SteerMouseをインストールして、それっぽい設定をしてみたけど上手くいかず、、

まあそんなに使用頻度高くないし、目の前に常にMacbook開いてるわけだから、ズームしたい時だけそっち触ればいいかも。keyballだけで操作できるようにしたところでズームとかの操作は結局トラックパッドの方がやりやすいわけだし

ダン@HyperFormダン@HyperForm

カーソルを動かした直後、キーを押したときの挙動が若干変わる(レイヤー0に割り当ててたmouse Button 1が反応しなくなる)ので、レイヤーが切り替わってる雰囲気ある。

ただ、やりたいことはできてない。

jを押したら左クリック(mouse Button 1)kを押したら右クリック(mouse Button 2)を実行したい。

ダン@HyperFormダン@HyperForm

調べると、Auto Mouse Layerのときは、レイヤー4に設定したキーが有効になるっぽい。

でもRemapを見るとレイヤーは3までしかない。

ダン@HyperFormダン@HyperForm

新たな問題が発生。

Auto Mouse Layerの時間中、スクロールができなくなってしまった。

スクロールするには、カーソルが止まってから一定時間(0.8秒?)待ってからやらないといけない。
これは普通に使いにくい。困った🙃

ダン@HyperFormダン@HyperForm

Auto Mouse Layerの終了条件は

  • カーソルが止まってから一定時間が経過する
  • 関係ないキーが入力される

のどっちかが成立したときだった気がする。

関係ないキーってのが何かって話。
エディタとかでもスクロールはするから、文字入力されるようなキーは不用意に押せない。

ダン@HyperFormダン@HyperForm

あとなぜか、リンクをクリックすると全部別タブで開くようになっちゃった。
どういうこと?

ダン@HyperFormダン@HyperForm

shiftを押しながらクリックすると別ウィンドウで開くのか。
そういやさっきRemapで設定してたとき、謎にShiftが入力されることがちょこちょこあったなあ

ダン@HyperFormダン@HyperForm

layer0とlayer1、両方のholdに「layer3」をセットしたら、スクロール上手くいった

ダン@HyperFormダン@HyperForm

layer1にlとかtとか rとかctrlとかないと、ブラウジングの時とかちょっと不便だな

Auto Mouse Layerを使うなら、layer1はあんまりいじれないものと考えた方が良さそう。

それを加味してもAuto Mouse Layerは便利なので、設定を調整していく。

ダン@HyperFormダン@HyperForm

今の設定だと、謎にいきなりApple Musicが起動したりする w
なんのショートカットキーが反応してんだろ
→F8の再生ボタンだった

ダン@HyperFormダン@HyperForm

キースイッチを変えた。
ストロークが浅くなって、だいぶ打ちやすくなった。
キー入力にトラックボールが干渉しやすくなったけど、Mouse Layerにはほぼキーを割り当てず、Layer0のキーがそのまま使えるようになってるから、問題なさそう。
ここまで、トラックボールの干渉によるストレスはほぼ0。

ダン@HyperFormダン@HyperForm

キースイッチ変えたら、手の位置の違いからか、トラックボードの感度も変わった感じする。
元の設定だとカーソルの動きが速すぎた。
今はcpi1000がちょうど良い。
そしてcpiがPro Microに表示されていることに今気がついた
今いるLayerも表示されてる。

ダン@HyperFormダン@HyperForm

↑の手順で過去込んだら、既存のキーマップ全部消えそうだな。

Remapで既存のキーマップを保存

hexファイルを使ってファームウェアを書き換え

Remapでキーマップを復元

って流れになるのかな

ダン@HyperFormダン@HyperForm

書き込んだら、Remap上でキーボードを認識できなくなっちゃったな

ボタン押してる感じ、キーマップも変わった。
カーソル移動の感度とかも全部変わった。

ダン@HyperFormダン@HyperForm

Bootloaderモードに入るのもボタンでできたけど、できなくなったから、またリセットボタン押さなきゃ
リセットボタン押すために、ネジ外したりが必要なんだよな

ダン@HyperFormダン@HyperForm

自分でファイルをいじってファームウェアを書き換える場合、Remapは使えなくなる
って理解で合ってるかな?

ダン@HyperFormダン@HyperForm

キーボード、テンティングするか迷う。

前にちょっとやった時は、接続の安定性が下がった気がしてやめた。でもそれは角度をつけたことが原因じゃなくて、ちゃんと固定できてなくて揺れが発生してたからかもしれない。
しっかりホールドできる装備を用意して、もう一回試すのはありかもしれない。

接続の安定性以外の部分で言うと、重力がかかる分、親指側への移動がやりにくくなって、小指側への移動がやりやすくなった
これはどちらかというとメリットかな。Aの一個外側にCtrlキーをセットしてて、それめっちゃ使うし

あとは角度問題。どの角度が1番やりやすいかは、色々試して探っていく必要がある
角度を高くすると、手の高さが上がるから、場合によってはアームレストがないときつい可能性ある。これ以上デスクにものを増やしたくない

今の平置きの状態で、何も困ってはいない。ただそれを言ったら分割キーボードを使う前も何も困ってはいなかったから、色々探るのは良いこと

ダン@HyperFormダン@HyperForm

届いたからテンティングしてみた
キーボードのテンティングの角度を急にすればするほど、トラックボールの感度が敏感に感じるんだな

ダン@HyperFormダン@HyperForm

右手側の接続が安定しない問題は、TRRSジャックのはんだ付けを見直したら解決した。2/3しかはんだ付けされてなかった。。