2021年02月22日

【薙刀式】Macで使う方法

カナ配列薙刀式は僕のPC、Windowsで開発されたが、
その便利さ、使いやすさから、有志の方々によってMacに移植されつつある。

現時点で、4種類の方法がある。
・Karabiner-Elements版
・専用アプリBenkei(現在β1版)
・かわせみ2版
・自作キーボードのファームウェアQMK版

(2/23追記: かわせみ2版もふくめて4種類に更新)

このうち、
Karabiner-ElementsとBenkeiは、
Mac上に常駐するアプリを用いて、
入力キーをフックして、
薙刀式の配置に変換するものだ。

Karabiner-Elements(キー配列変更ソフト)をインストールして、
薙刀式用のファイルを読み込めば使えるはず。
もちろん、薙刀式だけでなく、
自分で好きなように改造もできる。

一方Benkeiは薙刀式専用に特化したものなので、
インストールして実行すればおしまいという手軽さ。

(どちらも使ったことないので、一般的な話から想像)


薙刀式は同時押しを使う配列だが、
同時押しの判定方法が少し違っていて、
Karabiner-Elements版は、
「100ms以内(変更可能なはず)に同時押しすれば同時とみなす
(非同時として入力したいときは、100ms以上遅らせて打つ)」
Benkeiは、
「秒数は関係なく、同時に押されてる瞬間があれば良い
(非同時として入力したいときは、一方を離してから入力)」
となっている。
はず。

お好みで使い分けられたい。


かわせみ2版は、日本語IMEであるかわせみ2(有料)の、
入力テーブルを変更する機能を用いて実装している。はず。
Karabiner-Elementsと併用するらしい。
Karabiner-Elements版単体との入力感の違いは、
なかやさとるさんのコメントを見てください。


個人のMacに薙刀式を入れるのは、
これだけで済む。
Macbookで薙刀式を使ったり、
iMacのMagic Keyboardで薙刀式を使える。

iPadでは使えない。これはOSが違うのでしょうがない。

だが外付けのキーボードから薙刀式の信号を出せば、
iPadでも薙刀式が使える。



世の中には自作キーボードという世界があり、
「自分の好きなようにキーボードを作りたい」
という夢が叶うようになってきた。

半田付けや3Dプリント、基盤を個人で発注できるサービスを使えば、
物理のレベルで、左右分割でも小さいのでもデカイのでも、
親指でいっぱい操作するのも、3Dのも作れる。

(自作設計はハードルが高いので、
すでに100は超えるキットを選んで買って、
プラモのように作るのが主流。
いわゆる同人ハードの世界である。
かつては秋葉原にパーツが揃っていたが、
AmazonやAliExpressなどの物流の発展で、
世界中からパーツが取り寄せられるようになった。
ぼくは北海道で開発された、
左右分割36キー格子配列のMiniAxeを愛用)


この中にQMKファームウェアというプログラムがあり、
キーボード内のマイコンに書き込むと、
その好きなように配置した物理キーボードの、
キーの挙動をプログラミングできる。

これを物理配置に対して、論理配置という。

つまり自作キーボードとは、
物理配置を好きなようにしたあとに、
論理配置を好きなようにできる。
逆に、
好きなような論理配置を先に作り、
それに合わせて都合のいい物理配置を作る(選ぶ)ことが可能だ。

ということは、
プログラミングの技術(QMKはc++で動く独自の言語体系)があれば、
自作キーボード内に薙刀式を論理配置し、
キーボード側から薙刀式の文字を吐き出す、
ということが可能になる。

ちなみに薙刀式は、30キー+スペーキーの31キーしか使わないため、
31キー以上のどんな自作キーボードにも移植可能だ。


つまり、
iPad+自作キーボード薙刀式が可能になるし、
Mac+自作キーボード薙刀式もだ。
ついでに、
Windows+自作キーボード薙刀式もだ。

この夢のようなものは、
すでに実現されている。


多少のプログラミング経験があれば、
何個か自作キーボードを作り、
QMKファームウェアのマニュアルを少しずつ読んでいき、
ちょいちょい改造しながら勉強すれば、
0知識からでも一年あれば自在に移植できると思う。
僕がそうでした。

MacとWindowsは、共用できる部分と、出来ない部分がある。
文字コードは共用可能、記号部分は不可、
ショートカットも不可。

だから同じファームウェアでMacとWindowsを共用できない。
現時点では、
プログラム内にMac版とWindows版が構築されていて、
ファームウェアを焼くときにどちらかを選ぶことになっている。
(追記
すでに内部で切り替えられる版が完成した模様。
https://github.com/eswai/qmk_firmware/tree/master/keyboards/crkbd/keymaps/naginata_v13u
をごらんください)


薙刀式はオープンソースだ。
つまり無料で、誰でも使えて、
誰でも改造、改良可能だ。

僕も、移植してくれているプログラマーのみなさんも、
完全なるボランティアだ。

GitHubはその思想に賛同する人たちが、
ソースコードをアップするクラウドである。
誰が来てもいいし、少し良くなったらそこに置いといて、
またみんなで使ってね、
という古き良き村の広場のような場所だと僕は思う。

しかし僕が作ったDvorakJ上のコードが、
つよつよプログラマーのみなさんによって、
色んな実装タイプで広まっていくのは、
なかなか面白い出来事だ。

プログラミングってすごい。プログラマーってすごい。
オープンソースって夢がある。


是非Mac派閥の方も、薙刀式を使ってみてほしい。

ごりゅごさんという方がPodcastで薙刀式はいいぞ、
という話をしてくれたのがきっかけで、
(しかもKarabiner-Elements版の、v11から最新版v13を自力移植)
少しずつMac版が広まりつつある。ようだ。

僕は自分のMacを持ってないので試せないが、
そのためだけにMac買おうかな、
などと妄想するくらいだ。



以下に、
Mac版薙刀式の置き場所をまとめておく。
参考にされたい。

★Karabiner-Elements版
(ごりゅごさんによるもの。ただしカナ部分のみの実装):
https://github.com/goryugocast/KE-complex_modifications-NAGINATA
(Sorshiさんによるv11版):
https://github.com/sorshi/KE-complex_modifications-NAGINATA
(なかやさとるさんによるもの。かわせみ2版もあり):
https://github.com/tor-nky/KeyLayout/tree/master/Naginata/Mac

★専用アプリBenkei(eswaiさんによる)
https://github.com/eswai/Benkei/tree/b1

★自作キーボードQMK版(eswaiさんによるコルネ用):
https://github.com/eswai/qmk_firmware/tree/master/keyboards/crkbd/keymaps/naginata_v13
と他の自作キーボードへの移植ガイド
https://eswai.hatenablog.com/entry/2020/11/29/175116
https://eswai.hatenablog.com/entry/2019/12/09/001009
切り替え可能版
https://github.com/eswai/qmk_firmware/tree/master/keyboards/crkbd/keymaps/naginata_v13u


どの版でも以下の基本操作は共通(のはず)。

HJ同時押しで、IMEオン(かな)して、薙刀式カナ配列に切り替え。
FG同時押しで、IMEオフ(英数)、qwertyの英数配列に。
qwertyローマ字の部分がそっくり薙刀式に置き換わるイメージで。

なお薙刀式の状態でも、
Command、Ctrlなどを押しながらの操作は、
qwertyに戻る設定(のはず)。
つまりCommand+ZXCVなどはそのまま使えます。


なお、薙刀式のオリジナル版はこちら。
http://oookaworks.seesaa.net/article/456099128.html
posted by おおおかとしひこ at 10:12| Comment(12) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
ご紹介、ありがとうございます。

QMKのOS切り替え版は完成しまして、ここで公開しています。
https://github.com/eswai/qmk_firmware/tree/master/keyboards/crkbd/keymaps/naginata_v13u

Benkei、全くご理解の通りです。将来的には、時間や、キーの組み合わせによって、ロールオーバーなのか、同時押しなのか、もう少し高度な判定をしたいと思っています。Macはリソースがふんだんに使えるので、色々やりたいですね。
自作キーボードのマイコンが強化されたら、そちらにも反映していきたいなぁ。
Posted by eswai at 2021年02月22日 15:11
>eswaiさん

もう出来てたとは、仕事が早い…
記事に反映させておきます。

高度な判定をするにあたって、悩ましいのは編集モードですね。
ずっとDF押しながら考えてることはよくあるので。
キーリピートとの兼ね合いも色々ありそうです。
編集モードに限って、たとえばDFJだとDF先押し、と定義した方が判定が楽になりそう。
Posted by おおおかとしひこ at 2021年02月22日 15:16
まず同時判定は、かえうちがやっているような、オーバーラップ時間の割合を考慮するのがいいのかなと思っています。
https://kaeuchi.jp/manual/simul-lag/

キーリリースは勝手にしないようにしたいですね。
その上で、キーの組み合わせによって、オーバーラップ時間を調整できるようにすれば、自分のくせに合わせて、この組み合わせは同時になりやすい、この組み合わせはロールオーバーになりやすい、などとできないかな、と構想しています。
Posted by eswai at 2021年02月22日 15:51
>eswaiさん

ああ、かえうちのロジックは(飛鳥を優先させてることもあり)かなり優秀ですからねえ。
そういえば飛鳥21c-219をかえうちで練習しようとして実装までした段階で放置してたな…
Macでそうしたロジックもあまり聞かないので、
出来たら面白そうです。
Posted by おおおかとしひこ at 2021年02月22日 16:07
はじめまして

コメント失礼いたします。

事後報告となりますが、薙刀式をMacで使うにあたって情報交換ができるグループがあると便利かと思いFacebookにて以下URLのグループを作成させていただきました。

www.facebook.com/groups/macdenaginata/

また、ヘッダーの画像はこちらよりお借りしております。

http://oookaworks.seesaa.net/article/480000583.html?fbclid=IwAR3sNGtBYOSzQkpcyDtA_T7EPxw8STXJQ78aIcreaQay4FSWn2ddMkM2OwQ#gsc.tab=0

どうぞよろしくお願いいたします。
Posted by Yuichi Abe at 2021年02月22日 23:54
>Yuichi Abeさん

うおおお面白いことになっておる…
とりあえずFacebookのアカウント作ってみましたが、
本名だと仕事関係の人たちに見つかりそうなのでひっそり覗き見しときます。
なんか質問があればこちらへどうぞ。
ユーザーとしては生粋のAdobe系マカー(Quadraあたりから)なのですが、
プログラミングは0経験なので答えられる範囲で。

あと、薙刀式に向くキーボードは何か?
でいうと、30キー+スペースキーがあればなんでもいけます。
左右分割の場合は、両親指にスペースキーを置くと便利ですね。
僕は格子配列が一番使いやすいので左右分割格子配列系をお勧めします。
左ロウスタッガードは好きじゃないので、左右対称が楽ですね。
個人差がありますが。
でもバタフライキーボードで薙刀式打ってみてえな…
Posted by おおおかとしひこ at 2021年02月23日 00:09
お返事いただき誠にありがとうございます!

ここ数日鬼のように薙刀式に関して調べまくっておりまして、新しいものを取り入れる際はその思想や根底にある哲学のようなものを自分なりに解釈してから始める性分なので、過去ログも読ませていただいております。

キーボードは左右分割格子配列系をいくつか試して最終的に自分の用途に合いそうなものを選んでいくようにしてみます。

アドバイスありがとうございます!
Posted by Yuichi Abe at 2021年02月23日 14:42
>Yuichi Abeさん

基本的には本ページのhttp://oookaworks.seesaa.net/article/456099128.html
と、
動画(現在17本。だいぶつくったなあ…)
http://oookaworks.seesaa.net/article/475004852.html
(に他の配列動画とともに格納してます)
を見れば、
ほぼ尽くしてるかなと。

前身であるところのローマ字配列カタナ式と運指の考えに共通点があったりするので、カタナ式動画も見るとさらにルーツがわかりやすいかもですね。
あと、日々感じたことはこのブログのカタナ式カテゴリに書いてますが、
一日一記事以上ペースで、四年分くらいあるのでおすすめはしません。笑
当時と今で考えが変わったところもあるし…
ここ二年は純粋な論理配列だけでは改良しきれんなあと思い、
自作キーボードで物理をいろいろ弄ってます。

親指キーをよく使う配列なので、スペースキーのスイッチのスプリングは軽めに交換(25g〜15g。アクチュエーションフォースで。MX系のバネはボトムフォースの表記が多いので数値が異なることに注意)がオススメ。
僕は全キー30g、親指20gで使ってます。
Posted by おおおかとしひこ at 2021年02月23日 14:59
かわせみ2版は(いちおう日本語IMで使える版もあるけど)、
「秒数は関係なく、同時に押されてる瞬間があれば良い」
ただし空白を入力するときは1秒以内にスペースキーを離す
編集モードは F+G や V+B H+J をできれば50ミリ秒以内に押す
キーを押してすぐ表示される文字と、キーを離してから表示される文字がある
といった仕様で、

「じょ」をゆっくり入力すると、
し→じ→じょ
し→しょ→じょ
あ→ある→じょ
などと変化して見えるのが特徴です。

https://github.com/tor-nky/KeyLayout/tree/master/Naginata/Mac
Posted by なかやさとる at 2021年02月23日 22:53
詳しい解説誠にありがとうございます!

HHKBを経て、2年くらい前に変荷重のREALFORCEに移行したのですが、小指のtypoが多いのでかなりカスタムした親指シフトでもはや打鍵だけ親指シフトで配列はほぼオリジナルとなっている状態です。

調べれば調べるほど自作に行き着いてしまうような気がしております・・・

確かに実名だとやりづらい部分があると私も感じましたので、discordで最低限の設定だけをしたサーバーを立てました。

https://discord.gg/HKhCE2DzSu

まだ整備しきれていませんが、こちらであればハンドルネームのみの表示で匿名性は保てるかと思います。

アイコンは同じページからお借りしました。
ありがとうございます。
Posted by Yuichi Abe at 2021年02月23日 23:20
>なかやさとるさん

解説ありがとうございます。
昔かわせみの仕様をどこかで見て「これなら薙刀式実装できるかも!」と小躍りしたらMac用でずっこけた記憶を思い出しました。
BS発行してるってことですかね。
だとするとタイピングゲームではそのたびにミス扱いされてしまうな…しょうがない。

手元に試せるMacがないので、マカーの皆さんテストしてみてください!
Posted by おおおかとしひこ at 2021年02月23日 23:33
>Yuichi Abeさん

今回はじめてFacebookでアカウント作ってみたら、
だいぶ前に仕事した人とかがずらずらと出てきて、
なんでお前それ知ってんの、と突っ込んでしまいました。
繋がりの世界はすげえなあ…

小指は僕も苦手なので、左小指2%、右小指3%に下げました。
ここまで下がってる配列ってなかなかないと思いますよ。
(QPは薬指で取ってるので、小指担当は2キーずつ。シフトは中段しかないので、3カナずつしか担当する必要がないので、typoはほぼないかと)

僕は結局自分なりの変荷重にしたくて自作に踏み切りました。
12g〜45gまでの変荷重にしてたのですが、
「キーキャップを工夫すると等荷重バネでも変荷重のように力を使える」
ということに最近気づいているところです。
そのへんはある程度まとまったら記事に書く予定。
Posted by おおおかとしひこ at 2021年02月23日 23:41
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。